Skip to main content

Building Fin Procedures

How to build structured, reliable Fin Procedures with steps, tools, and guidance.

Written by Dawn

Fin Procedures let you design clear, repeatable flows that guide Fin through handling complex queries. You define the structure using Steps, extend Fin’s abilities with Tools, and shape its behavior with Guidance.

Whether you’re collecting information, branching logic, connecting to external systems, or handing off to teammates, Procedures give you full control over how Fin handles a conversation from start to finish.

Note: To create Procedures you need to have the permission "can manage workspace data".


Get started

To build a new Fin Procedure, navigate to Fin AI Agent > Train > Procedures in your workspace.

Click + New procedure and choose your preferred creation method:

Option 1: Let AI draft your procedure

This is the fastest method if you already have a process in mind or documented.

  1. Select Let AI draft your procedure.

  2. Choose your starting point option 1: describe your process or option 2: choose a template:

    • Option 1: Describe your process: Write your process in natural language, or paste existing step-by-step instructions or Standard Operating Procedures (SOPs) directly into the text box. Fin will automatically structure them into a proper procedure format for you. Select which attributes and Data Connectors to include as context — you can choose specific connectors rather than passing all of them, and attributes now act as context rather than just placeholders.

    • Option 2: Choose a template: Select an industry-specific template (e.g., SaaS, Ecommerce, Fintech, or Gaming) and pick a common scenario, like "Cancel or pause a subscription". Select which attributes and Data Connectors to include as context — you can choose specific connectors rather than passing all of them, and attributes now act as context rather than just placeholders.

      Note: There is a 5,000 character limit for the description field in Let AI draft your procedure.

  3. Click Continue. Fin will then analyze your input and ground the draft in your workspace context by searching through your past customer conversations, existing documentation, and Data Connectors.

  4. Answer the clarifying questions to help Fin flesh out specific logic and instructions. While these are optional, providing this information ensures a more accurate draft.

  5. Once Fin generates the draft, a feedback modal appears. Choose Keep to accept the draft, Clear to discard it and start fresh, or Try again to regenerate.

Tip: If you already have step-by-step instructions, or a documented process, use Option 1: Let AI draft your procedure. Simply paste your existing instructions and let Fin structure them into a proper procedure format — no need to manually format each step yourself. You can also draft your use case first to identify which Data Connectors you'll need to set up before going live.

Option 2: Create from scratch

Use this method if you want to build a Procedure manually.

  1. Select Create from scratch.

  2. Name your procedure and enter the editor to begin adding steps manually.

Tell Fin when to use this procedure

At the top of the editor, you'll find the When to use this procedure section. This is crucial to telling Fin exactly when to utilise this Procedure. To ensure Fin triggers only when intended, you must provide clear trigger logic and high-quality conversation examples. These two components work together to improve reliability and reduce false positives.

1. Write the 'When to use this Procedure' logic

Describe exactly when this procedure should (and should not) start. A strong trigger includes specific criteria and exclusions.

Example of high-quality trigger logic:

When to trigger this procedure: Trigger this procedure when a customer reports that the software is not working correctly or is behaving unexpectedly.

Inclusion criteria (Trigger if):

  • The customer describes a specific technical problem or error.

  • The customer states that a feature is broken.

  • The customer mentions a bug, glitch, or malfunction.

Exclusion criteria (Do NOT trigger if):

  • The customer is requesting a new feature.

  • The customer is asking account-related questions (e.g., password resets).

Clear, comprehensive triggers ensure Fin activates your procedure for the right customer intents and avoids firing for unrelated queries.

How procedure triggering works

Fin evaluates every customer message to decide whether it matches a procedure’s trigger description, meaning a procedure won’t start just because a conversation opened. It starts when Fin is confident the customer’s intent matches the procedure’s purpose. When testing, send a message that clearly expresses the intent in your “When to use this procedure” instructions rather than a short or vague opening message.

2. Train Fin with examples

Once you have written your logic provide conversation examples to Fin.

  • Click the Train Fin on examples button.

  • When to use: Provide examples of phrases or scenarios where this procedure is appropriate.

  • When NOT to use: Provide examples of similar but unrelated queries to prevent false triggers.

These examples are crucial for training the AI to distinguish between a "password reset" and "general login policy info" .

Add instructions to the procedure

You can tell Fin what to do when the procedure is triggered by writing instructions. On top of these instructions you can also add deterministic controls that give Fin more powers - such as conditions, or even tools to enable Fin to access external data, update attributes.

  • Steps define the flow. You add them by typing @ on a new line.

  • Tools give Fin powers (like checking APIs). You add them by typing @ inside an Instruction step.

Feature

What it does

When to use it

Instruction

