Save an outreach campaign
Create or change an outreach campaign: its mailboxes, the emails you write, the audience, a first line per person and when it sends.
Free
This tool costs nothing to call.
An example
Write to the hotels we tagged about renting our guest bikes, two follow-ups, Tuesday to Thursday mornings.
Your agent callsoutreach_save_campaignFree
The example business is Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon. The reply is the one the tool really gives.
{
"name": "Guest bikes for Portland hotels",
"mailbox_ids": [
4105
],
"steps": [
{
"subject": "Guest bikes for {company}",
"text": "Hi {first_name},\n\n{first_line}\n\nWe rent city bikes to hotels in Portland and service them every week, so your front desk never deals with a flat tire. Guests ride to the waterfront in ten minutes.\n\nCould I bring two bikes by on Thursday so your staff can try them?\n\n{sender_name}\nHalverson Cycle & Repair"
},
{
"subject": "",
"delay_days": 3,
"text": "Hi {first_name}, the two trial bikes for {company} are still yours this month. Should I hold a pair for you?\n\n{sender_first_name}"
}
],
"audience": {
"tag": "hotel"
},
"first_lines": {
"maya@alderstreethotel.example": "Your new rooftop bar makes the Alder Street Hotel a stop for every visitor downtown.",
"owen@hawthornehotel.example": "Guests at the Hawthorne Hotel already ask your front desk where to rent bikes."
},
"schedule": {
"days": [
"tue",
"wed",
"thu"
],
"start_hour": 9,
"end_hour": 12,
"time_zone": "America/Los_Angeles"
}
}Use it when
When the person wants to write to a list of people, after the mailbox is connected.
- For one email to one person from a Conecto inbox, use
email_send. - For finding the people to write to, use
prospects_prepare.
What it does
Create an outreach campaign, or change one (pass campaign_id): its name, the mailboxes it sends from (they share the load, each within its own daily limit), the emails (a first email and up to four follow-ups, each with delay_days), the audience, a first line for each person, the sending days and hours in a time zone, and its own daily limit. The audience is one of: a prospect search's people with a working email (prospect_search_id), a CRM segment, or everyone with a tag; people who unsubscribed, bounced, said no, replied before or are in another campaign are left out, and the reply says who. You write every email; Conecto writes nothing. Placeholders: {first_name} (the person's first name), {name} (the person's full name), {company} (their company), {first_line} (the first line you wrote for them in first_lines), {sender_name} (the name of the mailbox that sends it), {sender_first_name} (that name's first word). Every step passes Conecto's writing check before a campaign can start, and a refusal names each fix: no em dashes; no stock openers ("I hope this email finds you well", "I'm reaching out") or closers ("Best regards", "Looking forward to hearing from you"); no "not X, but Y" contrasts or slogans; no hype or filler words ("seamless", "game-changer", "I'd love to"); at most 120 words an email and 60 characters a subject; one link and one ask at most; no "Re:" on a first email; no unsubscribe line of your own (Conecto adds one); and every placeholder filled for every person. The reply has the writing check's fixes; show the person outreach_preview, then start it with outreach_start. While it is a draft everything can change; once it started, only its name, mailboxes, schedule and daily limit, while it is paused.
What comes back
campaign (campaign_id, name, status, paused_reason, mailboxes, steps, audience, schedule, daily_limit, people, by, created_at, started_at); audience (people, left_out_counts and left_out: who won't be emailed and why); writing (passed, and fixes: each with step, part, rule, found, fix, and the people it is about). Every reply also carries cost_usd and balance_usd.
Inputs
| Name | Type | What it is |
|---|---|---|
campaign_id | string | The campaign_id outreach_save_campaign answered with. Exactly 36 characters. |
name | string | 1 to 160 characters. |
mailbox_ids | array of integers | Mailboxes from outreach_mailboxes, in the order they take turns. 1 to 50 items. |
steps | array of objects | 1 to 5 items. |
steps[].subject | string | One line. A follow-up without one goes as "Re:" the first email's subject, in the same thread. Up to 200 characters. |
steps[].textRequired | string | Plain text. Conecto adds the unsubscribe line at the end. 1 to 5,000 characters. |
steps[].delay_days | integer | A follow-up: days after the step before it, when nobody replied (3 if left out). 1 to 60. |
audience | object | One of tag, segment or prospect_search_id. |
audience.tag | string | 1 to 60 characters. |
audience.segment | string | A saved contact segment, by name or id. 1 to 80 characters. |
audience.prospect_search_id | string | Exactly 36 characters. |
first_lines | object | A first line you wrote for each person, by their email: {first_line} in an email. |
schedule | object | When emails go: Monday to Friday, 9 to 17, in the account's time zone unless given. |
schedule.days | array | 1 to 7 items. One of: mon,tue,wed,thu,fri,sat,sun. |
schedule.start_hour | integer | 0 to 23. |
schedule.end_hour | integer | 1 to 24. |
schedule.time_zone | string | 1 to 64 characters. |
daily_limit | integer | Emails a day for this campaign; its mailboxes' own limits still hold. 1 to 1,000. |
The call
Over MCP, call outreach_save_campaign on https://api.conecto.chat/mcp/outreach. Over REST:
curl -X POST https://api.conecto.chat/v1/tools/outreach_save_campaign \
-H "Authorization: Bearer $CONECTO_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Guest bikes for Portland hotels","mailbox_ids":[4105],"steps":[{"subject":"Guest bikes for {company}","text":"Hi {first_name},\n\n{first_line}\n\nWe rent city bikes to hotels in Portland and service them every week, so your front desk never deals with a flat tire. Guests ride to the waterfront in ten minutes.\n\nCould I bring two bikes by on Thursday so your staff can try them?\n\n{sender_name}\nHalverson Cycle & Repair"},{"subject":"","delay_days":3,"text":"Hi {first_name}, the two trial bikes for {company} are still yours this month. Should I hold a pair for you?\n\n{sender_first_name}"}],"audience":{"tag":"hotel"},"first_lines":{"maya@alderstreethotel.example":"Your new rooftop bar makes the Alder Street Hotel a stop for every visitor downtown.","owen@hawthornehotel.example":"Guests at the Hawthorne Hotel already ask your front desk where to rent bikes."},"schedule":{"days":["tue","wed","thu"],"start_hour":9,"end_hour":12,"time_zone":"America/Los_Angeles"}}'When it refuses
A refused call costs nothing and says what to do next.
| Code | When | What to do |
|---|---|---|
not_found404 | No campaign, segment or prospect search on this account has that id or name. | Use outreach_campaigns, crm_list_segments or prospects_list. |
campaign_running409 | The campaign is sending. | Pause it with outreach_pause first. |
not_draft409 | The campaign started, so its emails, audience and first lines are fixed. | Save a new campaign to change them. |
campaign_ended409 | The campaign was stopped or has finished. | Save a new campaign. |
More Outreach tools
All 13 tools- Connect a mailbox for outreach
outreach_connect_mailboxA one-hour link for the owner to connect their own mailbox for outreach, typing its password on a Conecto page.Free - List outreach mailboxes
outreach_mailboxesThe business's mailboxes connected for outreach, each with its state, daily limit, what it sent today and its bounce rate; never a password.Free* - Change an outreach mailbox
outreach_update_mailboxRename an outreach mailbox, change its daily limit, pause or resume its sending, or disconnect it.Free - Preview an outreach campaign
outreach_previewOne step of an outreach campaign as it will go, for real people: to, from, the subject and the text with the unsubscribe line.Free* - Start an outreach campaign
outreach_startStart an outreach campaign the person approved; $0.01 per person when their first email leaves.Free - List outreach campaigns
outreach_campaignsThe business's outreach campaigns, newest first, each with its status and numbers.Free* - Get an outreach campaign
outreach_get_campaignAn outreach campaign with its numbers, each step's emails and replies, and its people page by page with their status.Free* - Read outreach replies
outreach_repliesThe replies to the business's outreach campaigns, newest first, with who wrote, the text and their status now.Free*
Give this to your agent.
Set up Conecto from https://conecto.chat/SKILL.md