Start from a website
Your MCP handshake identifies the connected environment, agency, scopes and catalogue version. Check that context before writing. Staff can resolve an approximate agency name withGET /api/agencies/search, then use its exact agencyTag to find the workspace. If several agencies match, ask which one the user means.
Use Research a business website with { "id": "business-site-001", "website": "https://example.com/" }. No workspace is needed yet. Read website research returns the extracted who, what and how, source evidence in information, and questions for missing details. Slow research runs behind the request ID; poll it while its status is reading instead of starting another scan. Failed requests can be retried with the same ID.
The scanner shares Tars Home’s website reader and offer extractor. A blocked or incomplete site remains incomplete. Ask the user for missing facts, the primary call direction and the desired business action. Append their answers to the returned information before generation. A website never authorizes a booking, transfer or live campaign by itself.
Verify the saved rep
Read the rep withGET /api/tfu-live-agents/{id} and its paired campaign with Check go-live readiness. The check returns campaign.id, campaign.isActive and live. Missing phone configuration can prevent live calls while the rep is ready for an agent web test. The generic Projects list hides TFU Live campaigns from machine credentials, so an empty campaign filter there is not evidence that the rep has no campaign.
Once creation completes, issue an agent test link and give the user links.web before discussing live setup. This browser test uses simulated business actions and does not activate the campaign. Do not hold it back because a phone number or calendar is still missing. Report a link error separately; do not rebuild an already-created rep.
Connect GoHighLevel after testing
Connect GoHighLevel to the same rep after the user chooses it. Give them the consent link, verify the result, then handle any move and remaining live setup separately.Give the rep a phone number
Buy or connect the rep’s number with TFU Live numbers.Set up the rep’s campaign
Set the rep’s start and stop tags, calling hours, its cadence of calls and texts and the number its texts come from with the same Update campaign every agent uses, with itstfu_live: id and locationId. See
Set up a TFU Live rep’s campaign.
Take the rep live, or pause it
Once the go-live check lists nothing, switch the rep’s campaign on, or off again, with Go live and pause, as the dashboard’s buttons do. Only when the user asks: an outbound rep with start tags begins calling matching contacts as soon as it is live.Create from information or a starter
UsePOST /api/tfu-live-agents?locationId=... with a stable request id:
inbound_receptionist for incoming calls. The service checks who the business
helps, the result it provides, and how it provides it. Include researched website
information as text; this endpoint does not fetch URLs.
Set agentType from the user’s explicit primary use case. If it is missing,
generation asks whether the rep will mainly answer incoming calls or call leads,
before building or charging. A business website does not establish this choice.
The rep can support both directions, but generation needs one primary use case.
Pass the user’s requested rep name in name, including a business suffix if they
want it spoken as part of the name. This field controls introductions, not just
the dashboard label. When they request more reps with the same settings, carry forward
their established name and voice; pass these preferences to any delegated tasks.
Only unspecified preferences use defaults: omit name for Tars, or omit
voiceId for River (cedar). To choose a
voice before creating the rep, use
List TFU Live voices.
It returns the same voice IDs and descriptions as the TFU Live picker. IDs from
the legacy voice library are not accepted.
The response is 202 with creation progress. Poll
GET /api/tfu-live-agents/creation/my-new-rep-001?locationId=.... If its status is
needs_information, answer only the returned questions in information and
repeat the POST with the same id and settings. Supply agentType when answering
the primary-use-case question. Earlier facts are retained.
Clarification is free. A successfully created AI-generated agent and its paused
campaign cost USD 0.50 from the agency wallet; unsuccessful builds are not
charged the build fee. Repeating a completed request returns its existing result.
For a free instructional starter, send {"id":"my-starter-001","mode":"template"}.
It uses no AI generation and contains guidance for Identity, Steps to follow and
FAQ. Its placeholders must be replaced before it can be prepared for real calls.
Once status is created, use the returned agentId with the normal read and edit
endpoints below. Read the latest ifVersion, keep the full authored configuration,
and replace the sections you want. Creation does not activate the campaign.
The same edit covers the Brain, workflows, Voice style, Chat style and call
handling settings. Use agents:write for creation and authoring;
campaigns:write separately authorizes campaign configuration and activation.
The campaign still checks the same ownership and go-live requirements as the UI.
SMS approval can be checked through
Check TFU Live SMS readiness;
an unknown approval remains unknown.
Set agent labels manages the
same labels as the builder. Delete agent
also stops and deletes its linked campaigns; it leaves phone numbers owned by
the agency. Deletion can safely be retried.
To copy or move a configured rep onto another sub-account, read its plan first with
Preview TFU Live agent clone or
Preview TFU Live agent move. Then send
its answers and fingerprint to Clone agent or
Move agent. Both check access to both
sub-accounts. A credential restricted to one location cannot reach another. A move keeps the
rep’s id. See Move or copy a TFU Live rep.
For an automated text rehearsal, start a chat test,
then send test messages
and read the thread.
Use stable message ids on retries. End the test
when finished. Phone and browser tests are also available through the existing
share-link operation. Test usage is billed under the existing test policy;
the fifty-cent fee applies only to successful AI agent generation.
Chat tests keep one continuous conversation. Tester messages use from: person;
delivered confirms a message reached that conversation. When a simulated callback
is due, record its outcome
as answered, declined, missed or cancelled to continue the test.
Create one Agent using Create agent through its dedicated authoring module. Its Brain and Voice are authored together. Every new agent has a linked paused campaign with a private cadence; caller numbers and trigger tags start empty. Read and edit
that returned TFU Live public id using Get agent and
Update agent.
An agent can also start from a Brain template, a ready-made agent:
List TFU Live Brain templates gives
each one’s workflows, starting prompt and the values it needs (toFill), and Create agent
with { id, brainTemplateId, values } creates it and automatically requests
preparation for testing. Incomplete settings remain test-only, and the campaign
stays paused. The
workflows contract describes them.
Operation support reports
supported, not_implemented and not_applicable separately. Scope, ownership
and readiness are additional checks. Ordinary outcome prompts and outcome
workflow graphs do not apply to TFU Live. Split/master implementation remains
unavailable.
Check go-live readiness
returns the same blockers and supported ways of starting calls as the builder UI.
It does not activate the campaign. Once it lists nothing,
Go live with TFU Live agent does.
Prepare agent prepares the exact reviewed
TFU revision; acceptance is not readiness or campaign activation.
List agent history lists the
agent’s saves, newest first, a page at a time. Each says who made it, what changed,
and whether it is restorable. actor is user for a person and assistant for
the agent editing itself in the builder conversation. system is a change the
platform made, such as a move, and split_sync is a copy from its split test.
Restore revision brings
one of those saves back as a new revision. The
Brain catalog discovers the
workflow model (nodes, templates, rules and limits), the sub-account’s CRM, voice
choices and backgrounds.
Set TFU Live agent orb colour
chooses the colours of the agent’s orb, which every agent read returns as orb.
It is cosmetic, so it takes no ifVersion and saves no revision.
The voice explains the four kinds.
An agent’s workflows can be read and written one at a time:
List,
Get,
Create,
Replace,
Delete and
Validate, with
Look up TFU Live resources
for the calendars, tags, custom fields, pipelines, reps and teams their settings
name. Every refusal carries a code, and a workflow refusal names its
workflowId, stepId and field.
Campaigns, Contacts, Calls, Analytics and Billing keep their shared modules.
Their existing tenant checks and TFU admission gaps are not bypassed by an
agent’s runtime support status.
Call handling
In Settings → On the call, configure silence check-ins, the wait before hanging up, and a maximum call duration. General voicemail and screening behavior lives incapabilityConfig.callHandling: each can use hang_up or say_message. A message
supports the normal contact and system variables. Voicemail hangs up after its
message; screening waits for a person after speaking.
A Power Dialer step can override either behavior through call.callHandling.
An omitted entry inherits the agent’s general setting. Existing after-call
actions still run after the call ends.
Save instructions and sync workflows separately
Saving your own prompt through Update TFU Live agent is free and does not invoke AI. Your existing workflows stay as authored. To update their triggers, collected inputs or eligibility rules from the saved prompt, explicitly call Sync TFU Live workflows with{ "ifVersion": "the version you read" }. This AI action uses wallet credit.
Poll Get TFU Live agent for workflowSync.status: pending, running, synced
or needs_attention. not_requested means the prompt was saved without requesting
sync. Repeating a pending or completed sync does not start another paid check.
A change that needs something the agent cannot do yet comes back out of the prompt.
In use, it goes in a new revision and workflowSync reads synced, with
pulledHash naming the version taken out and reason saying why. Still a draft,
the draft is removed and workflowSync reads needs_attention with an
unsupported_ reason. Any other needs_attention reason means the check did not
finish or was not sure, and the change stays saved and in use. A sync asked for
while the saved version is being prepared starts once preparation finishes.
Guides
- Build a TFU Live agent
- Workflows contract
- Set up a TFU Live rep’s campaign
- Move or copy a TFU Live rep
- The voice and the orb colour
- Builder guidance
- Authentication
from: person for the
caller and agent for the rep. This is separate from message delivery status.