Skip to main content

How to write instructions in Fin Procedures

Learn how to write instructions in Fin Procedures using natural language.

Updated yesterday

When adding a new step to a Fin Procedure, the instruction step is the default step. The Instruction step is the most powerful, it allows you to define a coherent unit of work for Fin to execute in natural language.

Note: Fin Procedures is currently in managed availability. Access is limited during this period and available only to select customers with a contract. Please contact your account manager to confirm eligibility and learn how to join.


Instruction step capabilities

While executing instruction steps, by default Fin has access to the below tools:

To use these tools within an instruction step, simply type @ to open the search menu.

Category

Tool

Description

Logic & flow controls

@Condition

Adds branching logic (IF / ELSE).

@Run sub-procedure

Allows you to reuse a common flow without rewriting it, or a complex flow you would like to hide from the main flow.

@Create sub-procedure

Build a new nested flow directly from your current editor.

Data operations

@Read attribute

Instruct Fin to pull specific Intercom data into the procedure context. This includes People details (like name), Company info, Conversation status (like attachments), or Temporary custom attributes. Example @read name and greet the user by their name.

@Update attribute

You can instruct Fin to @update any intercom attribute.

@Create attribute

Create a new attribute on the fly if the one you need doesn't exist yet.

Knowledge & context

@Look up content

Directs Fin to search your Help Center or external knowledge base for specific information.

@Use data connector (Call an API endpoint)

When you @use a data connector Fin will hit that API endpoint. Optimise to use no more than one data connector per step.

@Create data connector

Build a new nested flow directly from your current editor.

Routing & ending

@End

Ends the Procedure immediately and passes back to Fin.

@Handoff to team

Hands the conversation over to a team or teammate. This follows the escalation path defined in the workflow following the Fin block that is defined in the Deploy section.

@Switch procedure

Ends the current procedure and immediately starts a different one. This is a one-way transition. Fin will leave the current Procedure and enter the new one immediately, but it will not return to the original Procedure once the new one is finished.

Conversation actions

@Add note

Add a pre-defined message that will appear as a note for teammates in the inbox.

@Tag

This lets Fin dynamically apply a tag to a conversation.

Note:

  • Generally, if you can’t “@” the capability, then it’s not supported. For example, Fin cannot send emails, make phone calls, or remove tags.

  • Avoid natural language commands such as “go to another procedure”, “add a note”, or “verify customer OTP”. Use supported tools instead.


Best practices

There are two high-level design principles when writing instructions

One instruction step should represent a meaningful unit of work

Fewer well designed steps that coherently combine related actions are better than many separate small steps. At the same time steps should not be too large: as a rule of thumb limit the number of data connector calls on a step to one and reduce the number of update attributes, or tags to what is absolutely necessary so Fin can execute faster.

❌ Less effective example:

Step 1 - @read Email. 

Step 2 - Ask for email if it's not there.

Step 3 - @use get_subscription_details

Step 4 - Send a reply listing every API field.

✅ More effective, better structured example:

@read email. If it is not known, ask the user for their email before continuing. Then @use get_subscription_details and reply asking the user what they need help with. Include the user's current plan, plan status, and next renewal date in your reply.  

Keep things simple and clear

Always optimize to keep things simple and clear so Fin can follow your instructions without getting confused. If a human with no context can’t understand your instructions, Fin won’t understand them either.

Use plain, concrete verbs. Write steps with everyday action verbs (ask, check, send, update, escalate). Avoid abstract or formal verbs (validate, ascertain, perform, facilitate).

❌ Less effective example - Not clear what an order number or tracking number is:

Collect the customers order number: Collect the customers order number and make sure it is valid and not a tracking number.

✅ Well‑structured step - Tell Fin what the order number looks like and what to do if the customer can not provide it:

Collect the customers order number:

If they provided a number but it is longer than 11 characters excluding the # at the start of the number, then let them know that it may be a tracking number and ask them for the order number again.

If the customer can not provide their order number do not continue @Escalate:Support team

Did this answer your question?