How Webhooks Are Processed
RevyOps webhook endpoints receivePOST requests from your sending platforms. For several
integrations, a 200 response confirms RevyOps received the event, not necessarily that it has
finished processing yet, so an event’s effects (a new email record, an updated contact) can show
up a short time after the response comes back.
Endpoint Reference
Per-Workspace Webhooks
The endpoints below are scoped to a single workspace. Use them when each workspace has its own sending platform account.Agency-Level (Global) Webhooks
Use these when a single sending platform account is shared across multiple workspaces. RevyOps sends a campaign event to a workspace when the campaign name contains one of the keywords set for that workspace on the Campaign Mapping page, and that workspace has the platform ticked under Integrations with mapping. Two platforms add a second route. An EmailBison event that names its EmailBison workspace goes to the RevyOps workspace whose keyword is that EmailBison workspace name, ignoring capitals, and whose saved Email Bison API URL is on the same EmailBison domain. A HeyReach tag event carries no campaign name, so it goes to each workspace that has already sent that lead LinkedIn messages through HeyReach.
Once a workspace has a platform ticked under Integrations with mapping, RevyOps ignores events
sent to that workspace’s own per-workspace URL for that platform, so the same event can’t arrive
twice, and still answers them with a success. If you tick Instantly for a workspace but its Instantly account
still sends to the per-workspace URL, nothing from it arrives.
When a Webhook Isn’t Allowed for a Workspace
If an agency’s permissions restrict which integrations a workspace can use and the webhook’s integration isn’t in that list, or the workspace can’t be resolved at all, the request is rejected before your payload is read, and you’ll see a401 Unauthorized response.
Unowned Events
RevyOps can also check that an inbound event actually belongs to the workspace it claims to be for. Where this check is enforced, an event that fails it gets a200 response with body
{"message": "Event not owned by this workspace"} and is not processed further. Because the status
is 200, the sending platform’s delivery log shows the event as delivered, so read the response
body when events go missing.
Webhooks and Workspace Archiving
Archiving a workspace in RevyOps automatically disables that workspace’s EmailBison and HeyReach webhooks, so an archived, no-longer-billed workspace doesn’t keep sending events. Unarchiving a workspace restores them. Other platforms’ webhooks are not automatically torn down on archive.Debugging Webhook Events
If events are not appearing in RevyOps:- Confirm the webhook URL includes your correct
client_id - Check your sending platform’s webhook delivery logs for any error responses, and read the body of
200responses too, since a dropped event also returns200 - Verify the platform is sending the correct event types
- If you use a global webhook, check the campaign name against the workspace’s keywords on the Campaign Mapping page
- Use the Emails section in RevyOps to see if any records arrived with unexpected data

