# SendOps Documentation > SendOps is an email workflow and drip campaign platform with visual and SendFlow authoring, audiences, templates, broadcasts, and analytics. Email delivery runs through your own AWS SES account. Start with AWS setup and workflow authoring, then explore audience data, webhook actions, website triggers, rehearsal, consent, and deliverability. Definitions have version history and restore; keeping a copy in Git and pushing from CI is optional. Pages are organized by topic. Each link points directly to the Markdown version of that page. Every page on this site is also available as Markdown at its own URL with `.md` appended (e.g. /audience/segments → /audience/segments.md). The full corpus in one file is at /llms-full.txt. ## Getting Started - [What is SendOps?](https://help.sendops.dev/getting-started/what-is-sendops.md): Build email workflows and drip campaigns visually or in SendFlow, with delivery through your own AWS SES account and flat platform pricing. - [How SendOps Works](https://help.sendops.dev/getting-started/how-sendops-works.md): Understand how SendOps orchestrates email workflows through your own AWS SES account, manages audience and campaign definitions, and captures delivery events. - [Creating Your Account](https://help.sendops.dev/getting-started/creating-your-account.md): Sign up for SendOps, explore the demo workspace, and complete the Setup Guide to connect your AWS account and build email workflows on your own SES account. ## Drip Workflows - [Overview](https://help.sendops.dev/workflows/overview.md): Automated, multi-step email journeys: enroll contacts from a Segment, an event, a custom activity or a date, then send, wait, branch and exit on live conditions — authored as a canvas or as SendFlow code. - [Authoring: canvas & source](https://help.sendops.dev/workflows/authoring.md): Two live, editable views of one workflow — a drag-and-drop canvas and a SendFlow source editor — that stay in sync as you build. - [Triggers & enrollment](https://help.sendops.dev/workflows/triggers.md): The four ways contacts enter a workflow — Segment, event, custom activity, and date-relative — plus re-entry modes and the guardrails that keep journeys sane. - [Sends, consent & approval](https://help.sendops.dev/workflows/sends-and-approval.md): How workflow sends go out — the shared send pipeline, at-send consent, send windows, frequency caps, dry runs — and the manual approval hold for reviewing sends and webhook calls before they ship. - [Shadow mode: rehearse before you send](https://help.sendops.dev/workflows/shadow-mode.md): Activate a workflow in shadow and it enrols real contacts on the real clock while recording every send instead of making it — then go live with the same definition. - [Enrolment decisions](https://help.sendops.dev/workflows/enrolment-decisions.md): Why isn't this person in the drip? Every enrolment decision a workflow takes — positive and negative — is recorded with a named reason for 14 days. - [Push notifications in a drip](https://help.sendops.dev/workflows/push-notifications.md): A worked example: a drip workflow that asks your own system to send a mobile push, falls back to email when there is no device, and waits to see whether the push was opened. - [SendFlow reference](https://help.sendops.dev/workflows/flow-reference.md): SendFlow, the Drip Workflow language: triggers, sends, waits, branches, splits, bounded repeats, named exits and settings — with Segment-rule conditions embedded directly. ## AI & Agents - [Your agent already knows SendOps](https://help.sendops.dev/agent-skill.md): The SendOps agent skill turns Claude, Codex, Gemini, or any Agent Skills-compatible agent into a SendOps expert — guidance only, no account access. How to install it and what it can do. - [Connect an AI agent to SendOps](https://help.sendops.dev/ai-agents/mcp-server.md): Give Claude, Cursor, or another AI agent live access to your SendOps organization over MCP — what it can do, how to connect it, and what stays off limits. - [Temporary inboxes](https://help.sendops.dev/ai-agents/temporary-inboxes.md): A short-lived address on a SendOps domain that your agent mints mid-conversation, so you can forward it an email it cannot otherwise see. It expires in minutes, and everything it received is deleted. - [Platform mode for temporary inboxes](https://help.sendops.dev/ai-agents/platform-mode.md): A workspace setting for products that mint temporary inboxes for their own users through the API: caps per account instead of per API key, a 2,000-a-day allowance, sender lists taken on your word — and the responsibility that comes with it. - [Temporary inboxes for platforms](https://help.sendops.dev/ai-agents/inboxes-for-platforms.md): What a product needs from its SendOps workspace to mint temporary inboxes for its own users: the plan, the API key, the allowances, and the plan refusals it can meet. ## Reports & Analytics - [Reports Overview](https://help.sendops.dev/reports/messages-dashboard.md): Navigate the SendOps Reports page to view messages, deliverability metrics, and engagement data across tabs with filtering, export, and auto-refresh. - [Deliverability Reports](https://help.sendops.dev/reports/deliverability-reports.md): Track bounce rates, complaint rates, SES account status, per-provider deliverability with trend deltas, delivery latency, and suppression data in the SendOps Deliverability tab. - [Engagement Metrics](https://help.sendops.dev/reports/engagement-metrics.md): Track open rates, click rates, and recipient engagement with time-series charts, domain breakdowns, and template performance tables in SendOps. - [Undeliverable List](https://help.sendops.dev/reports/undeliverable-list.md): View permanent-failure addresses (bounces, complaints, rejects) and configurable rule-based detections across your account, search them, and clear individual addresses so SendOps allows delivery to them again. - [Classification Rules](https://help.sendops.dev/reports/classification-rules.md): Tune which bounce, complaint, and rejection signals put an address on your undeliverable list. Choose a Strict / Standard / Aggressive profile or configure each rule individually, with a live preview of the impact before you save. ## Notifications & Alerts - [Configuring Notifications](https://help.sendops.dev/notifications/configuring-notifications.md): Manage your notification inbox, set delivery preferences, use presets, and configure team-wide notification settings in SendOps. - [Notification Types](https://help.sendops.dev/notifications/notification-types.md): A complete reference of every notification SendOps can send, organized by category — from deliverability alerts and SES health warnings to billing events and team activity. - [Webhooks](https://help.sendops.dev/notifications/webhooks.md): HTTPS endpoints SendOps signs and POSTs to — for org notifications, and for the call webhook step in a drip workflow. Creating endpoints, verifying HMAC-SHA256 signatures, deduplicating on the delivery id, and how retries work. ## Audience - [Lists](https://help.sendops.dev/audience/lists.md): Static audiences with explicit membership. Create Lists and manage their members in the dashboard, over the API, or from your CI. - [Contacts](https://help.sendops.dev/audience/contacts.md): Who a contact is, where contacts actually live (the one contact list your AWS account owns), and why a contact is not a list. - [Importing contacts](https://help.sendops.dev/audience/importing-contacts.md): Upload a CSV to create or update contacts in bulk — the column format, what a blank cell means, and why an import never changes consent you didn't ask it to change. - [Topics](https://help.sendops.dev/audience/topics.md): Named, opt-out consent streams backed by your SES contact list. Create Topics in the dashboard, over the API, or from your CI, and use them to give recipients granular control over what mail they receive. - [Segments](https://help.sendops.dev/audience/segments.md): Dynamic audiences defined by a rule. SendOps evaluates membership automatically from each contact's attributes and engagement; the dashboard shows the rule, status, and current members. - [Segment syntax](https://help.sendops.dev/audience/segment-syntax.md): SendQL is the language you write Segment rules in. It selects contacts by their attributes, subscription state, and — uniquely — their raw engagement events. This reference covers the full syntax with worked examples. - [Attributes](https://help.sendops.dev/audience/attributes.md): Custom contact fields — the schema that powers Segment rules. How attribute definitions work, the types SendOps supports, and where per-contact values live. - [Activities](https://help.sendops.dev/audience/activities.md): Custom behavioral signals — purchases, logins, anything your product knows — recorded per contact through the Activities API, and used in Segment rules and Drip Workflow triggers as activity.. - [Syncing external state](https://help.sendops.dev/audience/syncing-external-state.md): When the source of truth for a contact's state lives outside SendOps, carry it in on a schedule: upsert current state as attributes, record milestones as activities. Why derived attributes and /v1/account can't reach across a system or org boundary. ## Templates - [Template Management](https://help.sendops.dev/templates/template-management.md): Author email templates in SendOps, validate their Handlebars syntax, and deploy them to Amazon SES — from the Public API, an AI agent, or your CI. - [Layouts](https://help.sendops.dev/templates/layouts.md): A layout is the branded wrapper around every broadcast you write in SendOps. Use the built-in SendOps default or customize your own, set the default, and see why the unsubscribe link is added for you. - [Importing from SES](https://help.sendops.dev/templates/importing-from-ses.md): Download your existing SES email templates as a ready-to-import bundle, then bring them into SendOps through the dashboard, the API, or sendops push. - [Previews & Test Data](https://help.sendops.dev/templates/template-versioning.md): Preview templates with test data profiles, send test emails, and manage sample data for your Handlebars email templates in SendOps. - [Version history & restore](https://help.sendops.dev/templates/version-history-and-restore.md): Every edit to a template, segment, List, topic, attribute, activity property or workflow is recorded with who made it — and any earlier version can be put back without losing anything. - [Authoring with React Email](https://help.sendops.dev/templates/react-email.md): Write your email templates as React components, render them to Handlebars HTML in CI, and push the result to SendOps — with the escaping and strict-render rules that make it work. - [Keeping a copy in git](https://help.sendops.dev/templates/keeping-a-copy-in-git.md): Export your templates and audience definitions to a repository you control, and push changes back from CI. - [Export & import](https://help.sendops.dev/templates/export-and-import.md): Download your whole organization as a bundle of files, and apply one back — with a dry-run plan first, and nothing written unless the entire bundle is valid. ## Team & Access - [Team Members & Roles](https://help.sendops.dev/team/members-and-roles.md): Understand the eight roles in SendOps — Owner, Org Admin, Infra Admin, Developer, Marketer, Financial, Customer Support, and Viewer — and learn how to invite teammates to your organization. - [Audit Log](https://help.sendops.dev/team/audit-log.md): Track every change made in your SendOps organization with the audit log — searchable, filterable, and designed for compliance. - [Settings & Profile](https://help.sendops.dev/team/account-settings.md): Manage your SendOps workspace settings, personal profile, security preferences, and billing configuration. ## API & Integrations - [API Keys](https://help.sendops.dev/api-integrations/api-keys.md): Create, scope, rotate, and revoke SendOps API keys — the simplest way to let your own scripts and services call the SendOps API. - [OAuth Clients](https://help.sendops.dev/api-integrations/oauth-clients.md): Register an OAuth client so your product can act on behalf of your customers' SendOps organizations — or automate your own with short-lived tokens. - [Connected Apps](https://help.sendops.dev/api-integrations/connected-apps.md): Review and revoke the third-party applications you have authorized to access your SendOps organizations. ## Billing - [Plans & Usage](https://help.sendops.dev/billing/plans-and-usage.md): Understand the three SendOps plan tiers — Free, Team, and Business — and how to monitor your usage, switch plans, and buy extra seats. - [Plan limits](https://help.sendops.dev/billing/plan-limits.md): Every limit on the Free, Team and Business plans, what happens when you reach one, how periods are counted, and where to see your usage. - [Overage on Business](https://help.sendops.dev/billing/business-overage.md): How a monthly Business workspace keeps running past its plan limits: what is metered, the rates, the overage switch, and how overage appears on your invoice. - [Existing workspaces](https://help.sendops.dev/billing/existing-workspaces.md): Workspaces created before the current plans keep their original limits until they change plan. What that means, what stays the same, and what changes when you do. - [Invoices](https://help.sendops.dev/billing/invoices.md): View, filter, and download PDF invoices for your SendOps subscription directly from the dashboard. - [Payment History](https://help.sendops.dev/billing/payment-history.md): View a chronological record of all payment transactions and export billing history as CSV. - [SES Cost Estimates](https://help.sendops.dev/billing/ses-cost-estimates.md): View estimated AWS SES sending costs derived from your email volume, broken down by month and channel. ## Identities & Domains - [Adding a Domain](https://help.sendops.dev/domains/adding-a-domain.md): Add and verify a sending domain in SendOps. SendOps uses AWS SES to generate DKIM tokens and verify domain ownership through DNS records. - [Email Identities](https://help.sendops.dev/domains/email-identities.md): Verify individual email addresses as sending identities in SendOps. Learn when to use email identities versus domain verification. - [DNS Configuration](https://help.sendops.dev/domains/dns-configuration.md): Set up DKIM, SPF, and DMARC DNS records for your sending domain to maximize email deliverability. - [Tracking Domains](https://help.sendops.dev/domains/tracking-domains.md): Set up a custom tracking domain for branded open and click tracking URLs in your emails, improving deliverability and link trust. ## Domain Authentication - [Setting Up DMARC Reporting](https://help.sendops.dev/domain-auth/setting-up-dmarc-reporting.md): Publish a DMARC record with your SendOps reporting address and start receiving aggregate reports about every source sending as your domain. - [Reading Your Source Table](https://help.sendops.dev/domain-auth/reading-your-source-table.md): Understand the four source classifications, what each diagnosis code means, and why most unknown sources turn out to be a service you forgot about. - [Moving to p=quarantine and p=reject](https://help.sendops.dev/domain-auth/moving-to-quarantine-and-reject.md): The readiness criteria for tightening your DMARC policy, what actually changes for recipients at each step, and what breaks if you move too early. - [Change History](https://help.sendops.dev/domain-auth/change-history.md): The timeline of what changed on a domain's DMARC configuration and when, the previous record kept verbatim so you can paste it back, and the before-and-after that says whether a change actually worked. - [Why We Do Not Accept Forensic Reports](https://help.sendops.dev/domain-auth/forensic-reports.md): DMARC forensic (ruf) reports carry recipient addresses and subject lines to an address published in public DNS. SendOps does not request or process them. ## Inbound Receiving - [Inbound Receiving](https://help.sendops.dev/inbound/inbound-receiving.md): Receive email at a subdomain of your own — support@, replies to your broadcasts, invoices — into your own AWS account, delivered to your webhook as structured JSON. What it is, how the pieces fit, what SendOps never sees, and who can set it up. - [Enabling Inbound](https://help.sendops.dev/inbound/enabling-inbound.md): Add the Inbound capability to your SendOps stack: which regions can receive mail, when a second stack is needed, what the CloudFormation update creates in your account, what happens if the account already receives mail, and how removal works. - [Receiving Domains](https://help.sendops.dev/inbound/receiving-domains.md): Add the subdomain that will receive mail, publish its MX and identity records, and read the verification states — what each record does, how often SendOps checks, and what deleting a domain does and does not stop. - [Delivery Webhooks](https://help.sendops.dev/inbound/delivery-webhooks.md): Point a receiving domain at your HTTPS endpoint: what the URL must satisfy, how the allow list decides which addresses are delivered, what happens to spam and viruses, the one-time signing secret and how rotation works, testing the endpoint, and what the publication states mean. - [Message Log](https://help.sendops.dev/inbound/message-log.md): Every message that arrived at a receiving domain and what happened to it: the outcomes and what each one means, why a message parks, how to redeliver one, what needs SendOps to replay, and how long the log and the raw mail are kept. - [Reply Intelligence](https://help.sendops.dev/inbound/reply-intelligence.md): When a received message is a reply to something SendOps sent, it is matched to the broadcast or workflow and the contact, recorded as a reply activity, and — if you switch it on — a STOP reply opts the contact out. How the matching works, what it deliberately ignores, and where replies have to land for any of it to happen. ## Edge / CDN - [Edge Stack](https://help.sendops.dev/edge/edge-stack.md): Enable the optional Edge stack to host the images in your email templates on your own CloudFront CDN and power branded tracking domains — all inside your AWS account. - [Asset Library & Images](https://help.sendops.dev/edge/asset-library.md): Upload the images your templates reference, and SendOps serves them from your Edge CDN — rewriting every reference to a public URL when the template deploys to SES. - [Custom Image Domain](https://help.sendops.dev/edge/custom-image-domain.md): Front your Edge assets CDN with your own branded subdomain (e.g. cdn.yourdomain.com), with an SSL certificate SendOps requests and attaches for you. ## Channels - [Understanding Channels](https://help.sendops.dev/channels/understanding-channels.md): Learn what channels are in SendOps, how they map to AWS SES configuration sets, and how they control event tracking and sending behavior. - [Managing Channels](https://help.sendops.dev/channels/managing-channels.md): How to create, configure, sync, and manage channels in SendOps, including integration headers and channel settings. ## Sending Email - [How Email Flows](https://help.sendops.dev/sending-email/email-flow.md): How direct application email and SendOps workflows use your own AWS SES account, with delivery events flowing back for analytics, tracing, and alerting. - [Broadcasts](https://help.sendops.dev/sending-email/broadcasts.md): Send a one-time bulk email to a List or Segment. How the audience, content, sender, and merge data fit together, how consent is enforced at send, and why every broadcast should have an opt-out topic. - [Write a broadcast](https://help.sendops.dev/sending-email/writing-a-broadcast.md): Write a broadcast email in SendOps: pick a layout, use the visual editor, add merge fields, fallbacks and conditional sections, preview it as a real contact, and send a test. - [Broadcast Notifications & Quota Holds](https://help.sendops.dev/sending-email/broadcast-notifications.md): What SendOps tells you while a broadcast sends — finished, failed, paused, waiting for your AWS daily sending limit — who hears about it, and what to do when a send pauses on quota. - [Consent & lifecycle mail](https://help.sendops.dev/sending-email/consent-and-lifecycle.md): How SendOps decides who is mailable — the two-tier consent model, topics as opt-out streams, the marketing vs. transactional lanes, and how to send onboarding and transactional mail correctly. Plus why streaming activities creates contacts you can't yet email. - [Unsubscribe Page](https://help.sendops.dev/sending-email/unsubscribe-page.md): Customize the hosted page recipients see when they opt out of your broadcast emails — branding, copy, and a live preview. - [SES Sandbox & Production](https://help.sendops.dev/sending-email/ses-sandbox.md): Understand the difference between SES sandbox and production mode, sandbox limitations, and how to request production access for your AWS account. - [Moving to SES Production](https://help.sendops.dev/sending-email/ses-production-access.md): A complete guide to requesting AWS SES production access, including what AWS looks for, how to write a strong request, and how SendOps supports every requirement. ## Website Identity - [Website Identity](https://help.sendops.dev/website/overview.md): Recognise a contact you already know when they come back to your website, and let a Drip Workflow act on it — what it is, how the pieces fit, what it deliberately does not do, and who can set it up. - [Installing the Snippet](https://help.sendops.dev/website/installing-the-snippet.md): Set up Website Identity end to end — create a site key, call identify from your backend, set the so_vid cookie correctly, install sendops.js by script tag or Google Tag Manager, and record custom site_ events. - [Recipe: Survey Answers](https://help.sendops.dev/website/survey-answers.md): Ask a one-question survey by email, record each answer as a site_survey_answered activity with a Tag Manager Track event tag and no page code, promote the answer as an enum property, and branch a Drip Workflow on it. - [Troubleshooting Beacons](https://help.sendops.dev/website/troubleshooting-beacons.md): Read the beacon health card on the Website page — accepted, unknown visitor, unknown key, bad name and rate limited — and fix the four misconfigurations that make the snippet silently send nothing. ## AWS Reference - [AWS Integration](https://help.sendops.dev/aws-setup/connecting-aws.md): Connect your AWS account to SendOps using CloudFormation or manual IAM role setup — no API keys required. - [What SendOps Creates in Your AWS Account](https://help.sendops.dev/aws-setup/what-sendops-creates.md): Every AWS resource SendOps creates in your account, what each one is for, and which ones are safe to remove. - [AWS Account Sync](https://help.sendops.dev/aws-setup/account-sync.md): How SendOps syncs with your AWS SES account to discover domains, email identities, and channels — and how to manage their lifecycle. - [Shared AWS Accounts & Claim Conflicts](https://help.sendops.dev/aws-setup/shared-accounts.md): How to run multiple SendOps workspaces on one AWS SES account, resolve claim conflicts when workspaces claim the same identity, and how paused events are replayed once the conflict is cleared. - [IAM Permissions Explained](https://help.sendops.dev/aws-setup/iam-permissions.md): A complete breakdown of every AWS IAM permission SendOps requires, why it is needed, and how least-privilege is enforced. - [Supported AWS Regions](https://help.sendops.dev/aws-setup/supported-regions.md): All AWS regions where Amazon SES is available and supported by SendOps, with guidance on choosing the right region. ## Troubleshooting - [Connection Issues](https://help.sendops.dev/troubleshooting/connection-issues.md): Diagnose and fix common AWS connection problems in SendOps, including IAM role failures, stack validation errors, and EventBridge delivery issues. - [Domain Verification](https://help.sendops.dev/troubleshooting/domain-verification.md): Troubleshoot common domain verification issues in SendOps, including DNS propagation delays, DKIM failures, and SPF/DMARC misconfigurations. - [Deliverability Problems](https://help.sendops.dev/troubleshooting/deliverability-problems.md): Troubleshoot high bounce rates, complaint spikes, SES account reviews, and authentication failures that affect your email deliverability. ## Reference - [Glossary](https://help.sendops.dev/reference/glossary.md): Definitions of key terms and concepts used throughout SendOps and AWS SES. - [Tags & Folders](https://help.sendops.dev/reference/tags-and-folders.md): Organize your resources with tags that double as nested, Gmail-style folders. - [AWS SES Resources](https://help.sendops.dev/reference/aws-ses-resources.md): Curated links to AWS documentation, SDKs, and tools for working with Amazon Simple Email Service.