The Loop in teammate / agent step lets Fin pause mid-procedure and wait for a human decision before continuing. Fin sends a notification to an external system of your choice — someone reviews the request, a decision is sent back, and Fin picks up where it left off.
When to use the standalone HITL webhook
The Loop in teammate / agent step has two main uses:
Human oversight — for high-risk or high-value actions where a human must review and approve before Fin proceeds. Examples: refund or exception approvals, compliance-sensitive requests (e.g. account closures, data deletion), high-value customer escalations, goodwill gestures, or any situation where policy requires a human sign-off.
Procedure testing — to stand in for a data connector or backend action that isn't built yet. A human can perform the step manually, letting you test the full procedure flow before the integration is ready.
What you'll need
Before getting started, make sure you have:
A Fin Procedure with at least one Loop in teammate / agent step
A URL (webhook endpoint) where your system can receive and respond to notifications from Fin
The Manage apps and integrations permission in Settings
Note: You don't need any third-party developer tools or app credentials to set this up — everything is configured directly in the procedure editor.
How it works
When a customer's conversation reaches a Loop in teammate / agent step in a Fin Procedure:
1. Fin pauses the conversation
Before pausing, Fin can send the customer a message — letting them know their request is being reviewed.
Fin sends a notification to your external system.
Fin waits and won't continue until a response is received or the step times out.
2. Your system is notified
Your system receives a notification with the conversation details and the information needed to make a decision.
A human reviewer sees the request — or your system applies its own logic to respond automatically.
When Fin reaches the Loop in teammate / agent step, it sends a notification to your external system with the conversation details and the action needed. In this example, a reviewer receives a 2FA reset request and instructions to verify the customer’s identity before responding.
3. The decision is sent back
Your system sends the decision back to Fin.
4. Fin continues the procedure
Fin resumes from where it paused.
The response from your system is available in later steps via a Read attribute step.
Use an IF/ELSE condition to branch based on the outcome — for example: approved, continue; declined, send the customer a message.
Important: A procedure with a Loop in teammate / agent step can't go live until the webhook connection is configured. You'll be prompted to complete setup before publishing.
Step 1: Add and configure the step
Go to Train > Procedure and open the procedure you want to add the step to.
In the instructions block, type @ and select Loop in teammate / agent.
The step appears in the procedure editor. You'll see a Collect count showing how many response fields are defined, and a Wait time showing how long Fin will wait — both are configured from the step's settings panel.
Click the gear icon to open the step's settings. The settings panel has three sections: Ask via webhook (for the webhook connection), Response to collect (the fields your reviewer fills in), and Wait time (how long Fin waits before timing out).
Under Ask via webhook, click Configure. Enter your Delivery URL — the web address where Intercom sends the notification when this step is reached — then click Save.
The Loop in teammate / agent webhook modal reveals your developer credentials once connected.
Under Response to collect, click + Add to define the fields your reviewer needs to fill in. Give each field a format and a name — for example, a 'Rejection reason' text field or an 'Approved' boolean.
Each response field has a format — dropdown, text, or boolean (true/false) — a name, and an optional description. When a teammate is looped in, they fill in these fields directly on the conversation.
Under Wait time, set how long Fin should wait for a response before timing out. The minimum is 1 minute — there’s no maximum. You can choose minutes or hours. Edit the message below to control what Fin says to the customer if the wait time is exceeded.
Save your Procedure. Continue to Step 2 to get your developer credentials — the procedure can’t go live until the webhook connection is configured.
Note: For the Loop in teammate / agent step with webhook delivery, this is the only delivery channel — there's no option to route to an inbox or team.
Step 2: Get your developer credentials
After saving the Delivery URL in the Loop in teammate / agent webhook modal, the modal shows Webhook connected and reveals three credentials your developer needs. If it shows Not configured, check that your Delivery URL is saved and that no previously issued access token has expired or been revoked — a revoked token also prevents the Fin Procedure from going live.
Access token — authenticates the responses your system sends back to Fin.
Signing secret — confirms that incoming notifications are genuinely from Intercom.
Example callback URL — a unique URL is generated for each conversation. Your system POSTs the reviewer’s decision to this URL to resume the procedure.
Note: You can view these credentials any time by clicking Configure in the Ask via webhook section of the step’s settings panel. Only teammates with the Manage apps and integrations permission can open this dialog — teammates without it will see a request-permission prompt instead.
Working with your developer
Once the modal shows Webhook connected, share the Access token, Signing secret, and Example callback URL from the Loop in teammate / agent webhook modal with the developer building the integration. They’ll build the endpoint that:
Receives the notification from Fin when the step is reached
Presents the request to a reviewer, or applies automated logic
Sends the decision back so Fin can continue
How to test the standalone HITL webhook
Use Simulations — automated test runs in the procedure editor — to test the Loop in teammate / agent step without triggering a real webhook notification to your system.
Open a simulation for the procedure and look for the Teammate input available to Fin section. Add the values you'd expect from a reviewer — for example, Approved: true — then run the simulation. Fin uses those values as if your system had responded.
Note: If you don't add values before running, Fin treats the step as timed out.
Limitations
There’s one delivery URL per workspace. Changing it updates the webhook connection for every Fin Procedure using the Loop in teammate / agent step.
If the wait time expires and no response is received, Fin sends the customer the timeout message you configured — the procedure ends and the conversation escalates.
The default timeout message refers to ‘the team’ — update it before going live to match your actual setup.
Standalone HITL webhook vs the Developer Hub API approach
Both methods pause a procedure at a HITL step and notify your system via webhook — but they differ in how they're set up and who they're for:
Standalone HITL webhook: Configured directly in the procedure editor — no Developer Hub app or OAuth scopes required. One delivery URL per workspace. Only available for Fin Standalone workspaces. The webhook channel is automatically enabled on all HITL steps in Standalone procedures.
Developer Hub API approach: Requires a Developer Hub app, Preview API version, and the read_conversations and write_conversations OAuth scopes. Enabled per-step and works alongside the Intercom Inbox and Slack channels. Available to non-Standalone workspaces. See Human-in-the-loop approvals via API.
From the customer's perspective, both approaches are invisible — the conversation continues without interruption once your system responds.
FAQ
Can I use a different webhook URL for different procedures?
Can I use a different webhook URL for different procedures?
You can’t use a different webhook URL for different procedures — there’s one delivery URL per workspace. Every Fin Procedure using the Loop in teammate / agent step sends notifications to the same endpoint. If you need to route requests differently per procedure, your external system can handle that based on the details included in the notification.
What happens to the customer while they wait for a response?
What happens to the customer while they wait for a response?
While waiting for a response, Fin pauses the conversation silently unless you’ve added a waiting message. You can configure this in the Wait time section of the step’s settings — for example, “We’re reviewing your request and will be in touch shortly.” If no response is received in time, Fin sends the timeout message you’ve configured, the procedure ends, and the conversation escalates.
Can I add more than one Loop in teammate / agent step to the same procedure?
Can I add more than one Loop in teammate / agent step to the same procedure?
Yes, you can add more than one Loop in teammate / agent step to the same procedure. Multiple steps are supported to collect human input at different points in the flow. All steps share the same workspace webhook connection.
Can I change the Delivery URL after setting it up?
Can I change the Delivery URL after setting it up?
Yes, you can change the Delivery URL after setting it up. Click Configure in the Ask via webhook section of the step’s settings panel and enter a new URL. Keep in mind that changing it updates the webhook connection for every Fin Procedure using this step, not just the one you’re currently editing.
Is there a way to track which decisions were made?
Is there a way to track which decisions were made?
There’s no way to track decisions made through this step in Intercom — there are no reporting or analytics surfaces for individual decisions. Your external system is responsible for logging and tracking responses.
Need more help? Get support from our Community Forum
Find answers and get help from Intercom Support and Community Experts










