Mailshake automation · runs daily
Reply to Mailshake leads from Lead Catcher
Every morning Lead Catcher holds a new batch of open leads, and each one needs a reply typed by hand before the person loses interest.
Cotlet does it in your own Mailshake account with list_leads, list_replies, reply_to_lead and update_lead_status, called by your AI agent, an n8n workflow or a script.
Hosted · nothing to install or maintain
Can Mailshake do this on its own?
Mailshake's API can read leads and replies and set a lead to closed, lost or ignored (checked 22 Oct 2026). It has no endpoint that sends a reply, so every answer is written in the Lead Catcher screen.
How you do it in Mailshake today
- In the Mailshake app, an admin or teammate opens Campaigns, then Lead Catcher in the left sidebar. Open leads assigned to you show first.
- The filters narrow the list by search, by campaign or by teammate, and old leads can be shown by choosing ignored or closed ones.
- Clicking an open lead loads that person's history. The user clicks Reply, writes the answer and clicks Send Email.
- Afterwards the lead is set to Won, Lost or Ignored from the Lead Action button, or in bulk with the Change Status menu.
- The queue refills whenever someone replies, and a lead that was won, lost or ignored opens again when the person writes back.
How to reply to Mailshake leads from Lead Catcher
Read my open Mailshake leads from Agency outreach Q4, draft a reply to each that asks for pricing or a call, and send them once I approve. Mark leads that say no as lost. - 01
Take the open queue
Your agent reads open leads with list_leads, filtered to the campaign and to you, and follows next_token to the end so a long weekend is handled as one batch. A lead assigned to a teammate is left for that person unless your prompt says otherwise.
- 02
Read what they wrote
For each lead, list_replies with the recipient's address returns the plain-text reply. The agent skips out-of-office notes and bounces, because only reply type means a person answered.
- 03
Decide the answer
A question about price or a call gets a draft that answers it and proposes one time. A clear no goes to the lost pile. Anything about a contract or a complaint is listed for you with the quoted line.
- 04
Send after your OK
reply_to_lead sends each draft from your Mailshake mailbox. Every send waits for your approval until you switch confirmation off for this tool, and a sent email cannot be recalled.
- 05
Close the loop
update_lead_status marks the refusals lost and the sent replies stay open, so a second answer from the person puts them back at the top of the queue.
What you get back
Open leads in Agency outreach Q4: 6
Replied 3, e.g. Dana Whitfield (asked about pricing, call proposed Thursday)
Marked lost 1 (Omar Haddad: "not a fit")
Left for you 2:
- Priya Nair: asks about a contract term
- Tomas Berg: forwarded to a colleague Other ways to ask
- Every weekday at 9, draft replies to new open leads and wait for my OK before sending.
- Reply to open leads from the webinar campaign with the booking link and move them to the nurture campaign.
- List open leads older than 3 days that nobody answered, with the last thing each one wrote.
What Mailshake allows, and what to know first
- Mailshake records a reply sent from Lead Catcher as a One Off Send, separate from the campaign sequence, and the API lists it under messages of type one-off.
- A person who replies again after a lead was won, lost or ignored reopens the lead automatically.
- Once someone becomes a lead, Mailshake cancels their follow-up and on-click emails, and there is no way to add them back to the campaign.
- By default a reply makes someone a lead, and a team can add its own rules, such as opening an email 3 times or clicking a link.
- Won leads are included when you export a campaign, so closing a lead as won also feeds your campaign report.
reply_to_lead asks for your OK by default. To run it daily without you, switch confirmation off for that tool in your dashboard.
Sources: Mailshake Help: How do I reply to a lead? · Mailshake Help: How do I handle a lead? · Mailshake Help: How does the Lead Catcher queue work? · Mailshake Help: How do you customize Lead Catcher settings? · Mailshake API reference
Call reply_to_lead from a script
curl -X POST https://cotlet.dev/api/v1/mailshake/leads/5530/replies \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"body":"Hi Dana, glad it fits. Plans start per seat, and I can walk you through them in 20 minutes on Thursday. Does 2 pm work?"}' {
"lead_id": 5530,
"status": "sent",
"sent_as": "one-off",
"to": "dana@brightpath.example",
"subject": "Re: Quick question about your client reporting",
"sent_at": "2026-10-22T08:05:00.000Z"
} MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is mailshake_write → reply_to_lead. Example data.
Schedule it in n8n, Make, Zapier or cronMailshake tools this automation uses
| Tool | Parameters |
|---|---|
| list_leads | campaign_id, status, assigned_to_email, search, per_page, next_token |
| list_replies | reply_type, campaign_id, recipient_email_address, per_page, next_token |
| reply_to_lead | lead_id, body, move_to_campaign_id |
| update_lead_status | lead_id, status |
Frequently asked questions
Is it safe to connect Mailshake to Cotlet?
Yes. You sign in to Mailshake yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Mailshake once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.
Give your agent access to Mailshake.
Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Mailshake.