Newsletter Tools

Newsletter tools let you create email campaigns with AI-generated or manual content, build email automations with triggers and conditions, manage subscribers, groups and segments, and check email performance statistics. Campaigns stay in draft until you review and send from the dashboard.

Overview

The Newsletter tool category covers email campaigns, email automations, subscriber management, and email performance analytics. You can create fully-designed campaigns with AI-generated content, build complex email automations with multiple steps, add and organize subscribers into groups and segments, and monitor how your emails perform.

Permission required:Newsletter.Campaigns for campaigns, Newsletter.Automations for email automations, Newsletter for email stats and subscriber/audience management, and Settings.Email for domain setup — each tool needs the same permission as its matching dashboard feature.
Two vocabulary traps. First, the feature manage_email_workflow drives is called Email automations in the dashboard, at Marketing → Newsletter → Email automations — even though the tool is still named manage_email_workflow and the web address still says /workflows. It is one feature, not two. Second, "workflow" now means something else in Yaplet: under Brand → Workflows it means a scripted chat, Facebook or phone conversation, which has nothing to do with email. The tool's own name, parameters and node types below still say workflow — on this page that always means an email automation, never a Brand → Workflows chat script.

manage_campaign

Creates or updates a newsletter email campaign. Campaigns are always created in DRAFT status — you review and send them from the dashboard.

Parameters

ParameterTypeRequiredDescription
idstringNoCampaign ID. Omit to create, provide to update.
namestringConditionalCampaign name. Required when creating.
subjectstringNoEmail subject line.
preheaderstringNoPreview text shown in email inbox.
senderNamestringNoDisplay name for the sender. Auto-detected if omitted.
senderEmailIdstringNoSender email ID. Auto-detected if omitted.
contentstringNoDirect HTML email content (table-based layout with inline styles).
generateContentstringNoAI prompt to generate email HTML from scratch, or editing instructions when combined with a source.
fromTemplateIdstringNoUse a saved template's content as the starting point.
fromCampaignIdstringNoCopy content from a previous campaign.
useVariablesbooleanNoAllow {{variable}} placeholders in AI-generated content (e.g., {{name}}, {{email}}, {{unsubscribeURL}}).
recipientsobjectNoTarget audience. See recipient options below.

Content Sources

You have four ways to provide email content (pick one):

SourceHow It Works
contentPaste your own HTML directly. Must use table-based layout with inline styles for email compatibility.
generateContentDescribe the email and AI generates professional HTML. Uses table-based layout automatically.
fromTemplateIdCopy content from a saved email template. Find template IDs with list_records (table: email_templates).
fromCampaignIdCopy content from a previous campaign. Find campaign IDs with list_records (table: campaigns).

Combining sources: You can combine fromTemplateId or fromCampaignId with generateContent to have AI edit existing content. For example, take last month's campaign and ask AI to update the headline.

Recipient Options

OptionDescription
allActiveTarget all verified subscribers.
segmentIdsArray of contact segment IDs. Find IDs with list_records (table: contact_segments).
groupIdsArray of contact group IDs. Find IDs with list_records (table: contact_groups).

These are mutually exclusive — use only one recipient method per campaign.

How It Works

Creating a campaign:

  • Only name is required, but you'll typically also provide subject and content.
  • A verified sender email is automatically detected from your organization's email domains. You can override it with senderEmailId.
  • Returns a dashboardUrl where you can review and send the campaign.

Updating a campaign:

  • Only DRAFT campaigns can be updated.
  • If you provide generateContent without a source and the campaign already has content, AI edits the existing content.

Important: This tool cannot send campaigns. It always creates them in DRAFT status. Use the returned dashboardUrl to review and send from the dashboard.

Example Prompts

  • "Create a newsletter campaign called 'March Update' with the subject 'What's New in March'."
  • "Generate a promotional email about our spring sale with 50% off all items."
  • "Create a campaign using my Welcome template as the base." (lists templates first, then creates the campaign)
  • "Take my last campaign and create a new one with the headline changed to 'Summer Sale'." (lists campaigns, finds the last one, creates new with AI edits)
  • "Set the recipients for my March campaign to all active subscribers."
  • "Target the 'Premium Users' group for this campaign."
  • "Update the subject line of my draft campaign."
  • "Create a welcome email campaign with AI content, personalization variables, and target the 'New Signups' group."

