Reference
A concise technical reference for the workflow action output and trigger payload.
Workflow Action Fields
Inputs on Generate Record Update Form. Reference names are what the action payload uses.
| Field | Reference | Type | Notes |
|---|---|---|---|
| Object | object_key | Select | Required. contact, business, opportunity or a Custom Object key. |
| Record ID | record_id | String | Leave empty to create a new record on the first successful submission. |
| Link Expiry | expiry | Numeric or String | Days until the link expires. Decimals allowed. Greater than 0 and at most 3650. Blank defaults to 7. An out-of-range or non-numeric value fails with VALIDATION_FAILED. |
| Allow Multiple Submissions | allow_multiple_submissions | Toggle | Default on. Off makes the link single-submit. |
| Logo URL | logo_url | String | Shown at the top of the form. |
| Favicon URL | favicon_url | String | Per-form browser-tab icon. |
| Form Instructions | form_instructions | Rich text | Supports HighLevel workflow variables. Defaults to the heading “Update Details” when empty. |
| Redirect On Submission | redirect_on_submission | String | HTTPS URL the recipient lands on after submitting. |
| Form Reference | form_reference | String | Alphanumeric label for the form’s business purpose. Useful as a trigger filter. |
| File Upload Field Option | file_upload_mode | Select | Add, Replace, or Optional deletion. See File Uploads. |
| Hide Fields | excluded_field_keys | Multiselect | Loaded for the selected Object. |
| Read-only Fields | readonly_field_keys | Multiselect | A field that is also hidden will not appear. |
| Required Fields | required_field_keys | Multiselect | A field that is hidden or read-only will not appear. |
| Pipeline & Stage | stage_id | Select | Opportunity only. Sets pipeline and stage on submission. |
| Send Verification Code | send_verification_code | Checkbox | Contact and Opportunity only. Requires a one-time SMS/email code before the form opens. |
There is no Hidden Location ID field on this action; HighLevel supplies the location natively on every request.
Workflow Action Output
| Property | Description |
|---|---|
success | Whether the form was generated successfully |
form_url | The secure public form link |
form_id | Identifier for the generated form |
form_reference | The business-purpose reference set on the action |
object_key | The selected object |
record_id | Can be null when a form is generated in creation mode |
expires_at | When the generated link expires |
Form Submitted Trigger
| Property | Description |
|---|---|
object_key | The object the form was configured for |
record_id | The CRM record that was updated or created |
contactId | On a Contact form, the same value as record_id. On any other object, the Contact from the workflow context that generated the form, if one was present – otherwise omitted |
form_id | Identifier for the generated form |
form_reference | The business-purpose reference set on the action |
submitted_at | When the submission was saved |
created | See below |
changed_fields | Array of the fields actually written back on this submission |
opportunity_signature_url | Opportunity submissions only – the URL of the first Signature-type field that's been signed, or null if the object isn't Opportunity, has no Signature field, or none has been signed yet. Only the first Signature field is ever included if the object has more than one. |
created = true means this submission created the CRM record. created = false means this submission updated an existing or previously created record. See Form Submission Trigger for when the trigger fires.
Supported Objects
- Contact
- Business
- Opportunity
- Any HighLevel Custom Object
Every Custom Object type is supported – there is no allow-list of specific Custom Objects. Individual field types within any object can still be unsupported; unsupported field types are omitted from the form rather than guessed at.
Submission Behaviour
- Successful saves fire the Form Submitted trigger
- Zero-change successful submissions still fire the trigger
- Multiple submissions can be enabled or disabled
- Single-submit forms reject later submissions
- Changed fields are updated individually
- If the record changed after the form was opened, submission is blocked (not silently overwritten or merged) – see Troubleshooting