Webhook Events
Webhooks are a way for a web application to be alerted of activity on a Rewatch channel.
Connor Sears avatar
Written by Connor Sears
Updated over a week ago

Webhooks are a way for a web application to be alerted of activity on a Rewatch channel. By providing a URL to receive JSON payloads representing channel events, it’s possible to take action in response to that activity.

Read the webhooks overview for a general discussion of using webhooks with your Rewatch channel.

Note: Creating and configuring webhooks may only be done by channel administrators. Webhook events will contain information about channel resources such as collections and videos regardless of their visibility on the channel.

Webhook event types

There are a set of high-level event types that correspond to resource types in a Rewatch channel, and for each of those there are a set of actions that may be taken on those resources. The combination of those yields the set of events that trigger webhook deliveries.

The current event types and their actions are:

In the near future there will be events added for member and group actions.

The combination of event type and action is represented in the Rewatch-Hook-Delivery-Event header and the JSON payload event field in webhook delivery HTTP requests.

For example, deleting a collection from your channel will result in those fields being set to collection.deleted.

Example event payloads

video.addedToChannel

This event will fire whenever a video leaves the draft state on a channel, regardless of its visibility.

Version: HTTP/1.1 Host: rewatch-example.ngrok.io User-Agent: Rewatch Webhooks Accept: application/json; charset=utf-8 Rewatch-Hook-Delivery-Nonce: dc808dc8cca765568b8b85b4df75b656e8c5de01 Rewatch-Hook-Delivery-Signatures: 38bdef36aaba6c3ec20c0da3f17284,41f15ca050e3787069ea0b1199a602 Rewatch-Hook-Delivery-Timestamp: 2021-08-10T06:09:39Z Rewatch-Hook-Delivery-Event: video.addedToChannel Rewatch-Hook-Id: V2ViaG9vay0x { "hookId": "V2ViaG9vay0x", "nonce": "dc808dc8cca765568b8b85b4df75b656e8c5de01", "at": "2021-08-10T06:09:39.071Z", "event": "video.addedToChannel", "actor": { "id": "VXNlci02MTcz", "firstName": "Example", "lastName": "User", "email": "user@example.com", "createdAt": "2021-07-15T04:17:22.550Z" }, "channel": { "url": "https://example.rewatch.com", "name": "Rewatch Example", "subdomain": "example", "description": null, "createdAt": "2021-07-15T04:17:22.545Z" }, "video": { "id": "VmlkZW8tMTM4NjA=", "url": "https://example.rewatch.com/video/13860/all-hands-presentation", "title": "All-hands presentation", "summary": "The latest updates from the leadership team.", "visibility": "PRIVATE", "presentedAt": "2021-08-10T00:00:00.000Z", "duration": 25.7, "collections": [ { "id": "Q29sbGVjdGlvbi0xMzI2", "url": "https://example.rewatch.com/collection/1326/new-collection-for-hook", "name": "All-hands", "description": "The bi-weekly all-hands sessions.", "createdAt": "2021-08-02T21:08:57.146Z", "secret": true, "children": [ ], "admins": [ ], "members": [ ] } ], "taggedUsers": [ ], "createdAt": "2021-08-10T06:08:39.996Z" } }

video.updated

This event will fire when a video’s details, such as its title or description, are changed, collections are added or removed, users are tagged or untagged, or the video is trimmed.

Version: HTTP/1.1 Host: rewatch-example.ngrok.io User-Agent: Rewatch Webhooks Accept: application/json; charset=utf-8 Rewatch-Hook-Delivery-Nonce: cf8540f64eb1de7f9606ecb3ad96b230b9ef8b15 Rewatch-Hook-Delivery-Signatures: 38bdef36aaba6c3ec20c0da3f17284,41f15ca050e3787069ea0b1199a602 Rewatch-Hook-Delivery-Timestamp: 2021-08-09T20:05:28Z Rewatch-Hook-Delivery-Event: video.updated Rewatch-Hook-Id: V2ViaG9vay0x { "hookId": "V2ViaG9vay0x", "nonce": "cf8540f64eb1de7f9606ecb3ad96b230b9ef8b15", "at": "2021-08-09T20:05:28.895Z", "event": "video.updated", "actor": { "id": "VXNlci02MTcz", "firstName": "Example", "lastName": "User", "email": "user@example.com", "createdAt": "2021-07-15T04:17:22.550Z" }, "channel": { "url": "https://example.rewatch.com", "name": "Rewatch Example", "subdomain": "example", "description": null, "createdAt": "2021-07-15T04:17:22.545Z" }, "video": { "id": "VmlkZW8tMTE4MjA=", "url": "https://example.rewatch.com/video/11820/snack", "title": "My Zoom Call", "summary": "", "visibility": "ON_CHANNEL", "presentedAt": "2021-07-15T00:00:00.000Z", "duration": 60.466, "collections": [ { "id": "Q29sbGVjdGlvbi0xMjE1", "url": "https://example.rewatch.com/collection/1215/test-collection", "name": "Test Collection", "description": "For testing!", "createdAt": "2021-07-15T04:42:23.897Z", "secret": false, "children": [ ], "admins": [ ], "members": [ ] }, { "id": "Q29sbGVjdGlvbi0xMjIy", "url": "https://example.rewatch.com/collection/1222/test-collection-2", "name": "Test Collection 2", "description": "Another one.", "createdAt": "2021-07-16T03:48:07.010Z", "secret": false, "children": [ ], "admins": [ ], "members": [ ] } ], "taggedUsers": [ ], "createdAt": "2021-07-15T04:43:10.154Z" }, "updates": { "title": { "from": "My Zoom Call", "to": "API Design Session" } } }