get_email_stats

Retrieves email performance statistics for a campaign or workflow.

Parameters

ParameterTypeRequiredDescription
sourcestringYes"campaign" or "workflow".
sourceIdstringYesThe campaign or workflow ID.

How It Works

  • Returns email performance metrics including: sends, opens, clicks, bounces, unsubscribes, and more.
  • The campaign or workflow must belong to your organization.

Example Prompts

  • "What are the stats for my March campaign?" (lists campaigns first to find the ID)
  • "Show me the open rate and click rate for my last campaign."
  • "How is my welcome series workflow performing?"
  • "Compare the stats of my last two campaigns." (lists campaigns, gets stats for each)

get_domain_setup_state

Returns the live setup state of a sending domain so you can troubleshoot email-domain configuration grounded in real DNS data — never guessed values. Use it to walk a user through adding DNS records, verifying their domain, or enabling branded link tracking.

Parameters

ParameterTypeRequiredDescription
domainIdstringNoThe domain's ID. Omit to use the most recently added domain.

What It Returns

  • DNS records — the exact name/value pairs the user must add, each with its live status (found, missing, or pending) checked against real DNS. Records in the auth group are required to send; ssl and tracking are optional and only needed for branded link tracking.
  • Setup phase — where the domain stands across sending authentication → SSL → link tracking.
  • DNS provider — the detected provider and its nameservers, so you can tell the user exactly where to add the records.
  • CAA status — whether an existing CAA record is blocking certificate issuance for branded tracking.

How It Works

  • Reads record values from live DNS state, so the assistant explains where to add the still-missing records instead of inventing them.
  • Requires a domain that's already been added under Settings > Email Domains.

Example Prompts

  • "Help me finish setting up my sending domain — which DNS records am I still missing?"
  • "Is my email domain verified yet?"
  • "My link tracking isn't working — what's wrong with my DNS?"
  • "Where do I add these records, and who's my DNS provider?"

manage_email_workflow

Creates, updates, or edits email content within newsletter automation workflows. This is the most powerful newsletter tool — it uses AI to generate entire workflow structures from plain English descriptions.

Actions

This tool has three modes of operation, controlled by the action parameter:

action: "create"

Generates a new workflow from an AI description.

ParameterTypeRequiredDescription
action"create"Yes
namestringYesWorkflow name.
descriptionstringYesPlain English description of the workflow. AI generates the full structure.
triggerTypestringNoHint for the trigger type: "MANUAL", "DATE", "SUBSCRIBE", "UNSUBSCRIBE", or "API". AI auto-detects if omitted.

How it works:

  • AI generates the entire workflow structure: trigger configuration, all nodes (emails, delays, conditions, actions), and the connections between them.
  • The AI has access to your organization's context: contact groups, custom fields, other workflows, and verified sender emails.
  • Email nodes are created with subject/preheader only — use action: "edit_email" to add HTML content to each email.
  • All node positions are automatically calculated by the layout engine.

action: "update"

Modifies an existing workflow.

ParameterTypeRequiredDescription
action"update"Yes
idstringYesWorkflow ID.
namestringNoRename the workflow.
descriptionstringNoAI sees the current workflow and applies your changes (add/remove/restructure nodes).
triggerSettingsobjectNoDirect trigger config object.

How it works:

  • When you provide description, AI sees the entire current automation and generates an updated version.
  • Existing nodes are preserved where possible and new ones are added.
  • You can combine description with name and triggerSettings in a single call.
  • Switching an automation on or off is not possible from here. There is no active parameter; activation is a dashboard-only action, deliberately, because turning one on starts sending real email. Build and edit it here, then switch it live yourself.

action: "edit_email"

Sets the HTML content of a specific email node within the workflow.

