Outbound Sales Flow
End-to-end pattern: domain → signals → decision-maker → email → outreach.
The canonical agent flow for outbound prospecting using GTM Tools. This is the version you’d put in an agent’s system prompt or skill definition.
The flow
Decision rules for the agent
When to skip the account
If detect_signal returns no fired signals, abort. The account isn’t actively in market. Note it for re-checking next month.
How to pick the title filter
Match the highest-confidence fired signal to a decision-maker title:
When to skip the email step
If the candidate’s profile already exposes an email on LinkedIn, or your CRM already has it cached, skip get_email and save 5 tokens.
If status: "not_found" comes back with reason: "catch_all", there is no verified address to send to. Do not auto-send a guessed one: hand off to a human reviewer, or switch to a soft-touch channel (LinkedIn invite) where being wrong is cheap.
When to write back
After contact, log:
- The signal evidence (URLs, snippets), which gives downstream reps something to reference.
- The verified email + catch-all flag.
- The LinkedIn profile URL.
- The token spend (
get_token_balancedelta).
Personalization handles
Each tool surfaces a piece of personalization material. The richer the message, the higher the response rate.
Anti-patterns
- Skipping the signal step. Going straight to
list_linkedin_company_employees(30 tokens) on unqualified accounts is the single most common waste. - Hydrating before filtering. Don’t
get_linkedin_profile(2 tokens) every employee;list_linkedin_company_employeesalready returns name/title/headline. - Re-checking the same domain daily. Signal data rarely shifts day-to-day. Weekly is enough; daily wastes tokens.
- Auto-sending guessed addresses. False positives hurt sender reputation. Gate on
status == "ok", and treat anynot_foundreason as “no address”.
Token budget per qualified prospect
Budget ~$0.67 per fully-researched and contacted prospect.