{"id":50920,"plugin_id":"plugin_asdk_app_6ac3f3a820e081918f1231e374456e3a","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-24T13:44:52.919Z","digest":"79bdd46b97c24cebbc1778ce4b9b3abf3d9f4bab6f94951a50830101bba4711b","against":null,"payload":{"description":"Draft, test, and send a SendFox email campaign safely. Use whenever the user wants to write, schedule, send, or resend an email to their SendFox list or tags.","included_files":[],"name":"send-email","skill_md_contents":"---\nname: send-email\ndescription: Draft, test, and send a SendFox email campaign safely. Use whenever the user wants to write, schedule, send, or resend an email to their SendFox list or tags.\n---\n\n# Sending a SendFox email\n\nSending reaches real people and cannot be undone. Follow these steps in order, and never skip the confirmation in step 4.\n\n1. **Pick the audience.** Use `list-lists` and `list-contact-tags` to turn the names the user gives into IDs. If the user hasn't said who it goes to, ask. Don't guess \"everyone\".\n2. **Write a draft.** Call `create-campaign`. It only makes drafts. The HTML must include `{{unsubscribe_url}}`. Use `get-account` for the sender name and email unless the user gives others.\n3. **Send a test.** Offer `send-test-email` to the user's own address so they can check it in their inbox. This never reaches the audience.\n4. **Confirm before it goes out.** Show the subject, the audience, and roughly how many people it will reach (`list-contacts` with `count_only: true` and a `filter` of `in_list_ids` / `tag_ids`, minus any excluded tags). Ask: \"Send this to about N people now?\" Go on only after an explicit yes in the current conversation.\n5. **Send or schedule.** Call `send-campaign` to send now. For a later time, call `update-campaign` with `scheduled_at` (ISO-8601). Both need the step 4 confirmation.\n6. **Report back.** Say whether it was sent or scheduled, and when. If SendFox returns an error (plan limits, an unverified account, a large send already queued), pass the message on plainly. Don't retry or work around it.\n\n## Resending to non-openers\n\n`resend-campaign` copies a sent email into a new draft aimed at its non-openers, openers, or clickers. Leave out `scheduled_at` so the copy stays a draft. Then report `estimated_recipient_count` and confirm as in step 4 before sending.\n\n## Never\n\n- Send, schedule, or resend without the step 4 confirmation, even if the user asked for something earlier in the conversation.\n- Pass `scheduled_at` to `update-campaign` or `resend-campaign` before the user has confirmed: it sends at that time.\n- Import or email contacts the user didn't collect themselves (bought or scraped lists).\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}