ParameterTypeRequiredDescription
action"edit_email"Yes
idstringYesWorkflow ID.
emailNodeIdstringYesThe node ID within the workflow (e.g., "2" or "5").
subjectstringNoEmail subject line for this node.
preheaderstringNoEmail preview text.
contentstringNoDirect HTML email content.
generateContentstringNoAI generates or edits the email HTML.
fromTemplateIdstringNoUse a template's content.
fromCampaignIdstringNoCopy content from a campaign.
useVariablesbooleanNoAllow {{variable}} placeholders.
senderEmailIdstringNoSender email ID for this node.
senderNamestringNoSender display name.

How it works:

  • Sets the email content for the specified node.
  • Content source options work the same as in manage_campaign.
  • The workflow structure shows which nodes are email nodes — use those node IDs here.

Building email workflows works best as an iterative process:

Create the workflow structure

Use action: "create" with a description of the full automation flow. This generates all nodes and connections.

Review the structure

The response shows all nodes and their types. Identify the email node IDs.

Design each email

Use action: "edit_email" for each email node, generating content with AI or providing your own HTML.

Refine, then activate in the dashboard

Use action: "update" to make structural changes. When you are happy with it, open the automation in the dashboard and switch it on there — no tool can activate it for you.

Node Types

TypeDescription
triggerThe starting point — when the workflow activates (subscribe, unsubscribe, date, manual, API).
emailSends an email to the contact.
delayWaits a specified duration before continuing.
conditionBranches based on a condition (creates yes/no paths).
actionPerforms an action: update a field, copy/move/remove from groups, unsubscribe.
webhookSends a webhook to an external URL.
fetchFetches data from an external URL.
workflowTriggers another workflow.

Example Prompts

  • "Create a welcome email workflow: when someone subscribes, send a welcome email immediately, wait 3 days, send a tips email."
  • "Create an onboarding series: subscribe trigger, wait 1 day, send welcome, wait 3 days, check if they opened the welcome email, if yes send a thank-you, if no send a reminder."
  • "Add a condition to my workflow to check if the contact's country is US, and only send the promotional email to US contacts."
  • "Rename my automation to 'New Customer Onboarding'."
  • "Show me the structure of my onboarding automation and which nodes still have no content."
  • "Write the welcome email content for the first email node — make it warm, professional, and include our logo."
  • "Generate the reminder email for node 5 — it should encourage the reader to check out our getting started guide."
  • "Use my Welcome template for the first email, but change the headline to 'Welcome to the team!'"
  • "Show me the stats for my welcome workflow." (uses get_email_stats)

manage_subscribers

Adds, edits and organizes newsletter subscribers.

This tool cannot delete anything. Unsubscribing or removing a contact is a state change — the record stays. Deleting subscribers is only possible from the dashboard.

Actions

ActionWhat It Does
addAdd up to 500 contacts in one call (a single contact is just an array of one).
updateEdit one subscriber: name, email, custom fields, engagement score, state.
set_stateApply one state to up to 500 contacts at once.
add_to_groupPut up to 500 contacts into a contact group.
remove_from_groupTake up to 500 contacts out of a group (they stay subscribed).

Parameters

ParameterTypeRequiredDescription
actionstringYesOne of the actions above.
contactsarrayFor add[{ email, name?, fields? }] — up to 500 per call.
groupIdsarrayNoFor add — groups the new contacts are placed into.
subscriberId / emailstringFor updateWhich subscriber to edit — exactly one of the two.
name, newEmail, fields, engagementNoFor update — what to change. Custom fields are merged into the existing ones.
statestringFor set_stateVERIFIED, UNVERIFIED, UNSUBSCRIBED or REMOVED. Also usable with update.
subscriberIds / emailsarrayFor bulk actionsWhich contacts to affect — exactly one of the two, up to 500.
groupIdstringFor membershipThe group for add_to_group / remove_from_group.

