How to Integrate Webhooks with BigMarker

Integrate webhooks with your BigMarker webinars, so when the webhook sees the event it will collect data and send it to your outgoing URL of choice.

 

New as of 10/31/2023: Our new webhook, New webinar Create, is a webhook available on the channel level that will send an outgoing webhook when a webinar is created on the channel. 

Note: The following data points are available to Enterprise and Event Package plans. If interested, please contact our Events Experts at Sales@bigmarker.com:  new webinar registrations, webinar start times, when the webinar waiting room opens, webinar end times, live webinar attendee data, and on-demand recordings. 

 

Webhooks are basically user-defined HTTP callbacks (or small code snippets linked to a web application) that are triggered by specific events. They allow your applications to transfer data instantly and seamlessly to one another. 

So whenever someone registers for your BigMarker webinar, the webhook sees the event, collects the data, and sends it to either an outgoing URL specified by you in the form of an HTTP POST request.  For incoming webhooks, the webhook will receive and collect the data once and event has occurred. 

Per Zapier: "Webhooks are similar to APIs—but simpler. An API is a full language for an app with functions or calls to add, edit, and retrieve data. The difference is, with an API, you have to do the work yourself. If you build an application that connects to another with an API, your application will need to have ways to ask the other app for new data when it needs it." 

"Webhooks, on the other hand, are for one specific part of an app, and they're automated. You might have a webhook just for new contacts—and whenever a new contact is added, the application will push the data to the other application's webhooks URL automatically. It's a simple, one-to-one connection that runs automatically." 

