API and webhooks
Form completion webhook
The Form Completion webhook notifies an external service whenever someone completes a form. It works with both types of form in InTouch:
- Forms, built in the latest form builder
- Legacy forms, set up as form widgets
How you set it up, and the payload it sends, depend on the type of form. Retries, response codes and date formats follow the rules for all webhooks, except that legacy forms send the User-Agent InTouch - https://www.intouch.cloud, and are retried even when the URL cannot be reached at all.
- Navigate to Settings > API
- Under Webhooks, select Form Completion
- Select Add Webhook
- Enter the Webhook URL
- Tick the forms it should be sent for
- Select Save
Each time one of the selected forms is completed, InTouch sends a payload like this to the URL. A submission held for review is sent only once it is accepted, and a rejected one is never sent.
{ "eventName": "InTouch Form Completion Webhook", "matterGuid": "0b9e3c7a-5f1d-4a2e-9c8b-3d6f1e2a7b45", "matterItrCode": "[ITR:491D-1ED]", "submissionType": "Matter: Create", "submissionData": { "matter.reference": "SC/P/Tasker-HR" }, "triggeredByName": "Harry Tasker", "triggeredByEmail": "harry.tasker@example.com", "timestamp": "2026-10-18T09:15:42Z", "formName": "Sale instruction"}submissionTypeisMatter: Createwhen the form created the matter, orMatter: Updatewhen it was completed against an existing onesubmissionDataholds the answers, named by their data markerstriggeredByNameandtriggeredByEmailare whoever submitted the form while signed in. A form completed by someone who is not signed in, such as on your website, sendsAnonymous Form Completionwith no email. A form submitted through the API sendsAPI Keyfollowed by the key’s name
Legacy forms
Section titled “Legacy forms”- Navigate to Settings > Forms and open Legacy Forms
- Select Edit on the form
- Open the form’s Settings
- Tick Invoke the following webhook
- Enter your webhook URL
- Select Save
Each time the form is completed, InTouch sends a payload like this to the URL:
{ "event": "Form_Completion_Matter_Creation", "triggered.by.name": "Korben Dallas", "triggered.by.email": "korben.dallas@example.com", "timestamp": "2026-10-18T09:15:42Z", "data": { "matter.reference": "SC/P/Tasker-HR" }}eventisForm_Completion_Matter_Creationwhen the form created a matter,Form_Completion_Matter_Updatewhen it updated one, andForm_Completionwhen it only sent an emaildataholds the form’s answers, named by their data markers, and any fees from the form’s quote, each with a matching.taxentry. When the form created or updated a matter, it also holds that matter’s detailstriggered.by.nameandtriggered.by.emailare the person who was signed in when the form was completed. When nobody was signed in, such as a client completing the form on your website, the name isSystem Generatedand the email is left out