Triage and answer replies to cold email campaigns in Synter Outbound — separate real humans from auto-responders, classify intent, draft a reply in the sender's voice, and route opt-outs to suppression. Use when a user asks about outbound replies, their unibox, who responded to a campaign, or wants to answer a prospect.
97%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Most of what looks like a reply is not one. Sort that out before you tell anyone how a campaign is doing.
Roughly 90% of raw replies are out-of-office. On live campaigns, campaign 216 showed 87 inbox replies: 80 automated, 7 human, 2 actually interested.
Three things must come out of the count before you report it:
Only what remains is a reply. Never report the raw number, and never compute a rate from it.
| Kind | Looks like | Do |
|---|---|---|
| Interested | "happy to discuss", asks about price or timing | draft a reply, propose a time |
| Question | wants detail before committing | answer the question, nothing else |
| Wrong person | "that's not me", "talk to X" | thank, ask for the handoff, never re-pitch |
| Not now | "we're in a good place", "revisit in Q1" | acknowledge, log the date, stop |
| Opt-out | "remove me", "unsubscribe", "where did you get my information" | suppress immediately, then a one-line apology if any reply at all |
An angry "where did you get my information?" is an opt-out and a targeting failure. Suppress immediately, and treat it as evidence the list was not qualified — see outbound-research.
Use outbound_reply_queue to inspect pending replies and drafts, and outbound_approve_reply only after explicit user approval. A draft is not a send.
Every reply to a real person needs explicit approval before it goes. Approval for one reply does not carry to the next message in the same thread.
Error recovery & feedback loops:
action_card with domain: "outbound", action: "edit"), show the revised text, and wait for explicit approval before calling outbound_approve_reply. If the user decides not to reply at all, decline/skip the draft (action_card with domain: "outbound", action: "reject").Voice rules, enforced by the copy gate:
When someone wants time, send the real scheduling link rather than proposing slots blind. Confirm the meeting actually lands in the calendar before telling the user it is booked — "created" is not "booked".
When summarizing a campaign's replies, give the user:
N human replies (M auto-responders excluded)
→ X interested
→ Y questions
→ Z not now
→ W opt-outs ← flag these, they are the targeting signalTwo interested replies from 750 leads is not a reply rate to celebrate, and it is not a volume problem to solve by adding leads. Say what it is: the offer or the list is wrong.
repository in the plugin manifest, or publish from a GitHub Action to verify it.