How are webhook payload sent?
The data format used for the webhook's response will be JSON.
The JSON payload will have a consistent format for all webhooks of the same type that you can find in the next sections.
The payload will include batch data within the same type (e.g., a list of attendees records).
The format will consist of:
- data: An array with the details of the object(s) that were updated.
- type: A string with the object(s) type included in the payload.
Example:
[ { "data": [ { "id": 2600, "attendee_code": "SGA16002600", ... }, { "id": 2601, "attendee_code": "SGA16002601", ... } ], "type": "attendee" } ]
You can use Bevy APIs to add any extra information that wasn't included in the payload.
Attendee updates
Bevy will send a list of all attendee records that are created or updated. Updates will include details that changed, like Featured Attendee requests, or check-in status updates.
The payload will be identified under the type of "attendee", and by default the details will include the following fields:
Field | Description |
id | The unique ID for the event registration/attendee record. |
user_id | The Bevy user ID associated with the attendee/registration. |
event_id | The event ID of the respective registration. |
event_chapter_id | The chapter of the event. |
created_date | The date/time of the registration creation. |
checkin_date | The date/time of when the attendee was checked in. |
deleted_date | The date/time of when the registration was canceled. |
status |
registered indicates that the respective attendee is currently registered for the event. checked-in Indicates that the attendee was checked in. deleted Indicates that the attendee was removed from the event. |
first_name |
The attendee’s first name, or full name if your instance does not support last names. |
last_name |
The attendee’s last name, when applicable. |
The attendee’s email address. NOTE: The webhook payload will never mask the email address. If you don’t want the email address to be included in the payload, please contact us. |
|
surveys |
pre_order For pre-order surveys. post_event For post event surveys. post_event_team For post event team surveys. |
ticket_title |
The ticket type associated with the registration. |
ticket_audience_type_enum_value |
Returns the event venue: Hybrid, Virtual, In-person |
Attendee updates — Extra Data
There are other fields related to the registration that can be included in the payload. By default, Bevy does not include them, but they’re available upon request. Those fields are:
Field | Description |
user.first_name | The associated user’s first name. |
user.last_name | The associated user’s last name. |
user.email | The associated user’s email address. NOTE: The webhook payload will never mask the email address. |
user.authentication_providers |
A list of authentication providers used by the associated user, in the following format: [ { "provider": "bevy", "provider_user_id": 2600 }, { "provider": "facebook", "provider_user_id": "abcd1234" }, ... ] |
user.company | The associated user’s company name. |
user.title | The associated user’s title. |
user.city | The associated user’s city. |
user.country | The associated user’s 2-letter country ISO code. |
user.timezone | The associated user’s timezone. |
user.bio | The associated user’s biography. |
user.twitter | The associated user’s Twitter handle. |
user.facebook | The associated user’s Facebook profile URL. |
user.linkedin | The associated user’s LinkedIn profile URL. |
user.website | The associated user’s personal website URL. |
user.role |
An object with information about the user’s role in Bevy, in the following format: { "id": 1, "name": "User", "description": "This user has standard permissions on the site." } |
Example of attendee updates payload
[ { "type": "attendee", "data": [ { "id": 1, "first_name": "John", "last_name": "Perez", "email": "johnperez@mmail.com", "user_id": 4, "created_date": "2021-10-15T16:29:08Z", "checkin_date": null, "deleted_date": "2021-10-18T16:04:40Z", "ticket_title": "RSVP", "ticket_audience_type_enum_value": "Virtual", "status": "registered", "surveys": { "pre_order": { "created_date": "2019-05-25T19:44:24Z", "fields": [ { "label": "Company Size", "value": "51 - 200" }, { "label": "Gender", "value": "Male" } ] } }, "event_chapter_id": 8, "event_id": 4 } ] } ]
User updates
Bevy will send you a list of all user records that are created or updated.
The payload will be identified under the type of "user", and by default the details will include the following fields:
Field | Description |
id | The unique ID of the person record. |
first_name |
The first name of the user. |
last_name |
The last name of the user. |
role |
The user’s system role, in the following format: { "id": 1, "name": "User", "description": "This user has standard permissions on the site." "user_active_status": "Status o the user either active or inactive } |
Email address of the user. |
|
date_joined |
The date/time when the user account was created. |
last_login | The last time the user logged in |
deleted_date | The date/time when the user record was deleted, or null if it’s an active user. |
User updates — Extra Data
There are other fields related to the user that can be included in the payload.
By default, Bevy does not include them, but they’re available upon request. Those fields are:
Field | Description |
avatar |
The avatar picture for the user in the following format: { |
bio |
The biography of the user. |
company |
The company of the user. |
title |
The job title of the user. |
city |
The city name of the user. |
country |
The 2-letter country ISO code of the user. |
|
The Twitter handle of the user. |
|
The LinkedIn profile URL of the user. |
|
The Facebook profile URL of the user. |
website |
The website URL of the user. |
industry |
The industry data of the user in the following format: { |
timezone |
The timezone of the user. |
last_login |
The date/time of the last time the user logged in. |
authentication_providers |
A list of authentication providers used by the user, including the organization IDP when SSO is enabled and the Bevy user ID, in the following format: [ |
extra_data |
A dictionary with the user's custom profile data, in the following format: { |
Example of user updates payload
[ { "type": "user", "data": [ { "id": 5, "first_name": "John", "last_name": "Perez", "role": { "id": 1, "name": "User", "description": "This user has standard permissions on the site.", "user_active_status": true }, "email": "john.perez@mail", "date_joined": "2022-03-11T10:51:46Z", "last_login": "2024-01-24T16:21:58Z", "deleted_date": null } ] } ]
Event updates
Bevy will send you a list of all event records that are created or updated. Updates will include details that changed, including event completion.
The payload will be identified under the type of "event", and by default the details will include the following fields:
Field | Description |
id |
The unique ID of the event record. |
title | The event’s title. |
status |
The event’s status, which can be one of the following: Draft For draft events. Published For live or completed events. Canceled For canceled events. |
url | The event’s page URL. This is the public page for the event, once published. |
description_short | The event’s plain-text short description. |
start_date | The event’s start date/time. |
end_date | The event’s end date/time. |
event_type_id | The ID of the associated event type. |
event_type_title | Title of the associated event type. |
published_by_full_name | Full name of the user who published the event |
picture |
An image object for the event’s main image, in the following format: { |
chapter |
Chapter information hosting the event. In the format: { |
venue_name |
The event’s venue name. |
venue_address |
The event’s venue address. |
venue_city |
The event’s venue city. |
venue_zip_code |
The event’s venue zip/postal code. |
get_event_address |
Concatenated values of event’s venue address. |
created_ts |
The date/time when the event record was initially created. |
updated_ts |
The date/time when the event record was last updated. |
key_persons |
A list of key people related to the event in the following format: [ |
allows_cohosting |
true or false |
Event updates — Extra Data
There are other fields related to the event that can be included in the payload.
By default, Bevy does not include them, but they’re available upon request. Those fields are:
Field | Description |
tickets |
A list of the event’s available tickets, in the following format: [ NOTE: RSVP type events will have no price set. |
publish_date | The date/time when the event was published. |
published_by |
The details about the user who published the event, in the following format: { |
description | The event’s HTML description. |
is_hidden | true if the event is visible and indexable, false if the event is invisible and not included in lists. |
total_attendees | The total of attendees registered for this event. |
checkin_count | The total of checked in attendees. |
Example of event update payload
[
{
"type": "event",
"data": [
{
"id": 123,
"title": "My Event Title",
"key_persons": [],
"description_short": "My Event description",
"picture": {
"url": "...",
"path": "...",
"thumbnail_width": 400,
"thumbnail_height": 400,
"thumbnail_format": "auto",
"thumbnail_url": "..."
},
"chapter": {
"chapter_location": "Catamarca (AR)",
"city": "Catamarca",
"country": "AR",
"country_name": "Argentina",
"description": "<p>Cras ac mattis ligula, sit amet pulvinar dui.</p>",
"id": 8,
"hide_country_info": false,
"logo": {},
"chapter_team": [
{
"id": 22,
"user": {},
"role": {},
"title": "Chapter leader"
}
],
"state": "",
"timezone": "Pacific/Niue",
"title": "John Perez",
"relative_url": "/chapter-slug/",
"url": "https://bevy.bevylabs.com/chapter-slug/"
},
"start_date": "2023-05-01T12:29:15-09:00",
"end_date": "2024-03-30T12:28:00-09:00",
"url": "https://bevy.bevylabs.com/events/details/chapter-slug-presents-my-event/",
"status": "Published",
"created_ts": "2023-05-11T06:28:34.479747-09:00",
"updated_ts": "2024-01-24T07:23:57.064179-09:00",
"published_by_full_name": "John Perez",
"venue_name": "Boca Juniors",
"venue_address": "780 Avenida Almirante Brown",
"venue_city": "C1155AER",
"venue_zip_code": "C1155",
"get_event_address": "Boca Juniors - 780 Avenida Almirante Brown C1155AER, C1155",
"event_type_title": "Virtual Event type",
"allows_cohosting": false
}
]
}
]
Event survey entry updates
Bevy will send you a list of all event survey entry records that are created: pre-order, post-event, and post-event team.
The payload will be identified under the type of "eventsurveyentry", and by default the details will include the following fields:
Field | Description |
id | The unique ID of the person record. |
survey_type |
The survey’s type status, which can be one of the following: pre_order For pre-order surveys. post_event For post event surveys. post_event_team For post event team surveys. |
survey_id |
The ID of the survey for this entry. |
event_id |
The ID of the event this survey is for. |
user |
The user who responded to the survey, if one exists, in the following format: { |
attendee |
The attendee who responded to the survey, if one exists, in the following format: { |
fields |
An array of answers to the survey questions, in the following format: [ |
Example of event survey entry updates payload
[ {
"type": "eventsurveyentry",
"data": [
{
"id": 123,
"survey_type": "pre_order",
"event_id": 123,
"attendee": {
"id": 123,
"first_name": "Atend",
"last_name": "Deee"
},
"user": {
"id": 123,
"first_name": "John",
"last_name": "Perez",
"avatar": {
"url": "...",
"path": "...",
"thumbnail_width": 400,
"thumbnail_height": 400,
"thumbnail_format": "auto",
"thumbnail_url": "..."
}
},
"fields": [
{
"value": "Mexico",
"field": {
"label": "Country",
"field_type": "select",
"required": true,
"choices": ["Mexico","France","China"],
"default": "",
"help_text": ""
}
},
],
"survey_id": 943
}
]
}
]
Event people updates
Bevy will send you a list of all key people's records that are created or updated. Key people are records that include general information about a person related to one or more events, such as speakers.
The payload will be identified under the type of "person", and by default the details will include the following fields:
Field | Description |
id | The unique ID of the person's record. |
first_name | The person's first name. |
last_name | The person's last name. |
company | The person's company. |
title | The person's title. |
short_bio | The person's bio, which is displayed on the Event page. |
picture |
The person's picture, in the following format: { |
personal_twitter |
The personal Twitter/X account of the person. |
company_twitter |
The company Twitter/X account of the person. |
Example of event people updates payload
[ {
"type": "person",
"data": [
{
"id": 1234,
"first_name": "John",
"last_name": "Perez",
"company": "Bevy",
"title": "Quality Assurance",
"short_bio": "John Doe is on the Quality Assurance team.",
"picture": {
"url": "https://example.com/raw/pic.jpg",
"thumbnail_width": 200,
"thumbnail_height": 200,
"thumbnail_url": "https://example.com/thumb/pic.jpg"
},
"personal_twitter": "@jd_personal1234",
"company_twitter": "@jd_at_bevy",
}
]
} ]
Chapter updates
The payload will be identified under the type of "chapter", and by default the details will include the following fields:
Field | Description |
id |
Unique identifier for the chapter within Bevy. |
chapter_location |
The city, state, province, country of the chapter. |
city |
The city the chapter is in. |
country |
The two-letter abbreviation for the country the chapter is in. |
country_name |
The full name of the country the chapter is in. |
description |
Information about the purpose of the chapter. |
chapter_team |
Array of all chapter_team records for the chapter. |
state |
The state the chapter is in. |
timezone |
The chapter's time zone. |
title |
The name of the chapter. |
url |
The full URL of the chapter's website. |
Example of chapter updates payload
[
{
"type": "chapter",
"data": [{
"chapter_location": "Parana, Entre Rios (AR)",
"city": "Parana",
"country": "AR",
"country_name": "Argentina",
"description": "<p>Agentina chapter</p>",
"id": 8,
"chapter_team": [{
"id": 123,
"user": {
"id": 123,
"first_name": "John",
"last_name": "Perez",
"company": "",
"email": "p*****@grillo.com"
},
"role": {
"id": 123,
"name": "Check-in Staff",
"description": "Check-in permissions only",
"permissions": [],
"visible": true
},
"title": "Member"
}],
"state": "Entre Rios",
"timezone": "America/Argentina/Cordoba",
"title": "Test Chapter",
"url": "http://localhost:8000/test-chapter/"
}]
}
]
Chapter member updates
The payload will be identified under the type of "chapter_member", and by default the details will include the following fields:
Field | Description |
id |
The unique ID for the chapter member record. |
user |
The Bevy user associated with the chapter member. |
chapter |
The information about the chapter where the member's record is located. |
created_date |
The timestamp indicating when the chapter member record was created. |
Example of chapter member updates payload
[
{
"type": "chaptermember",
"data": {
"id": 1,
"user": {
"id": 4,
"first_name": "John",
"last_name": "Perez",
"avatar": {},
"title": "",
"company": "",
"role": {
"id": 1,
"name": "User",
"description": "This user has standard permissions on the site.",
"user_active_status": true
},
"full_name": "John Perez",
"email": "j********@mail.com",
"city": "",
"twitter": null,
"linkedin": "",
"country": "",
"industry": null,
"timezone": null,
"bio": null,
"website": "",
"facebook": "",
"profile_url": "/u/m6vyv6/"
},
"chapter": {
"id": 8,
"chapter_location": "Parana, Entre Rios (AR)",
"city": "Parana",
"country": "AR",
"country_name": "Argentina",
"description": "<p>Agentina chapter</p>",
"chapter_team": [],
"state": "Entre Rios",
"timezone": "America/Argentina/Cordoba",
"title": "Test Chapter",
"url": "https://bevy.bevylabs.com/test-chapter/"
},
"created_date": "2021-10-18T16:07:59Z"
}
}
]