Skip to main content

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 with GET /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 with GET /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 its tfu_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

Use POST /api/tfu-live-agents?locationId=... with a stable request id:
Use 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 in capabilityConfig.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

Chat-test transcript entries identify the speaker with from: person for the caller and agent for the rep. This is separate from message delivery status.