Documentation Index
Fetch the complete documentation index at: https://docs.tuco.ai/llms.txt
Use this file to discover all available pages before exploring further.
Campaign Lifecycle
- Select leads — pick a list, import from HubSpot, or use API-only mode (leads added via API/webhooks)
- Compose steps — each step is a message with optional wait, stop conditions, and branching
- Assign lines — select sending lines, Tuco spreads across them within limits
- Launch — Tuco sends step 1, then advances through the sequence
What happens when a lead replies
By default, when a lead replies:- The campaign pauses for that lead
- Your Knowledge Base takes over and handles the conversation (copilot or autopilot mode)
- The campaign does NOT continue to the next step
Message Variables
Use variables in your messages to personalize:| Variable | Example | Description |
|---|---|---|
{firstName} | Sarah | Lead’s first name |
{lastName} | Lane | Lead’s last name |
{companyName} | Acme Corp | Lead’s company |
{email} | sarah@acme.com | Lead’s email |
{phone} | +1234567890 | Lead’s phone |
{line_name} | John Smith | Sending line’s display name |
Fallback syntax
If a variable is empty, provide a fallback after the pipe:firstName is empty, the message becomes: “Hey there, this is John Smith”
API tool variables
Use workspace API tools as variables:api_check_status tool is called before sending. If the API fails, “active” is used as fallback.
Stop Conditions
Stop conditions prevent a step from sending if a condition is met:| Condition | Description |
|---|---|
| Lead replied | Lead sent any reply |
| Lead replied (keyword) | Lead replied with a specific keyword |
| Tag exists/not exists | Lead has or doesn’t have a tag |
| HubSpot property | Check a HubSpot contact property |
| GHL tag | Check a GoHighLevel contact tag |
| Custom API | Call a workspace API tool and check the result |
| Lead was contacted before | Tuco has previously sent to this lead |
| Lead was contacted before (any campaign) | Tuco has sent to this lead in any past campaign |
| Unsubscribed/DNC | Lead is on the Do Not Contact list |
Stop conditions only apply from step 2 onward. Step 1 always sends (it’s the entry point).
Condition Operators
When comparing property values in stop conditions and branches, the following operators are available:| Operator | Label | Use case |
|---|---|---|
eq | equals | Exact match |
neq | not equals | Exclude a value |
contains | contains | Partial text match |
not_contains | does not contain | Exclude partial match |
starts_with | starts with | Prefix match |
gt | greater than | Numeric comparison |
gte | greater than or equal | Numeric comparison |
lt | less than | Numeric comparison |
lte | less than or equal | Numeric comparison |
gt_date | after date | Date comparison |
lt_date | before date | Date comparison |
exists | exists | Field has a value |
not_exists | is missing | Field is empty |
Reply Behavior
Control what happens when a lead replies to your campaign:Pause & AI Responder (default)
Campaign pauses for this lead. The AI Responder handles the conversation.Continue + AI Responder in parallel
Campaign continues to the next step on schedule. AI Responder handles the reply independently. Use for multi-touch drips where follow-ups must go out regardless. Toggle this in the campaign builder on step 1 under “Reply Behavior.”Branching
Branch steps split leads into different paths based on conditions:- Lead replied — did the lead respond?
- No reply for X hours/days — silence after a set time
- Tag added — was a specific tag added?
- HubSpot property — check a CRM property value
- GHL has tag — check a GoHighLevel tag
- Custom API — call an API and branch on the result
- Lead was contacted before — has Tuco sent to this lead before?
- Default — fallback path if no other condition matches
SMS Fallback
Each step can have an SMS fallback. If iMessage is unavailable for a lead, the SMS version is sent via Twilio instead. Configure the fallback message per step or use the same text as the iMessage.AI-Powered Steps
Steps can be AI-driven instead of using a fixed template:- Set a prompt describing what the AI should say
- The AI generates a personalized message for each lead using their data
- If AI generation fails, the manual fallback message is sent instead
- AI usage is tracked and logged for billing
Testing Campaigns
Use the Test Conversation panel to simulate the full campaign flow for a real lead:- Select a lead — uses their real data (name, phone, tags, CRM properties)
- See each step — AI-generated messages use real AI calls (billed to your usage)
- Reply as the lead — type what the lead would say to test reply handling
- See stop conditions — green/red pills show which conditions passed or triggered
- See branches — click “Evaluate live” to check real HubSpot properties, GHL tags, and custom API calls
- Fast-forward waits — skip “3 days later” to see what happens next
- Path simulation — visual timeline showing every step, wait, branch, and the delivery method (iMessage vs SMS fallback)
- CRM links — open the lead in HubSpot or GHL to change data mid-test, then restart from the header
AI-generated test messages count toward your AI usage. Use sparingly on expensive models.