How It Works

  • List hygiene on every add: invalid addresses, no-reply/system inboxes and disposable domains are skipped and counted per reason in the response. Emails that already exist are left untouched and counted as duplicates — use add_to_group to organize existing contacts.
  • New contacts start as NEW and a background job verifies and promotes them to VERIFIED (mailable) automatically — you don't set a state when adding.
  • Double-opt-in protection: VERIFIED can only be set on a contact whose current state is REMOVED. BOUNCED, COMPLAINT and NEW are system-managed and can't be set at all.
  • Custom fields must already exist (Newsletter > Subscribers > Fields). Unknown tags are reported back in ignoredFieldTags, never silently dropped.
  • Your plan's subscriber limit is enforced — the response explains when an add would exceed it.
  • To add more than 500 contacts, split them across several calls.

Example Prompts

  • "Add [email protected] to the newsletter."
  • "Add these 20 emails to the newsletter and put them in the Beta Testers group."
  • "Update Jane's plan field to 'pro'."
  • "Unsubscribe [email protected]."
  • "Unsubscribe everyone on this list of emails." (uses set_state)
  • "Move these subscribers into the VIP group." (uses add_to_group)

manage_audience_list

Creates and edits the audiences campaigns target: contact groups (static buckets you place contacts into) and segments (saved filters — their members are whoever matches the conditions at send time). No deletes — groups and segments can only be created and edited here.

Actions

ActionWhat It Does
create_groupCreate a contact group (name).
rename_groupRename a group (groupId + name).
create_segmentCreate a segment (name + filters).
update_segmentChange a segment's name and/or filters (segmentId).
preview_segmentEvaluate filters without saving (filters or segmentId).

Segment Filters

Filters are structured conditions, not free text:

{
    "match": "all",
    "conditions": [
        { "field": "email", "operator": "ends_with", "value": "@gmail.com" },
        { "field": "engagement", "operator": "greater_than", "value": 5 }
    ]
}
  • match: "all" = every condition must hold (AND), "any" = at least one (OR).
  • A condition can itself be a nested group { "match": "any", "conditions": [...] } — one level deep.
  • field: email, name, state, engagement, created_at, or any custom field tag.
  • Operators by field type: text takes equals, not_equals, contains, starts_with, ends_with (plus not_ variants), is_set, is_not_set; numbers take equals, not_equals, greater_than, less_than; dates take greater_than (after), less_than (before) and more_than_ago / less_than_ago with values like "30_days".
  • state values: NEW, UNVERIFIED, VERIFIED, UNSUBSCRIBED, REMOVED, BOUNCED, COMPLAINT.
  • Values must not contain commas, parentheses, quotes or backslashes.

How It Works

  • Every segment save and preview returns the exact match count plus a 10-contact sample — always check they look like what you intended before moving on.
  • Dashboard-visible counts refresh automatically: segment counts on save/preview, group counts when membership changes.
  • Campaigns snapshot a segment when it's selected as a recipient — editing the segment later doesn't change campaigns that already selected it; re-select the segment there to pick up new filters.

Example Prompts

  • "Create a group called VIP Customers."
  • "Create a segment of engaged Gmail subscribers — engagement above 5."
  • "How many contacts joined in the last 30 days? Preview it as a segment first."
  • "Update my Inactive segment to also require engagement equals 0."
  • "Rename the 'Beta' group to 'Beta Testers'."

Common Workflow Patterns

Quick Campaign

  1. Create with AI contentmanage_campaign with generateContent
  2. Set recipientsmanage_campaign (update) with recipients
  3. Review and send → Use the returned dashboardUrl

Example prompt: "Create a campaign called Holiday Sale with AI-generated promotional content about 30% off everything, target all active subscribers."

Complete Email Automation Build

  1. Create the structuremanage_email_workflow (create)
  2. Design each emailmanage_email_workflow (edit_email) for each email node
  3. Switch it on → open it in the dashboard at Marketing → Newsletter → Email automations

Example prompt: "Build me a complete re-engagement automation: when someone hasn't opened emails in 30 days, send a 'we miss you' email, wait a week, if they still haven't opened, send a final reminder with a discount offer, then unsubscribe if no response."