Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Added "check_in_attendee", "get_event_insights", "list_event_registrations" and 2 more; changed the definition of "activate_automation", "add_contacts_to_audience", "add_convo_note" and 79 more (82 tools before, 87 now)
before
—after
Activate automationActivate an automation. New events matching its triggers will start enrolling contacts. Confirm with the user first: once active it can start emailing contacts straight away.before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false,"title":"Activate automation"}before
—after
Add contacts to audiencebefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Add contacts to audience"}before
—after
Add internal notebefore
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Add internal note"}before
—after
Add sending domainbefore
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Add sending domain"}before
—after
Suppress addressbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Suppress address"}before
—after
Check domain DNSbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"Check domain DNS"}before
—after
Create actionbefore
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Create action"}before
—after
Create audiencebefore
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Create audience"}before
—after
Create draft campaignbefore
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Create draft campaign"}before
—after
Add contactAdd a single new contact, optionally straight into audiences and/or withtags —tags; e.g. 'add this person from my email into ⟨18 unchanged words⟩
⟨90 unchanged words⟩ "tags":{"description":"Tag NAMES toassign —assign; matched case-insensitively, created if missing","items" ⟨8 unchanged words⟩
before
—before
—after
Create subscription topicbefore
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Create subscription topic"}before
—after
Create webhookbefore
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false,"title":"Create webhook"}before
—after
Delete actionbefore
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Delete action"}before
—after
Delete audienceDelete an audience (list). Contacts are notdeleted —deleted; only the list and its memberships are removed.
before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Delete audience"}before
—after
Delete draft campaignbefore
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Delete draft campaign"}before
—after
Delete contactbefore
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Delete contact"}before
—after
Delete subscription topicbefore
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Delete subscription topic"}before
—after
Delete webhookbefore
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Delete webhook"}before
—after
Design email with AIbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Design email with AI"}before
—after
Duplicate campaignDuplicate a campaign (template, content, and settings) as a newdraft —draft; works on sent campaigns too, so this ⟨40 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Duplicate campaign"}before
—after
Enroll contact in automation⟨12 unchanged words⟩ in 'active' status. Use send_event for event-driven enrollment. Confirm with the user first: the automation can start emailing the contact straight away.
before
—after
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false,"title":"Enroll contact in automation"}before
—after
Draft email from a web page⟨14 unchanged words⟩ string"},"instructions":{"description":"Additionalguidance —guidance; e.g. 'announcement style, focus on the new ⟨22 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"Draft email from a web page"}before
—after
Get actionbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Get action"}before
—after
Get automationbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Get automation"}before
—after
Get automation statsbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Get automation stats"}before
—after
Get brand settingsbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Get brand settings"}before
—after
Get campaign statsbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Get campaign stats"}before
—after
Get contact health scorebefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Get contact health score"}before
—after
Get contact timelinebefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Get contact timeline"}before
—after
Get conversationbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Get conversation"}before
—after
Get deliverability statusGet your workspace's deliverability summary—: sending reputation, domain authentication status, and recent ⟨6 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Get deliverability status"}before
—after
Get messagebefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Get message"}before
—after
Get message eventsGet just the delivery event timeline for a message—: no body or recipient details.
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Get message events"}before
—after
Get starter templatebefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Get starter template"}before
—after
Get workspacebefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Get workspace"}before
—after
Get usagebefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Get usage"}before
—after
Import contacts⟨14 unchanged words⟩ with tags. This is the tool for cross-appflows —flows; e.g. pulling people out of Gmail, a ⟨40 unchanged words⟩
⟨96 unchanged words⟩ :"Tag NAMES to apply to all importedcontacts —contacts; matched case-insensitively, created if missing","items" ⟨21 unchanged words⟩
—
before
—after
List actionsList Actions. Actions fire a transactional template when a custom event arrives—:Plunk-stylesimple 'event_name → template' pairings,simplerlighter than full automations.
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List actions"}before
—after
List audiencesbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List audiences"}before
—after
List automation enrollmentsbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List automation enrollments"}before
—after
List automationsbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List automations"}before
—after
List campaigns⟨15 unchanged words⟩ vaguely ('the invite one', 'that July newsletter')—; it matches name and subject case-insensitively; try distinctive ⟨9 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List campaigns"}before
—after
List contactsbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List contacts"}before
—after
List inbox conversationsbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List inbox conversations"}before
—after
List sending domainsbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List sending domains"}before
—after
Get inbox countsbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Get inbox counts"}before
—after
List sent messagesbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List sent messages"}before
—after
List segmentsbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List segments"}before
—after
List suppressionsbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List suppressions"}before
—after
List starter templatesbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List starter templates"}before
—after
List subscription topicsbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List subscription topics"}before
—after
List webhooksbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List webhooks"}before
—after
List saved templatesbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List saved templates"}before
—after
List workspacesbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"List workspaces"}before
—after
Mark conversation readbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Mark conversation read"}before
—after
Pause automationbefore
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Pause automation"}before
—after
Pause campaignbefore
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Pause campaign"}before
—after
Review email before sendingbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Review email before sending"}before
—after
Preview campaign recipientsbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Preview campaign recipients"}before
—after
Preview segmentbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Preview segment"}before
—after
Rotate webhook secretbefore
—after
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Rotate webhook secret"}before
—after
Remove contact from audiencebefore
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Remove contact from audience"}before
—after
Remove suppressionbefore
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Remove suppression"}before
—after
Render email HTMLbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Render email HTML"}before
—after
Resume campaignResume a paused campaign. Confirm with the user first: the remaining recipients start receiving the campaign straight away. The sending limits and pauses described on schedule_campaign still apply.before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false,"title":"Resume campaign"}before
—after
Save templatebefore
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Save template"}before
—after
Schedule or send campaignSchedule (or send immediately) an existing draft campaign to an audience/segment/topic. Before calling, confirm with the user: show them the recipients (or the recipient count), the sender and the subject, and wait for a clear yes. Send16 can refuse a send. 429 SEND_RAMP_LIMIT: new and free workspaces have hourly and daily sending limits while they build reputation; the error details give the window, the limit and how many remain. Tell the user how many can go now and that the rest can go once the window resets (or after upgrading), and do not split the send or retry in a loop to get around it. 403 SENDING_PAUSED: sending from the workspace is paused while the Send16 team reviews it. Nothing was sent. Tell the user to check the workspace owner's email or contact support, and do not retry. 422 MESSAGE_NEEDS_REVIEW: the content looked like it might be impersonating a government agency, bank, toll operator or delivery company, so it was held and not sent. Tell the user it is held for review and they can contact support if it is legitimate. Do not reword it and try again; repeated flags pause the workspace.before
—
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false,"title":"Schedule or send campaign"}before
—after
Decide screened senderbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Decide screened sender"}before
—after
Search contactsbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Search contacts"}before
—after
Send broadcast⟨20 unchanged words⟩ topicId, or fully-qualified filter. Provide html OR templateSlug. Before calling, confirm with the user: show them the recipients (or the recipient count), the sender and the subject, and wait for a clear yes. Send16 can refuse a send. 429 SEND_RAMP_LIMIT: new and free workspaces have hourly and daily sending limits while they build reputation; the error details give the window, the limit and how many remain. Tell the user how many can go now and that the rest can go once the window resets (or after upgrading), and do not split the send or retry in a loop to get around it. 403 SENDING_PAUSED: sending from the workspace is paused while the Send16 team reviews it. Nothing was sent. Tell the user to check the workspace owner's email or contact support, and do not retry. 422 MESSAGE_NEEDS_REVIEW: the content looked like it might be impersonating a government agency, bank, toll operator or delivery company, so it was held and not sent. Tell the user it is held for review and they can contact support if it is legitimate. Do not reword it and try again; repeated flags pause the workspace.
before
—
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false,"title":"Send broadcast"}before
—after
Send campaign test⟨9 unchanged words⟩ preview how it will look in recipients' inboxes. Confirm the test address with the user first. Can be refused with 403 SENDING_PAUSED (workspace under review, nothing was sent, tell the user to contact support).
before
—after
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false,"title":"Send campaign test"}before
—after
Send email⟨20 unchanged words⟩ to a domain that is verified in theworkspace —workspace; call `whoami` for the account and `list_domains` to ⟨19 unchanged words⟩ For a zero-setup first send, use from_email`onboarding@send16.com` —`onboarding@send16.com`; the sandbox sender delivers with no DNS, but only to your own account email. Before calling, confirm with the user: show them the recipients (or the recipient count), the sender and the subject, and wait for a clear yes. Send16 can refuse a send. 429 SEND_RAMP_LIMIT: new and free workspaces have hourly and daily sending limits while they build reputation; the error details give the window, the limit and how many remain. Tell the user how many can go now and that the rest can go once the window resets (or after upgrading), and do not split the send or retry in a loop to get around it. 403 SENDING_PAUSED: sending from the workspace is paused while the Send16 team reviews it. Nothing was sent. Tell the user to check the workspace owner's email or contact support, and do not retry. 422 MESSAGE_NEEDS_REVIEW: the content looked like it might be impersonating a government agency, bank, toll operator or delivery company, so it was held and not sent. Tell the user it is held for review and they can contact support if it is legitimate. Do not reword it and try again; repeated flags pause the workspace.
before
—after
Fire contact event⟨24 unchanged words⟩ Payload is exposed to condition steps as `event.<key>`. Confirm with the user first if the event could start an automation that emails the contact.
before
—after
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false,"title":"Fire contact event"}before
—after
Send inbox reply⟨18 unchanged words⟩ arrived on) and threaded back to the contact. Show the user the reply text and get a clear yes first: it goes to a real person and cannot be unsent. Can be refused with 403 SENDING_PAUSED (workspace under review, nothing was sent, tell the user to contact support).
before
—after
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false,"title":"Send inbox reply"}before
—after
Send template test⟨45 unchanged words⟩ the user's own address unless they ask otherwise. Confirm the test address with the user first. Can be refused with 403 SENDING_PAUSED (workspace under review, nothing was sent, tell the user to contact support).
before
—after
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false,"title":"Send template test"}before
—after
Update actionbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Update action"}before
—after
Update brand settings⟨9 unchanged words⟩ Markdown DESIGN.md document fed into AI generation systemprompts —prompts; use it to encode voice, do/don't lists, ⟨12 unchanged words⟩
⟨24 unchanged words⟩ appended to the unsubscribe footer on campaigns lackingone —one; required by anti-spam law in several markets.", ⟨58 unchanged words⟩
—
before
—after
Update draft campaignbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Update draft campaign"}before
—after
Update contactbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Update contact"}before
—after
Update conversationbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Update conversation"}before
—after
Update subscription topicbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Update subscription topic"}before
—after
Check accountbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Check account"}Check in an attendee — Check a registrant in at the door (or undo it). Use the registration ID from list_event_registrations.
Event attendance insights — Who registered and who came for one event: counts, no-show rate, where people came from (city and state), first-timers vs returning, organisations and registrations over time. Without an eventId, returns insights across every event: regulars and their attendance streaks, cohort retention and the regions growing fastest.
List event registrations — List the people registered for an event, with status (registered, waitlisted, attended, no_show, cancelled), company, city and check-in time.
List events — List the workspace's events (meetups, workshops, conferences) with registered, attended and no-show counts and each event's public registration page.
Register someone for an event — Register someone for an event. They get the event's confirmation email with their QR ticket unless the organiser switched it off, so confirm the person and the event with the user first. Registering doesn't subscribe them to marketing unless marketingOptIn is true because they asked.
Added "list_workspace_templates", "save_template" and "send_template_test" (79 tools before, 82 now)
List the templates saved in the user's own Send16 workspace (their template library, including ones saved with save_template). For the shared starter gallery use list_templates.
Save an email design as a reusable template in the user's Send16 workspace. Use this when the user has designed an email (for example in a Claude artifact) and wants it in Send16. Pass the complete email HTML. Send16 hosts every image (remote URLs and inline data: images), converts merge tags like {{first_name}} to Send16's format, and stores the HTML exactly as designed. For best results across Gmail, Outlook and Apple Mail the HTML should be email-safe: table-based layout around 600px wide, inline styles, PNG/JPG/GIF images in <img> tags (not SVG or CSS backgrounds), web-safe font fallbacks…
Send a preview of a saved workspace template to one email address, so the user can see it in a real inbox. It arrives from noreply@send16.com with a small 'Template test preview' banner and uses sample merge values (first name 'Test'). Only send to the user's own address unless they ask otherwise.
Changed the definition of "add_suppression", "create_campaign", "create_contact" and 10 more
⟨16 unchanged words⟩ {"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨20 unchanged words⟩
Certificate recorded, valid to 2026-11-24
Authorization not required
First tool surface recorded: 79 tools (server version 0.5.13)
Showing the latest 6 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Add contact"}after
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Import contacts"}before
—after
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false,"title":"Send email"}after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false,"title":"Update brand settings"}⟨50 unchanged words⟩ ,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨42 unchanged words⟩
⟨46 unchanged words⟩ updateExisting for upsert semantics (safe to re-run). Requires consentConfirmed: true, so confirm with the user that everyone on the list opted in before calling.
⟨31 unchanged words⟩ :"string"},"type":"array"},"consentConfirmed":{"description":"Required, must be true. Set it only after the user has confirmed every person on this list opted in to hear from them. Never set it for bought, rented or scraped lists. If you haven't asked, ask first.","type":"boolean"},"csvData":{"description":"CSV string with headers. ⟨50 unchanged words⟩
⟨36 unchanged words⟩ ,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨57 unchanged words⟩ ,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨5 unchanged words⟩
⟨16 unchanged words⟩ {"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨7 unchanged words⟩
⟨33 unchanged words⟩ ,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨36 unchanged words⟩ {"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨59 unchanged words⟩
⟨34 unchanged words⟩ ,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨8 unchanged words⟩
⟨26 unchanged words⟩ ,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨28 unchanged words⟩ ,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨35 unchanged words⟩ {"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨4 unchanged words⟩ {"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨37 unchanged words⟩
⟨24 unchanged words⟩ ,"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨59 unchanged words⟩
⟨22 unchanged words⟩ encode voice, do/don't lists, and visual rules. companyName/websiteUrl/companyAddress also fill the matching merge tags in templates.
⟨11 unchanged words⟩ env var)","type":"string"},"companyAddress":{"description":"Physical postal address. Fills {{companyAddress}} and is appended to the unsubscribe footer on campaigns lacking one — required by anti-spam law in several markets.","maxLength":500,"type":"string"},"companyName":{"description":"Fills {{companyName}}","maxLength":100,"type":"string"},"designSpec":{"description":"Markdown DESIGN.md spec for ⟨24 unchanged words⟩ "},"secondaryColor":{"description":"Hex color","type":"string"},"websiteUrl":{"description":"Fills {{websiteUrl}}","format":"uri","type":"string"}},"type":"object"}
⟨54 unchanged words⟩ {"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨25 unchanged words⟩ {"format":"email","pattern":"^(?!\\.)(?!.*\\.\\.?:[A-Za-z0-9_'+\\-]+\\.)(*[A-Za-z0-9_'+\\-\\.A-Za-z0-9_'+\\-]*)[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,} ⟨46 unchanged words⟩
⟨13 unchanged words⟩ ,"type":"string"},"assigneeId":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Workspace member user ID, or null to unassign","type":["string","null"]},"convoId":{"description":"Conversation ID" ⟨17 unchanged words⟩