Overview
Agents are AI-powered callers that conduct conversations on your behalf. Each agent has a voice, a language and a duration, and there are two ways to design what it actually says:- Pick a
focusand supplyquestions— a hiring template, described below. This is the original model, which is why an agent is sometimes still called an interview template. - Send a
flowand design the conversation yourself — a custom agent. Not hiring-specific, and what to reach for outside recruiting.
Resource Structure
Creating Agents
Best Practice: For production integrations, always implement request timeouts.
Voice Options
Duration: The
duration field is specified in minutes. The maximum
allowed duration is 180 minutes (3 hours).Background Sound
backgroundSound controls the ambient noise played to the contact during calls. It can be set on create or updated at any time via PATCH /agents/{id}.
Speaking for Another Company
An agent introduces itself as the company your API key belongs to. If you call on behalf of your own customers, setoverrides on the agent and it speaks as that customer instead:
overrides are unchanged. It works on template and custom agents alike.
Only what the agent says changes: ownership, billing, analytics and phone-number routing all keep your real company.
Agent Focus Options
focus picks one of four hiring templates, each with its own style of call:
- SCREENING
- OUTREACH
- GENERIC
- LANGUAGE_TEST
A first hiring screen - Basic qualifications - Availability - Salary
expectations
Custom Agents
The four focus options above are hiring templates: you supply questions, InstaView supplies the rest of the call. A custom agent is the other way round — you design the whole conversation yourself by sending aflow instead of a focus, and the agent runs what you designed.
This is what makes an agent usable outside hiring: sales discovery, support callbacks, renewal check-ins, operations checks. Nothing about a custom agent is recruiting-specific.
An agent is custom the moment it carries a flow. You never send focus: "CUSTOM" — it is derived, and sending both is rejected.
The four pieces
The last three are accepted only alongside a
flow; sending them for a template agent is a 422.
You do not describe your company in
contextConfig. The description on your company
profile is given to every custom agent automatically and resolved at the moment of each
call, so editing the profile reaches the next call without touching a single agent.The first message always discloses the AI
Article 50 of the EU AI Act requires a person to be told they are interacting with an AI system, unless that is already obvious to them, and the duty falls on us as the provider rather than on you. We apply the disclosure unconditionally, without judging whether any given call would qualify as obvious, because that judgement is not one a platform can make per call and the person on the other end is entitled to know either way. So if yourflow.firstMessage does not already say so, one short sentence is appended to
it at call time, in the agent’s own language. Every language language accepts has its
own sentence, so the notice is always in the language the call is held in:
virtuálny / virtuální,
umelá inteligencia / umělá inteligence, automatizovaný, hlasový asistent, a
standalone AI, artificial intelligence, virtual assistant, automated,
künstliche Intelligenz, sztuczna inteligencja, kecerdasan buatan, 人工知能, and
similar. A bare “assistant” or “asistent” does not count, because a company assistant
who is a human being is an ordinary thing to be. Nor does AI sitting inside a company
name: an opening that says “calling from AI Talent Partners” and nothing else has not
disclosed, and will still get the sentence.
Your stored firstMessage is never rewritten: the sentence is added on the way to the call,
and reading the agent back returns exactly what you sent. To control the wording yourself,
write your own disclosure into firstMessage and ours will not be added.
Getting structured data back
WithoutanalyticsConfig, a custom agent places a call and returns a transcript. With it, you get data your own systems can act on — the difference between “here is what was said” and “budget confirmed: true, meeting booked: yes”.
extractionTargets— values pulled out of every call. One with anidealalso counts toward the match score.scoringCriteria— holistic judgements over the whole call.outcomes— did the call achieve what it was for? Decided met / not met.outputTags— labels the AI may apply.capture— which qualitative artefacts to produce (summary, Q&A, evaluation, sentiment, recording, transcript). All default totrue.
key, and it is yours: it is the field name the results come back under, so your code switches on it. Omit it and InstaView derives a slug of the label — convenient, but renaming the label later silently moves the results to a new key. Set it when your integration reads results by name.
Results arrive as analytics on the conversation and on the analysis.completed webhook. See Conversations.
Scoring a flow question is set inline on the question, not in
analyticsConfig — add
importance and weight to the question itself. Questions are addressed by ids InstaView
mints, which you cannot know while writing the flow. A question with an idealAnswer but
no importance or weight is asked but not scored, and idealAnswer itself is optional —
omit it for a question that has no right answer.Personalising each call
Any text in a flow may contain{{contact.<key>}} placeholders. They are resolved per call, not when the agent is created, so one agent serves everyone you call. first_name, last_name, email, phone, company_name, company_description and agent_name are always available; add your own by sending them as the contact’s fields.
Custom agent reference
Full flow schema, validation errors, key rules and analytics configuration
Knowledge Base
Any agent — template or custom — can be given documents to consult mid-call: a job spec, a benefits summary, a pricing sheet, an FAQ. The agent looks them up on its own when the conversation calls for it; you do not have to reference them anywhere in the flow. Attaching one is a three-step flow, because the file goes straight to storage rather than through this API:Uploads are rate limited more tightly than the rest of the API. Reserve slots as you need
them rather than in a burst — see the endpoint reference for the current numbers.
Knowledge base reference
The full upload flow, limits, verification rules and error cases
Best Practices
Clear Questions
Write specific, open-ended questions
Appropriate Duration
15-30 minutes for most calls
Test First
Test agents before using in production
Iterate
Refine based on how the calls go
Next Steps
Conversations
See how a conversation uses an agent
API Reference
View complete Agents API reference