session_id is your Form filling session ID from Create Form filling session, and the links point to the Form filling APIs instead of the Ambient APIs.
Common use cases
Use the Form filling webhook when you want your application to react as soon as form processing finishes, instead of polling for status.Write Filled Forms to the EHR
When the notification reports
SUCCESS, retrieve the structured data and write the filled form values into your EHR or EMR.Open Form Review for the Clinician
Tell the clinician that structured assessment forms are ready for review, or that the session needs attention.
Run Quality or Analytics Workflows
Use the same notification to start analytics or quality checks on completed forms and update your application state.
Catch Failures Early
When the notification reports
FAILURE, log error_code and error_detail, then decide whether to retry, alert your team, or show an error.When Suki sends a Form filling webhook
Suki sends a Form filling webhook after you end a session and processing reaches a final outcome. This includes successful processing, skipped processing, processing failures, and aborted sessions. Suki does not send a webhook when you create or start a session. The top-levelstatus indicates the outcome reported by the notification:
Delivery rules
Your webhook receiver must account for the following behaviors:- Cancelled sessions do not generate webhooks. When you send
CANCELwhile streaming, Suki stops the session without sending a webhook for it. - A
FAILUREnotification does not always mean session processing failed. Iferror_codeisERROR_CODE_NOTIFICATION_GENERATION_FAILURE, Suki could not generate the webhook body. The session itself may have completed successfully. Check the session status before reporting a processing error. - The same notification can be delivered more than once. Use
session_idandstatusto identify and skip notifications your application has already processed.
If you cancelled a session or suspect that you missed a notification, call the same endpoint to check the session’s current status.
How a Form filling webhook works
The following sequence shows how Suki delivers a notification and how your application retrieves the results.End the Form Filling Session
Your application creates a Form filling session with the form templates you need, streams audio, and ends the session.
Suki Fills the Forms
Suki generates a filled form instance for each template that it can complete from the conversation.
Suki Sends the Webhook
Suki sends a POST request to your configured callback URL. The request contains the processing outcome and session identifiers.
Verify the Request and Respond
Your endpoint verifies the webhook signature and returns HTTP 200 within 30 seconds. Refer to Signature verification.
Check the Status and Retrieve Results
When the notification reports
SUCCESS, call the status link if you need to confirm the session finished, then call the structured_data link to read the filled forms. Refer to Retrieve Form filling results.What the payload includes
When a Form filling session completes, the webhook contains only two links for each Form filling session in the . Form filling creates results for each session, not for the encounter as a whole, so there are no encounter links.structured_datapoints to the filled forms.statuspoints to the session status.
contents, transcripts, and encounter_content, are still in the webhook but are empty lists. The webhook never contains the filled form values, so always read them from the structured_data link.
A SUCCESS webhook also does not mean every form was filled. Any form Suki could not fill is listed in non_generated_values when you read the structured data.
Form filling and ambient sessions in one encounter
The same visit can include an ambient session and a Form filling session. Suki still sends a separate webhook for each one.- A Form filling webhook covers only Form filling. Its
sessionslist includes Form filling session IDs only. - An Ambient webhook covers only ambient. Its
sessionslist includes ambient session IDs only.
SUCCESS, check additional_info.session_type. It is FORM_FILLING for this webhook and AMBIENT for the Ambient webhook.