How webhooks work
1
Register your outbound URL
Go to Emma → Integrations → No-Code Automation. Add the URL where Emma should send outcome events and copy your inbound webhook URLs for use in the next step.
2
Subscribe in your platform
In your forms platform, EMR, or payment system, subscribe to the relevant event (for example,
forms.abandoned) and point it at your Emma inbound URL.3
Emma receives the event
Emma parses the payload, matches it to the configured workflow, and starts execution automatically.
4
Emma sends the outcome
When the workflow completes, Emma POSTs the outcome event to your registered outbound URL.
Inbound events Emma accepts
Inbound event URLs and payloads
Emma exposes per-clinic inbound webhook URLs. Use the URLs from the Integrations page to point your platform at the correct endpoint for each event type.Securing inbound webhooks
Emma uses a shared secret to verify that inbound requests originate from a trusted source. Each inbound webhook URL has an associated secret generated on the Integrations page. Your platform must include this secret in every request:Outbound webhook events
When a workflow finishes, Emma POSTs an outcome event to your registered outbound URL. The payload includes the clinic, a timestamp, and structured outcome data you can use to update your own records or trigger downstream actions.recovery_case.created
Emma fires this event as soon as it creates a recovery case — before any outreach attempt is made. Use it to log or display the pending case in your system.
recovery_case.outcome
Emma fires this event when a recovery workflow reaches a terminal state. Use it to update your system of record with the final outcome.
Recovery status values
Idempotency
Emma deduplicates incoming events by session ID. Sending the sameforms.abandoned event twice for the same session creates only one recovery case — so you don’t need to worry about accidental duplicate triggers from your platform.