Skip to main content

Agents

Examples

Worked agents for the common jobs, and why each is shaped that way.

What a worked example gives you

Each example below is a complete agent shape: identity, guardrails, welcome line, tasks, and post-call fields. The point is not the wording. The point is why the pieces fit together for that job, and what breaks if you change one without changing the others.

Most of these exist as templates. Sidebar → Create New FinnBrowse TemplatesUse this template. Cloning is done in the dashboard, not through the API. After cloning, edit identity, knowledge base, and post-call fields before you test.

Inbound receptionist

The job is answering every call, booking into a calendar, and escalating the calls that need a human.

PieceValue
VoiceMaya (warm, mid-pitch, conversational pacing)
IdentityReceptionist at a named business, books and reschedules, answers hours and insurance questions, transfers urgent calls
GuardrailsShort sentences, mirror caller pace, no medical or legal or financial advice, no price quotes, transfer on emergency
WelcomeDefined, not dynamic: Hi, this is Maya at [Business Name]. How can I help you today?
TasksBook Calendar, Transfer Call
Post-call fieldsintent, appointment_booked, appointment_type, transferred, caller_sentiment, follow_up_needed, follow_up_reason

Why it is shaped this way: an inbound caller has already decided to call, so the agent spends no turns on permission or framing. The guardrails are all subtraction. Everything the practice does not want said out loud (prices, advice) is named explicitly, because a model that has a services document in its knowledge base will otherwise answer a pricing question from it.

The transfer conditions matter more than the transfer target. Set them to: caller asks for a human, caller mentions an emergency, or the agent has failed across two to three exchanges. Without that third condition the agent loops on questions it cannot answer and the caller hangs up angry.

What goes wrong: the knowledge base is too big. A 50-page office manual retrieves worse than a one-page services list. Keep each file focused. See /docs/agents-knowledge-base and /docs/tools-transfer.

Outbound sales qualifier

The job is confirming a form-fill lead is a fit, gathering qualifying details, and booking a meeting with a human rep.

PieceValue
VoiceJordan (energetic, professional, clear)
IdentityCalling on behalf of a company, about a form the person filled out, to confirm fit and book
GuardrailsUnder 3 minutes, no overselling, no high-pressure tactics, never quote pricing
WelcomeNames the company and the reason for the call in the first sentence
TasksBook calendar slot for a human rep, CRM update
Post-call fieldsqualified, budget_range, timeline, decision_maker, meeting_booked

Why it is shaped this way: the callee did not choose this moment. The welcome line therefore has to establish who is calling and why they are owed the call, before asking anything. The "no pricing" guardrail exists because a wrong number quoted by an agent is a number your rep now has to walk back.

The post-call fields are the actual product here. A qualifier that books meetings but does not write budget_range and timeline back leaves the rep starting from zero. Field design is covered in /docs/post-call-analysis.

Appointment reminder

The job is confirming or rescheduling, and nothing else.

PieceValue
VoiceRiley (calm, polite, slightly slower pace)
IdentityCalling from a clinic about a specific appointment with a named provider at a named time
GuardrailsUnder 90 seconds unless rescheduling, nothing clinical, no detail beyond date and time, route anything else to the office
TasksCalendar reschedule, confirmation SMS
Post-call fieldsconfirmed, rescheduled, new_appointment_time

Why it is shaped this way: this is the narrowest agent on the list, deliberately. Every detail it holds (patient name, provider, date, time) arrives as a variable, not as prompt text, so one agent serves every appointment. See /docs/agents-variables.

The scope guardrail carries the compliance weight. A reminder agent that will happily discuss symptoms or billing has become a support agent that nobody tested.

Payment reminder

PieceValue
VoiceSage (warm but neutral, non-judgmental)
GuardrailsNever threatening, never imply legal action, transfer immediately on dispute without arguing, always offer a pay-later path
TasksPayment link, payment plan, transfer to billing
Post-call fieldsoutcome (paid / plan / dispute / refused / no-answer), amount_paid, disputed

Why it is shaped this way: the failure mode is legal, not conversational. "Transfer on dispute, do not argue" is the single most important line in the prompt. An agent that debates a disputed charge is generating a transcript someone will read back to you.

Reading these as a recipe

Every example above decomposes the same way: identity, style, guardrails, welcome message, knowledge, tasks, post-call fields. Start from the closest example, replace the bracketed values, then run 6 to 10 test calls before deploying. Receptionist-style agents typically need that many rounds. Test both the happy path and the hostile caller.

See /docs/agents-prompting for the identity and style fields, /docs/agents-guardrails for what belongs in guardrails rather than identity, and /docs/agents-testing for the test loop.