# Submit human input to a Fin Procedure HITL step Submit human-collected input to a Fin Procedure that is paused at a Human in the Loop (HITL) step. When a procedure reaches a HITL step with the API channel enabled, Intercom sends a procedure.hitl_notification.created webhook. Use the callback_url from that webhook payload to call this endpoint with the collected attribute values. The step_id must match the one from the webhook payload, and attribute_values must include a value for every attribute listed in attributes_to_collect. {% admonition type="info" name="Authentication" %} This endpoint requires an OAuth token with the write_conversations scope. The admin associated with the token must have access to the conversation. {% /admonition %} {% admonition type="warning" name="Feature access" %} This endpoint requires the Procedures HITL API feature to be enabled for your workspace. {% /admonition %} Endpoint: POST /procedures/{conversation_id}/collect_agent_input Version: Preview Security: bearerAuth ## Header parameters: - `Intercom-Version` (string) Intercom API version.By default, it's equal to the version set in the app package. Enum: "1.0", "1.1", "1.2", "1.3", "1.4", "2.0", "2.1", "2.2", "2.3", "2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12", "2.13", "2.14", "Preview" ## Path parameters: - `conversation_id` (string, required) The ID of the conversation where the HITL step was triggered. Example: "215473853299345" ## Request fields (application/json): - `step_id` (string, required) The step_id from the webhook payload, identifying which HITL step this response is for. Example: "d5b81f72-adb9-4317-b973-75b3c3624c09" - `attribute_values` (array, required) Array of attribute values matching the attributes_to_collect from the webhook payload. Must include a value for every attribute listed. - `attribute_values.identifier` (string, required) Must exactly match an identifier from the webhook's attributes_to_collect array. Example: "workflow_local_variables.72c5a6b3-3cce-41d8-8e30-14da40791958" - `attribute_values.value` (any, required) The value for this attribute. Must be type-compatible with the attribute's data_type from the webhook (e.g., boolean for boolean attributes, option ID string for list attributes). Example: true ## Response 401 fields (application/json): - `type` (string, required) The type is error.list Example: "error.list" - `request_id` (string,null) Example: "f93ecfa8-d08a-4325-8694-89aeb89c8f85" - `errors` (array, required) An array of one or more error objects - `errors.code` (string, required) A string indicating the kind of error, used to further qualify the HTTP response code Example: "unauthorized" - `errors.message` (string,null) Optional. Human readable description of the error. Example: "Access Token Invalid" - `errors.field` (string,null) Optional. Used to identify a particular field or query parameter that was in error. Example: "email" ## Response 403 fields (application/json): - `type` (string, required) The type is error.list Example: "error.list" - `request_id` (string,null) Example: "f93ecfa8-d08a-4325-8694-89aeb89c8f85" - `errors` (array, required) An array of one or more error objects - `errors.code` (string, required) A string indicating the kind of error, used to further qualify the HTTP response code Example: "unauthorized" - `errors.message` (string,null) Optional. Human readable description of the error. Example: "Access Token Invalid" - `errors.field` (string,null) Optional. Used to identify a particular field or query parameter that was in error. Example: "email" ## Response 404 fields (application/json): - `type` (string, required) The type is error.list Example: "error.list" - `request_id` (string,null) Example: "f93ecfa8-d08a-4325-8694-89aeb89c8f85" - `errors` (array, required) An array of one or more error objects - `errors.code` (string, required) A string indicating the kind of error, used to further qualify the HTTP response code Example: "unauthorized" - `errors.message` (string,null) Optional. Human readable description of the error. Example: "Access Token Invalid" - `errors.field` (string,null) Optional. Used to identify a particular field or query parameter that was in error. Example: "email" ## Response 409 fields (application/json): - `type` (string, required) The type is error.list Example: "error.list" - `request_id` (string,null) Example: "f93ecfa8-d08a-4325-8694-89aeb89c8f85" - `errors` (array, required) An array of one or more error objects - `errors.code` (string, required) A string indicating the kind of error, used to further qualify the HTTP response code Example: "unauthorized" - `errors.message` (string,null) Optional. Human readable description of the error. Example: "Access Token Invalid" - `errors.field` (string,null) Optional. Used to identify a particular field or query parameter that was in error. Example: "email"