Webhooks

Botisimo uses webhooks to notify your application when an event happens in your team member accounts. Webhooks are particularly useful for asynchronous events like when a team member updates their account or a stream goes live.

Note

Ready to go live? Register your webhook integration URL so Botisimo knows where to deliver events.

How Botisimo uses Webhooks

A webhook enables Botisimo to push real-time notifications to your app. Botisimo uses HTTPS to send these notifications to your app as a JSON payload. You can then use these notifications to execute actions in your backend systems.

Steps to receive webhooks

You can start receiving event notifications in your app using the steps in this section:

  1. Identify the events you want to monitor and the event payloads to parse.
  2. Create a webhook endpoint as an HTTP endpoint (URL) on your local server.
  3. Handle requests from Botisimo by parsing each event object and returning 2xx response status codes.
  4. Deploy your webhook endpoint so it’s a publicly accessible HTTPS URL.
  5. Register your publicly accessible HTTPS URL in the Botisimo integration dashboard.

Handle requests from Botisimo

Your endpoint must be configured to read objects for the type of notifications you want to receive. Botisimo sends events to your webhook endpoint as part of a POST request with a JSON payload.

Check event objects

Each event is structured as an object with a eventType, id, and related Botisimo resource nested under data. Your endpoint must check the eventType and parse the payload of each event.

{
   "messageId": "20612112-0305-46a9-a67a-e3ffc5bb7a18",
   "timestamp": 1674489999154,
   "eventType": "account.updated",
   "data": { ... }
}

Return a 2xx response

Your endpoint must quickly return a successful status code (2xx) prior to any complex logic that could cause a timeout. For example, you must return a 200 response before updating a team member’s account in your system.

Built-in retries

Botisimo webhooks have built-in retry methods for 3xx, 4xx, or 5xx response status codes. If Botisimo doesn’t quickly receive a 2xx response status code for an event, we mark the event as failed and stop trying to send it to your endpoint. After multiple days, we email you about the misconfigured endpoint, and automatically disable it soon after if you haven’t addressed it.

Event Types

  • account.created
  • account.updated
  • account.discord.updated
  • account.slack.updated
  • account.custom_bot.updated
  • account.custom_bot.updated.twitch
  • account.custom_bot.updated.youtube
  • account.custom_bot.updated.facebook
  • account.custom_bot.updated.trovo
  • account.custom_bot.updated.dlive
  • account.custom_bot.updated.brime
  • account.custom_bot.updated.zoom
  • account.custom_bot.updated.twitter
  • account.custom_bot.updated.tiktok
  • connection.created
  • connection.created.twitch
  • connection.created.youtube
  • connection.created.facebook
  • connection.created.trovo
  • connection.created.dlive
  • connection.created.brime
  • connection.created.zoom
  • connection.created.twitter
  • connection.created.tiktok
  • connection.updated
  • connection.updated.twitch
  • connection.updated.youtube
  • connection.updated.facebook
  • connection.updated.trovo
  • connection.updated.dlive
  • connection.updated.brime
  • connection.updated.zoom
  • connection.updated.twitter
  • connection.updated.tiktok
  • connection.deleted
  • connection.deleted.twitch
  • connection.deleted.youtube
  • connection.deleted.facebook
  • connection.deleted.trovo
  • connection.deleted.dlive
  • connection.deleted.brime
  • connection.deleted.zoom
  • connection.deleted.twitter
  • connection.deleted.tiktok
  • connection.stream.started
  • connection.stream.started.twitch
  • connection.stream.started.youtube
  • connection.stream.started.facebook
  • connection.stream.started.trovo
  • connection.stream.started.dlive
  • connection.stream.started.brime
  • connection.stream.started.tiktok
  • connection.stream.ended
  • connection.stream.ended.twitch
  • connection.stream.ended.youtube
  • connection.stream.ended.facebook
  • connection.stream.ended.trovo
  • connection.stream.ended.dlive
  • connection.stream.ended.brime
  • connection.stream.ended.tiktok
  • stream_report.created
  • creator_site.updated
  • stream_frame.updated
  • stream_overlays.updated
  • spam_filter.updated
  • music.updated
  • command.created
  • command.updated
  • command.deleted
  • giveaway.created
  • giveaway.updated
  • giveaway.deleted
  • giveaway.winner.created
  • poll.created
  • poll.updated
  • poll.deleted
  • poll.winner.created
  • event.created
  • event.updated
  • event.deleted
  • shop_item.created
  • shop_item.updated
  • shop_item.deleted
  • shop_item.purchase.redeemed
  • shop_item.purchase.refunded
  • video.created
  • video.updated
  • video.deleted
  • timer.created
  • timer.updated
  • timer.deleted