Learn how to create webhooks between BigMarker and your server below. (For more in-depth information on webhooks, consult Zapier's guide.)

 

How to Set Up  your Webhooks Integration 

 

Before you create an outgoing webhook, you'll need to set up an outgoing URL, an HTTP/HTTPS endpoint on your server that accepts JSON payloads. E.g. https://api.yourservice.com/callback

 

1. Log into your webinar and select the Integrations tab. 

 

2. Scroll down and select Webhooks.


3. Toggle the Webhook integration you'd like to enable on your webinar

Screenshot 2023-01-05 at 5.06.00 PM

4. Once you enable your webhook, follow the steps below to fully integrate it. 

For an incoming webhook, there are two ways to integrate it:

The first way is to send the Incoming Webhook: Receive incoming request to create webinar registration and BigMarker will save incoming POST request in x-www-form-urlencoded format as a new registrant to your webinar with the following data mapping. 

[
        "conference_id":"26ec9ca26c6f",
        "first_name":"John",
        "last_name":"Doe",
        "email":"john.doe@domain.com",
        "custom_field_utm_medium":"utm_medium",
        "custom_field_utm_source":"utm_source",
        "custom_field_utm_bmcr_source":"utm_bmcr_source",
        "custom_field_State":"State"
]

Note: Custom registration fields will start with prefix: custom_field_, as seen above

Screenshot 2023-01-06 at 11.54.14 AM

The second way is to use the Incoming Endpoint and replace the parameters with your registrant data. BigMarker will then save incoming GET request as a new registrant to your webinar.

 

For outgoing webhooks, follow the steps below to retrieve data from the following: new webinar registrations, webinar start times, when the webinar waiting room opens, webinar end times, live webinar attendee data, and on-demand recordings. 

 

For Outgoing Webhook: New Webinar Registration, BigMarker will send a POST request to this URL with JSON data in the following format: 

{
    "registration": {
        "bmid":"xxxxxxx",
        "first_name":"John",
        "last_name":"Doe",
        "email":"john.doe@domain.com",
        "conference_id":"fe62abf98a78",
        "enter_url": "https://www.bigmarker.com/integrationstesting/Webhooks?bmid=xxxxxxx",
        "source": "source of registration",
        "referral_domain": "example.com",
        "tracking_code": "value of utm_bmcr_source URL param",
        "time_stamp":"2017-01-01T00:00:00Z",
        "custom_field_Custom_Field":"Custom Field",
        "custom_field_Title":"Title",
        "custom_field_Company":"Company"
    }
}

 

For Outgoing Webhook: Webinar Start, BigMarker will send a POST request to this URL with JSON data in the following format: 

{
    "webinar_start_time": {
        "conference_id":"xxxxxxx",
        "start_time":"yyyy-mm-dd hh:mm",
        "conference_url":"https://url_to_conference""
    }
}

 

For Outgoing Webhook: Webinar Opens from waiting room, BigMarker will send a POST request to this URL with JSON data in the following format: 

{
    "waiting_room_open": {
        "conference_id":"xxxxxxx",
        "open_time":"yyyy-mm-dd hh:mm",
        "conference_url":"https://url_to_conference"
    }
}

 

For Outgoing Webhook: Webinar Ends, BigMarker will send a POST request to this URL with JSON data in the following format: 

{
    "webinar_end_time": {
        "conference_id":"xxxxxxx",
        "end_time":"yyyy-mm-dd hh:mm",
        "conference_url":"https://url_to_conference"
    }
}

 

For Outgoing URL: Send live webinar attendee data, BigMarker will send a POST request to this URL with JSON data in the following format:

{
    "attendees": [{
        "bmid":"xxxxxxx",
        "first_name":"John",
        "last_name":"Doe",
        "email":"john.doe@domain.com",
        "conference_id":"xxxxxxxxx",
        "webinar_title":"Title of Webinar",
        "enter_time": "2022-09-13T09:11:52Z",
        "last_leave_time": "2022-09-13T010:11:52Z",
        "total_duration":"[seconds attended webinar]",
        "engaged duration":"[seconds engaged]",
    }, ... ]
}

 

For Outgoing Webhook: Attendee enters Webinar, BigMarker will send a POST request when a new attendee enters with the JSON data in the following format.

{
    "attendees": [{
        "conference_id":"xxxxxxxxx",
        "conference_url":"https://url_to_conference",
        "webinar_title":"Title of Webinar",
        "bmid":"Member Id",
        "first_name":"John",
        "last_name":"Doe",
        "email":"john.doe@domain.com",
]
}
 

For Outgoing Webhook: Attendee watched on demand, BigMarker will send a POST request to this URL with JSON data in the following format:

{
    "on_demand_viewer": {
        "bmid":"xxxxxxx",
        "first_name":"John",
        "last_name":"Doe",
        "email":"john.doe@domain.com",
        "watched_on":"2022-09-13T09:11:52Z",
        "conference_id":"xxxxxxxxx",
        "webinar_title": "Title of Webinar",
        "recording_duration":"[seconds watched webinar]",
    }
}

 

For Outgoing Webhook: New webinar Create, BigMarker will send a POST request for each new webinar to your URL with the json data in the following format.


{
    "webinar": {
        "webinar_id":"xxxxxxxxxxxx"
        "webinar_title":"Webinar Ttile"
        "webinar_event_type":"Live Webinar"
        "webinar_description":"Abount Webinar"
        "webinar_privacy":"Webinar Privacy"
        "webinar_owner_name":"Morgan Stewart"
        "webinar_owner_email":"mstewart@email.com"
        "webinar_presenter_name":"Christina Tosi, Will Guidara"
        "webinar_presenter_email":"presenter1@email.com, presenter1@email.com"
        "webinar_template_id":"xxxxxxxxxxxx"
        "webinar_template_name":"Copy From Template Name"
        "webinar_start_time":"2023-01-01T09:00:00-05:00"
        "webinar_end_time":"2023-06-15T10:00:00-05:00"
        "webinar_url":"https://url_to_webinar"
        "webinar_registrants":"0"
        "webinar_capacity":"3000"
        "webinar_tag1":"Webinar Tag1"
        "webinar_tag2":"Webinar Tag2"
        "webinar_tag3":"Webinar tag3"
        ...
        "webinar_tag1_value":"Webinar Tag1 Value"
        "webinar_tag2_value":"Webinar Tag2 Value"
        "webinar_tag3_value":"Webinar Tag3 Value"
        ...
        "channel_id":"Channel ID"
        "channel_name":"Channel Name"
    }
}