video.deleted

This event fires whenever a non-draft video is removed from a channel.

Version: HTTP/1.1 Host: rewatch-example.ngrok.io User-Agent: Rewatch Webhooks Accept: application/json; charset=utf-8 Rewatch-Hook-Delivery-Nonce: 9a0566584b7972e90d77e8b346a94344e6c2fd95 Rewatch-Hook-Delivery-Signatures: 38bdef36aaba6c3ec20c0da3f17284,41f15ca050e3787069ea0b1199a602 Rewatch-Hook-Delivery-Timestamp: 2021-08-10T06:16:42Z Rewatch-Hook-Event: video.deleted Rewatch-Hook: V2ViaG9vay0x { "hookId": "V2ViaG9vay0x", "nonce": "9a0566584b7972e90d77e8b346a94344e6c2fd95", "at": "2021-08-10T06:16:42.194Z", "event": "video.deleted", "actor": { "id": "VXNlci02MTcz", "firstName": "Example", "lastName": "User", "email": "user@example.com", "createdAt": "2021-07-15T04:17:22.550Z" }, "channel": { "url": "https://example.rewatch.com", "name": "Rewatch Example", "subdomain": "example", "description": null, "createdAt": "2021-07-15T04:17:22.545Z" }, "video": { "id": "VmlkZW8tMTM4NjA=", "url": "https://example.rewatch.com/video/13860/all-hands-presentation", "title": "All-hands presentation", "summary": "", "visibility": "PRIVATE", "presentedAt": "2021-08-10T00:00:00.000Z", "duration": 25.7, "collections": [ ], "taggedUsers": [ ], "createdAt": "2021-08-10T06:08:39.996Z" } }

collection.created

This event will fire when a collection is created.

Version: HTTP/1.1 Host: rewatch-example.ngrok.io User-Agent: Rewatch Webhooks Accept: application/json; charset=utf-8 Rewatch-Hook-Delivery-Nonce: 8110fe3af6872b93073b7d5af4d38b3a731f0004 Rewatch-Hook-Delivery-Signatures: 38bdef36aaba6c3ec20c0da3f17284,41f15ca050e3787069ea0b1199a602 Rewatch-Hook-Delivery-Timestamp: 2021-08-10T06:27:59Z Rewatch-Hook-Delivery-Event: collection.created Rewatch-Hook-Id: V2ViaG9vay0x { "hookId": "V2ViaG9vay0x", "nonce": "8110fe3af6872b93073b7d5af4d38b3a731f0004", "at": "2021-08-10T06:27:59.354Z", "event": "collection.created", "actor": { "id": "VXNlci02MTcz", "firstName": "Example", "lastName": "User", "email": "user@example.com", "createdAt": "2021-07-15T04:17:22.550Z" }, "channel": { "url": "https://example.rewatch.com", "name": "Rewatch Example", "subdomain": "example", "description": null, "createdAt": "2021-07-15T04:17:22.545Z" }, "collection": { "id": "Q29sbGVjdGlvbi0xMzc2", "url": "https://example.rewatch.com/collection/1376/all-hands", "name": "All-hands", "description": "Collecting the bi-weekly all hands sessions.", "createdAt": "2021-08-10T06:27:59.321Z", "secret": false, "children": [ ], "admins": [ ], "members": [ ], "parent": null } }

collection.updated

This event will fire when a collection’s details, such as its name, description, parent, or secret status, are changed or members are added or removed.

