activate_campaign
ChatGPTActivate (turn on) a campaign so it starts emailing its enrolled contacts on its schedule. This contacts real people, so show the user get_campaign_review first, send them test emails with send_campaign_test, and launch only once they confirm. The campaign needs a sequence with an email step and at least one assigned sender profile.
bulk_import_contacts
ChatGPTQueue up to 50,000 contacts for import into a campaign. Each contact needs email or linkedin_url; supported columns are defined in the schema and any other data goes in custom. The import runs in the background and returns an upload_id and contact_count. validate_emails: true also runs email verification (consumes credits; default off).
complete_campaign
ChatGPTMark a campaign setup complete (is_draft: false). Validates the campaign has at least one email step and at least one assigned sender profile — same outcome as clicking Finish in the UI wizard. Does not activate the campaign; use activate_campaign separately.
create_sender_profile
ChatGPTCreate a sender profile in a team: a named group of inboxes (and optionally a LinkedIn account) that campaigns send from. After creating it, put inboxes in it with update_sender (sender_profile_id), then attach it to a campaign with assign_campaign_sender_profile.
deactivate_campaign
ChatGPTDeactivate (pause) a campaign so it stops sending. Contacts keep their place in the sequence; resume with activate_campaign.
get_campaign_review
ChatGPTReview a campaign with the user before it sends: the steps in order (email subjects, waits, LinkedIn actions), who sends (sender profiles, inboxes and warmup, LinkedIn accounts), contacts waiting, schedule and daily volume, and the launch checks. can_launch says whether activate_campaign will work; checks that are not ok say what to fix (blocking ones stop the launch). Call this before activate_campaign and again after fixing anything. In Claude web and desktop it shows as a review card the user can launch or pause from themselves. If campaign.is_draft is true, call complete_campaign before activate_campaign.
get_campaign_stats
ChatGPTA campaign's results, with the same numbers as the dashboard: emails sent, opens, clicks, replies (contacts who replied over contacts emailed), bounces and unsubscribes with rates; lead outcomes (interested, meeting requested, meeting booked, not interested); LinkedIn likes, profile visits, connection requests, accepted connections, messages and replies; and results for each sequence step (emails sent, or LinkedIn actions done and accepted, with replies per step) and A/B variant, with the leading variant once each variant has 50+ sends. Email totals are left out when the campaign has no email steps. Optional start/end dates (YYYY-MM-DD) limit opens, clicks and replies to that window.
get_conversation
ChatGPTGet one inbox conversation by ID: channel, title, participants, read/archive state, recent messages, labels, the contact and their campaign, and the AI category and sentiment.
get_inbox_checkout_link
ChatGPTPlan new sending domains and inboxes, and get a checkout link for the user to review and pay. Nothing is charged by this tool. It checks each domain can be bought (fails with the reason if not, so pick other names) and returns the link plus estimated cost (about $13/year per domain, $5/month per inbox). SuperSend connects bought inboxes for every provider (google, outlook or smtp) and starts their warmup itself, so the user does nothing after paying. Use 2-3 inboxes per domain and domains that look like the user's brand (e.g. tryacme.com, getacme.com), never the main company domain. New inboxes appear within 24-48 hours; check with get_setup_status.
get_setup_status
ChatGPTStart here with a new or unfamiliar account. Shows what is set up and what is still missing before campaigns can send: billing (7-day trial or plan), inboxes and warmup, sender profiles, LinkedIn accounts, and campaigns. next_steps lists each missing step in order and who does it: the agent (with the tool to call) or the user, with a link to open for steps that need a browser (adding a card, connecting inboxes the user already owns). Give those links to the user exactly as returned. Call again after each step to see what is left.
list_campaigns
ChatGPTList campaigns in a team with status (1 = active, 2 = inactive), draft state, sequence version, category, and contact progress metrics. Returns a compact field set (sequence and schedule settings are omitted; use get_campaign or pass fields). Filter with status "active" or "inactive"; paginated, default 50, max 100.
list_conversations
ChatGPTList inbox conversations (email or LinkedIn) with the other party, last activity time, read/archive state, a preview of the latest message (trimmed to 300 characters), and triage context: the contact and their campaign, labels, and the AI category (interested, meeting_request, not_interested, out_of_office…) and sentiment. Use last_message_direction "inbound" to find replies awaiting a response; the preview can still be our own later message, so use get_conversation_messages to read the thread. Default 25 per page, max 100; while pagination.has_more is true, call again with offset = offset + limit.
list_sender_profiles
ChatGPTList sender profiles (warmup tags) for a team. Each profile groups one or more email senders. Use before assign_campaign_sender_profile — pass profile IDs to attach senders to a campaign.
preview_campaign
ChatGPTShow the user a campaign draft before creating it: each email with the day it goes out, the schedule, which inboxes send, and anything to fix (shown as a card with a Create campaign button). Nothing is created. Call it with the same team, name, emails, sender profiles and schedule you would pass to setup_outbound_campaign, after writing the copy with the user. Then wait: the user creates it from the card or tells you to, and you call setup_outbound_campaign with create.arguments only if they ask in the conversation.
send_campaign_test
ChatGPTSend test emails of a campaign's email steps to the user's own inbox before launch, from one of the campaign's inboxes, with {{variables}} filled from a real contact of the campaign (or contact_id). Nothing is sent to contacts. Steps are numbered as in get_campaign_review; omit step to send every email step. Reply steps use their thread's subject. Subjects get a short "test" suffix. Pass to only to send to another address the user names (for example a teammate). Ask the user to check their inbox before launching.
send_conversation_message
ChatGPTSend a reply in an existing inbox conversation; it is delivered to the contact immediately by email or LinkedIn and cannot be unsent. Confirm the recipient and message text with the user before calling. For email, sender_id defaults to the inbox the conversation belongs to and subject to "Re: <conversation title>".
setup_outbound_campaign
ChatGPTCreate a ready-to-use outbound email campaign in one flow: creates the campaign with its emails, assigns sender profiles, optionally imports contacts, marks it complete (not a draft), and optionally activates it. Pass emails, the emails in order: the user sees exactly those when approving the call. Use nodes and edges only for a branching (complex) sequence the user asked for. Ask for team, name, the email copy and sender profiles if not provided. When activate is true the campaign starts emailing enrolled contacts, so confirm that with the user first. Prefer this over create_campaign plus separate steps.
update_conversation
ChatGPTMark an inbox conversation read or unread, or archive it (archived conversations leave the main inbox) or move it back. Use after handling a reply.
update_sender
ChatGPTUpdate a sender (inbox). Pass only fields to change: warm (start or stop warmup), sender_profile_id (which sender profile it sends in), disabled, max_per_day, signature, forward_to, forward_rules, forward_unsubscribes, etc. When forward_rules is null or omitted, forward_to applies; non-empty forward_rules overrides per-rule.