The default block. Plain natural language instructions.

For almost everything. "Ask the customer for their email."

Condition

Adds branching logic (IF / ELSE).

Use for major, mutually exclusive paths that significantly change the flow. For small variations or minor clarifications, use natural language Instructions instead of branching. This keeps your procedures simpler and allows Fin’s AI to handle the conversation more naturally.

Run sub-procedure

Run a sub-procedure.

To reuse a common flow (e.g., "Verify Identity") without rewriting it, or a complex flow you would like to hide from the main flow.

Handoff to workflow

Ends the Procedure and passes the user to a Workflow.

Use this to hand off to a reusable Workflow you’ve already built, such as a complex handover flow, a satisfaction survey, or a specialized routing path.

End

Ends the Procedure immediately and passes back to Fin. Each End step has a configurable end message you can write a custom message, leave it empty to send nothing, or keep the default.

Use this to stop a Procedure once a specific goal or logic condition has been met, ensuring Fin doesn't continue following the procedure steps.

Call data connector

Fetches live data from connected apps (Shopify, Stripe, etc.).

Inside a step when you need to check an order status or balance.

Read an attribute

Looks up existing customer data.

Inside a step to check a user's plan or ID.

Update an attribute

Saves information the customer gave you into an attribute

Inside a step to remember an answer for later.

Handoff to team

Intentionally hands the conversation over to a team or teammate.

Inside a step when the bot can't solve the issue.

Important:

  • No nesting: You cannot nest Condition steps inside other Conditions.

  • Single logic type: You cannot mix code and natural language conditions within a single step.

  • Unsupported attributes: Attributes like dates or decimals cannot currently be referenced in conditions.

Sub-procedures

  • Reuse: You can reuse a sub-procedure multiple times within the same parent procedure.

  • Scope: Sub-procedures are currently local and cannot be called by other unrelated procedures.

Transitions to Workflows

  • One-way handoff: When Fin passes a customer to a Workflow, the procedure ends.

  • No resumption: The procedure will not resume even after the Workflow is completed.


Working with Data Connectors

Attribute scope

Data Connector outputs are available as step outputs within the Procedure but will not appear as conversation attributes in the Inbox. To persist a connector's returned value to a conversation attribute, use a Handoff to workflow step and set the attribute inside the Workflow — the Procedure will not resume after the handoff.

Always handle connector failures

Add a Condition step after every Data Connector call to handle errors and empty responses. Without a fallback, Fin may escalate unexpectedly if a connector fails silently. See Troubleshooting Fin Procedures and Data connectors for common failure patterns and how to use status_code for advanced error handling.

Note: Starting March 12, 2026, configured handoffs (using @handoff) are billed as successful Procedure handoff outcomes. Learn more about Fin Outcomes and billing. You will not be charged for Fin's default escalation behavior (customer asks for a human, frustration detected, repetitive loop), workspace-level Escalation Rules or Guidance, or a Procedure that fails to complete.


@Look up content

The @Look up content tool directs Fin to search your Help Center or external knowledge base for specific information during a procedure conversation. Use this to tell Fin to reference up-to-date support content during a given procedure conversation, rather than using static text.

Supported content types

  • Public articles

  • Private articles (enabled for AI Agent)

  • Uploaded documents

  • Imported or synced content sources

  • Web-synced documents

  • Content snippets

Important requirements:

  • Check that the content source is still synced and active.

  • Ensure the article is AI agent enabled: To make a public article available, navigate to Knowledge, open the article, and use the Details panel to toggle the following:

    • Fin AI Agent: This setting allows the AI to use the article when responding to customers. It will automatically respect any established audience rules.

Example use cases

Ecommerce

In a returns or refund procedure, you can direct Fin to look up your latest returns policy instead of hard-coding it into the flow.

Eligibility

Use an internal eligibility article to help Fin determine whether a user qualifies for a discount, refund, or specific program.


Handoff and escalation

When a Procedure ends in a handoff, it's important to understand what triggered it.

How handoffs are triggered

There are two ways a Procedure can hand off to a human:

  • Configured handoff — You've added a Handoff to team step at a specific point in your Procedure, or written Procedure-specific guidance that instructs Fin to hand off in a particular scenario. This is an intentional outcome you designed.

  • Default escalation behavior — Fin escalates automatically based on its built-in logic: when a customer clearly asks to speak to a human, when Fin detects strong frustration or anger, or when the customer is stuck in a repetitive loop. This always fires regardless of how your Procedure is configured.

Applying workspace guidance inside a Procedure

Give Fin specific guidance on how to interact with customers while running a procedure. To enable guidance, open a Fin Procedure and click Settings > Guidance in the top corner of the Instructions editor.