Version: HTTP/1.1 Host: rewatch-example.ngrok.io User-Agent: Rewatch Webhooks Accept: application/json; charset=utf-8 Rewatch-Hook-Delivery-Nonce: d25336894c531863962bd0263c94fd9026c09406 Rewatch-Hook-Delivery-Signatures: 38bdef36aaba6c3ec20c0da3f17284,41f15ca050e3787069ea0b1199a602 Rewatch-Hook-Delivery-Timestamp: 2021-08-10T06:31:55Z Rewatch-Hook-Delivery-Event: collection.updated Rewatch-Hook-Id: V2ViaG9vay0x { "hookId": "V2ViaG9vay0x", "nonce": "d25336894c531863962bd0263c94fd9026c09406", "at": "2021-08-10T06:31:55.427Z", "event": "collection.updated", "actor": { "id": "VXNlci02MTcz", "firstName": "Example", "lastName": "User", "email": "user@example.com", "createdAt": "2021-07-15T04:17:22.550Z" }, "channel": { "url": "https://example.rewatch.com", "name": "Rewatch Example", "subdomain": "example", "description": null, "createdAt": "2021-07-15T04:17:22.545Z" }, "collection": { "id": "Q29sbGVjdGlvbi0xMzc3", "url": "https://example.rewatch.com/collection/1377/q-and-a-sessions", "name": "Q and A Sessions", "description": "Q and As following the bi-weekly all-hands.", "createdAt": "2021-08-10T06:30:46.095Z", "secret": false, "children": [ ], "admins": [ ], "members": [ ], "parent": { "id": "Q29sbGVjdGlvbi0xMzc2", "url": "https://example.rewatch.com/collection/1376/all-hands", "name": "All-hands", "description": "Collecting the bi-weekly all hands sessions.", "createdAt": "2021-08-10T06:27:59.321Z", "secret": false, "children": [ { "id": "Q29sbGVjdGlvbi0xMzc3", "url": "https://example.rewatch.com/collection/1377/q-and-a-sessions", "name": "Q and A Sessions", "description": "Q and As following the bi-weekly all-hands.", "createdAt": "2021-08-10T06:30:46.095Z", "secret": false, "children": [ ], "admins": [ ], "members": [ ] } ], "admins": [ ], "members": [ ] } }, "updates": { "parent": { "from": null, "to": { "id": "Q29sbGVjdGlvbi0xMzc2", "url": "https://example.rewatch.com/collection/1376/all-hands", "name": "All-hands", "description": "Collecting the bi-weekly all hands sessions.", "createdAt": "2021-08-10T06:27:59.321Z", "secret": false, "children": [ { "id": "Q29sbGVjdGlvbi0xMzc3", "url": "https://example.rewatch.com/collection/1377/q-and-a-sessions", "name": "Q and A Sessions", "description": "Q and As following the bi-weekly all-hands.", "createdAt": "2021-08-10T06:30:46.095Z", "secret": false, "children": [ ], "admins": [ ], "members": [ ] } ], "admins": [ ], "members": [ ] } } } }

collection.deleted

This event will fire when a collection is deleted.

Version: HTTP/1.1 Host: rewatch-example.ngrok.io User-Agent: Rewatch Webhooks Accept: application/json; charset=utf-8 Rewatch-Hook-Delivery-Nonce: d4b28e32d885ff7c851da71116c7ab51003d2257 Rewatch-Hook-Delivery-Signatures: 30c468e042a6bdeed1301764c58767d145ba5b785dac7f3cc520741d0522faf4 Rewatch-Hook-Delivery-Timestamp: 2021-08-10T06:37:46Z Rewatch-Hook-Delivery-Event: collection.deleted Rewatch-Hook-Id: V2ViaG9vay0x { "hookId": "V2ViaG9vay0x", "nonce": "d4b28e32d885ff7c851da71116c7ab51003d2257", "at": "2021-08-10T06:37:46.181Z", "event": "collection.deleted", "actor": { "id": "VXNlci02MTcz", "firstName": "Example", "lastName": "User", "email": "user@example.com", "createdAt": "2021-07-15T04:17:22.550Z" }, "channel": { "url": "https://example.rewatch.com", "name": "Rewatch Example", "subdomain": "example", "description": null, "createdAt": "2021-07-15T04:17:22.545Z" }, "collection": { "id": "Q29sbGVjdGlvbi0xMzc3", "url": "https://example.rewatch.com/collection/1377/q-and-a-sessions", "name": "Q and A Sessions", "description": "Q and As following the bi-weekly all-hands.", "createdAt": "2021-08-10T06:30:46.095Z", "secret": false, "children": [ ], "admins": [ ], "members": [ ] } }


Did this answer your question?