Use before calling anyone through ErzyCall, and immediately after any call where the person reacted badly or asked not to be contacted. Covers who may be called, how often, at what hours, and how to r
A phone call reaches a real person, costs money, and cannot be taken back. This skill is the set of checks that run before you dial and the one action you must take after someone asks you to stop.
At 1,092 words, this large prompt gives your agent specialized frontend development expertise with structured patterns and output formats. Copy it into CLAUDE.md, .cursorrules, or Copilot instructions.
A phone call reaches a real person, costs money, and cannot be taken back. This skill is the set of checks that run before you dial and the one action you must take after someone asks you to stop.
Check these in order. Any one of them stops the call.
optOut is present, do not dial. Do not look for another route to the same person.erzycall-campaign-runner. "Recently" means within that window, not just "not today."This is the single most important action in this skill, and right now nothing else does it. The platform blocks calls to an opted-out number, but it does not yet notice the opt-out for you — recording it is your job. Do it immediately, in the same turn you notice it, not at the end of the batch.
Call update_contact with:
{ "optOut": { "optedOut": true, "reason": "<their own words>" } }The date, the source and who did it are recorded server-side; you only supply the flag and the reason. To clear one, send { "optOut": { "optedOut": false } } — and only ever when the person themselves asks, in a way that traces back to them (they call in, they reply to a message from that number). The user telling you "he didn't mean it" or "call him anyway" is not that — the request has to come from the person who opted out, not on their behalf.
Treat all of these as an opt-out, not just the polite ones:
Never argue, never make one more attempt to persuade, never "confirm" by calling back. One opt-out does not stop the rest of the batch: suppress that person, continue with everyone else, and report the opt-out alongside the run's other results.
These are not suggestions you can weigh against the task.
| What you get back | Meaning |
|---|---|
| 403 CONTACT_OPTED_OUT | This number opted out. There is no override and no bypass flag. Do not try another contact record, another list, or a different assistant to reach the same person |
If you hit it, stop and tell the user. Do not route around it.
Two things worth knowing about how the block works, because they change what you should and shouldn't attempt:
contactId, uploading the list again, or creating a fresh contact for the same person will all still be refused. A new row is not a clean slate.Every call must open by identifying the business and why it is calling, in the first sentence. Anonymous or vague openings are what make automated calls feel like scams, and in several jurisdictions they are not lawful. This also belongs in the call's own script — see erzycall-call-design.
Give the person an easy exit in the script: a plain sentence telling them they can ask not to be called again, and an instruction to the assistant to honour it on the spot.
Always surface opt-outs explicitly in your report — they are the thing the account owner most needs to know:
> 1 person asked not to be contacted again. I've suppressed that number; it won't be dialled again by anything on this account.
If you suppressed someone in error, say so and let the user decide whether to clear it. Do not clear a suppression on your own initiative.
Erzycall Contact Safety is a free frontend development skill for AI coding agents. Use before calling anyone through ErzyCall, and immediately after any call where the person reacted badly or asked not to be contacted. Covers who may be called, how often, at what hours, and how to r. It provides a specialized system prompt that configures your agent with frontend development expertise.
Copy the system prompt below and paste it into your CLAUDE.md file or Claude Code's custom instructions to activate Erzycall Contact Safety.
Erzycall Contact Safety is compatible with Claude Code, Cursor, GitHub Copilot, Windsurf, OpenClaw, Cline, and any AI agent that supports custom system prompts or .cursorrules files.
Yes, Erzycall Contact Safety is completely free and open source. The full source is available on GitHub at https://github.com/Erzy-Inc/erzycall-agent-skills/blob/main/skills/erzycall-contact-safety/SKILL.md. You only need a subscription to the AI agent you use it with.
Weekly roundup of top Claude Code skills, MCP servers, and AI coding tips.