Workspace level guidance does not automatically apply inside a Procedure. You must explicitly enable it in the Procedure's Guidance panel:

  • Communication style

  • Context and clarification

  • Handover and escalation

  • Other guidances

Custom guidance

You can also write custom procedure-specific guidance that apply only to this procedure. Fin will combine this with any workspace level guidance you selected. For example: "Never bring up a refund unless a customer mentions it first."


Configure end messages

By default, Fin sends "Anything else I can help you with?" when a procedure ends. You can customize this message per End step, set a global default, or leave it empty to send nothing at all.

Each End step has a configurable message. Click the End pill to open a side panel where you can write a custom message using rich text and @attribute mentions.

To set a default message for when the procedure completes naturally (without hitting an End step), open the procedure Settings dialog and go to the End message tab.

Note: End messages support automatic localization — they're translated into the workspace's permitted languages, respect glossary settings, and are served in the customer's conversation locale.


Select your Channels

To run a procedure on specific channels, such as Web, iOS, Android, Facebook, WhatsApp, Instagram, SMS, Email, or Slack use the Audience targeting settings within the procedure editor. Ensure the desired channel is selected in the Channels dropdown menu.

To run a procedure for specific audience use the Audience targeting settings within the procedure editor. Ensure the desired channel is selected in the Audiences dropdown menu.


AI procedure review

Before setting a procedure live, use the AI reviewer to catch configuration issues that could cause problems in real customer conversations. Click Review in the procedure editor to run the analysis.

The reviewer flags issues with concrete, actionable suggestions, including:

  • Missing tools: flags steps that reference a tool (e.g., @Handoff to team) that hasn't been added to the procedure

  • Broken step references: catches references to steps that don't exist or are unreachable

  • Logic and condition issues: identifies conditions that read an attribute before it's been set, or natural language conditions that would be unreliable (and suggests a code condition instead)

  • Unhandled else branches: flags cases where a fall-through else branch hasn't been considered and could lead to unexpected behavior

Tip: Run the AI reviewer before simulations to fix configuration problems early. The reviewer catches build-time issues; simulations validate the live conversation flow.


Test and verify the procedure

Before you set your procedure live, you must verify that it works as intended. Click the Test button at the top of the editor to access two testing methods:

Preview

The Preview tab allows you to interact with Fin as a customer would. Use this to get a feel for the tone, greeting, and general flow of the conversation.

Simulations

The Simulations tab allows you to automatically test different logic paths within your instructions. This gives you confidence that Fin will behave as intended before you launch the procedure to real customers.

Preview vs. Simulations — which should I use? Preview shows the full customer-facing experience — using it while your procedure is live can expose messages to real customers. Simulations run the procedure in the background with no customer-facing output, making them the safest way to validate logic before going live.

Choose a simulation type:

  • Happy path: Fin's AI automatically suggests a standard scenario to help you get started quickly and see how the feature works.

  • You can also create Custom Simulations: Create specific scenarios to test edge cases or technical integrations by defining:

    • The context: Set the opening customer message and how the conversation should proceed.

    • Mock data: Define custom inputs and mock Data Connector responses to simulate how Fin handles live data (e.g., a "Payment Failed" response from Stripe).

    • Success criteria: Specify the exact outcomes you expect, such as which tools should be triggered or what information Fin must provide.

Run and review:

Run the simulation to watch Fin execute your steps, trigger the mock APIs, and follow your logic.

  • Pass: The simulation met all defined criteria.

  • Fail: The simulation failed. Click into the simulation to see exactly where Fin deviated from the instructions.

Once you are satisfied with the results, click Set live to make the procedure available to your customers.

Learn more: Manage procedure versions and publishing, covers the publishing lifecycle, procedure states, version history, rollback, version notes, and pausing.


Switch between procedures intelligently

Agentic Switch is available for procedures. When enabled, Fin can automatically switch from the current procedure to another live procedure if it determines that the customer's intent has changed and a different procedure better suits the customer's situation.

  • Automatically adapt to changing customer needs:

    Fin reviews the conversation and Procedure Trigger Descriptions to determine when switching procedures would better serve the customer.

  • Ask clarifying questions when needed:

    If multiple procedures could suit the customer's situation, Fin may ask clarifying questions to disambiguate and select the best option.

  • Help Center takes priority:

    Fin will continue to prioritize Help Center content over Agentic Switch when addressing customer questions.

Note: When enabled on a procedure, Fin can switch out of this procedure into any other live procedure. The destination procedure does not need Agentic Switch enabled. You can still use the @Switch command to manually switch procedures.


💡Tip

Need more help? Get support from our Community Forum
Find answers and get help from Intercom Support and Community Experts


Did this answer your question?