An email can begin as a standalone message or as a selected asset from something that already exists. The same record should support both without forcing every blog post, podcast episode, video, offer, or event into an automatic email.
For a standalone email, the author supplies the purpose, audience, source notes, and direction. For a parent-derived email, the workflow retrieves the approved source and combines it with the selected Brand, Persona, goal, type, prompt, Style Guide, CTA, and destination segment.
The output is one Email record for one message. If that message belongs to a sequence, create and manage the sequence in the Email Sequence Builder inside the Marketing Hub. This playbook governs only the individual email record.
- Brand records: voice, positioning, sender identity, offers, and language rules
- Persona records: the audience context passed into drafting
- A shared Prompts table: active Email prompts for the jobs you run
- Approved parent workflows, when using the parent-derived path: a stable final draft, transcript, offer, event, or other trusted source field
- A database and AI tool: the tools you choose to structure, generate, and store each message
- Optional delivery connection: your email service provider or automation platform
The field names shown here are a working example, not a required interface. Build this in Airtable, Notion, Google Sheets, Supabase, or your own app. Preserve the source relationship, drafting inputs, review checkpoint, delivery state, and provider return data.
Start with one Emails table and the standalone path only. Store the Brand, Intended Audience, Email Goal, Email Type, Subject Line 1, Subject Line 2, Subject Line 3, Final Subject Line, one Preview Text, Final Content, and Status. Draft manually or with AI, select the final subject, review the saved message, then send it manually through your email provider.
Stop there until that path is reliable. Parent relationships, automated generation, scheduling, provider sending, and performance syncing are later layers. Newsletter planning and sequence orchestration belong in their separate workflows.
Record
Create one place for every sendable email.
Direct
Choose the source, audience, goal, type, prompt, CTA, and segment.
Generate
Create three subject options, one preview, and one body from the saved inputs.
Review
Edit, test, approve, regenerate, or archive the record.
Send
Deliver it and return provider identity and performance.
A source gives the email something true to say. The goal, audience, email type, and CTA determine what the message needs to do.
Create one Emails table or add Email as a type inside a shared Content table. One record should hold one sendable message from its first direction through review, delivery, and measurement.
This page builds one Email record at a time. If the message belongs to a sequence, use the Email Sequence Builder in the Marketing Hub to create, order, and manage the sequence. Then return here for the structure and drafting rules that apply to each individual email.
This playbook covers one individual email message. A newsletter needs its own workflow for issue planning, curation, sections, cadence, and publication history. Use the separate Newsletter playbook for that content type. Email and Newsletter are distinct content types with their own records and their own tracking; a newsletter issue does not become an Email record.
A short internal label for finding the email. It does not need to match the final subject line.
The Brand whose voice, business context, sender identity, language rules, and offers apply.
The full audience profile the AI should write toward. This describes the reader; it is not the same as the delivery segment.
The exact list, tag, saved segment, or automation audience that should receive the message. Keep the provider identifier in the integration layer or connected account record.
The approved From name, From address, and Reply-to address for this Brand and destination.
The result this email should support, such as Generate Leads, Nurture Audience, Drive Sales, Build Authority, Announce, or Re-engage.
The structural job of the message. Examples: Broadcast / Campaign, Event Based, Flow: Pre-Purchase, Flow: Post-Purchase, Flow: Other, Lead Nurture, Membership Update, Product Launch / Feature Update, Promotional / Discount, Re-engagement / Winback, or Welcome Series.
Select from the shared Prompts table, filtered to Active Email prompts. The prompt controls the writing job; Brand and Persona remain linked separately.
An email-specific guide built from approved examples. If blank, use the Brand voice and selected Email Prompt.
The one primary action the reader should take. Informational, transactional, or relationship emails may not require a promotional CTA.
The approved page, checkout, registration, article, episode, video, or other destination used by the CTA.
Standalone, Blog Post, Podcast Episode, YouTube Video, General Content, Offer, Event, Campaign, or another parent type your system supports.
The exact approved source record. Use typed relationships or a Parent Type plus Parent ID pattern so the source remains traceable.
The point, announcement, story, offer, event details, or proof used to draft with AI. Skip this if you're writing Final Content yourself. Notes exist to feed the AI prompt, not to duplicate a manually written email.
The model used for generation and regeneration. Saving it makes output differences traceable.
The first accurate subject option for human review.
A meaningfully different subject option, not a minor wording variation.
A third distinct subject option that stays faithful to the message.
The approved option selected for sending. Keep the three generated options so the choice remains visible.
The single inbox preview that extends the subject rather than repeating it.
The exact approved email body. A manually written standalone email can be saved here without using AI.
At minimum: Draft, Approved, Scheduled, Sent, Failed, and Archived.
The planned delivery time before sending and the confirmed time after the provider reports success.
The email-platform identifier used to confirm delivery and retrieve performance later.
Store the measures your provider reliably returns, such as Sent, Delivered, Bounced, Unique Clicks, Unsubscribes, Spam Complaints, Replies, and Conversions. Treat opens as directional because privacy features can distort them.
The most recent successful performance refresh.
Show the full prompt
I want to build a reusable Email workflow in [AIRTABLE / NOTION / GOOGLE SHEETS / SUPABASE / MY OWN APP]. Help me create the database structure. I am building my own operating system, not recreating a specific interface.
Create one Emails table. One record represents one sendable email from direction through review, delivery, and measurement.
IDENTITY AND AUDIENCE
- Internal Headline: single-line text, required
- Brand: linked Brand record, required
- Intended Audience: linked Persona record, required
- Destination Segment: linked segment or provider segment ID, required before sending
- Sender Identity: linked sender or text fields, required before sending
MESSAGE DIRECTION
- Email Goal: Generate Leads, Nurture Audience, Drive Sales, Build Authority, Announce, or Re-engage, required
- Email Type: Broadcast / Campaign, Event Based, Flow: Pre-Purchase, Flow: Post-Purchase, Flow: Other, Lead Nurture, Membership Update, Product Launch / Feature Update, Promotional / Discount, Re-engagement / Winback, or Welcome Series, required
- Email Prompt: linked record from the shared Prompts table, filtered to Active and Email, required for AI drafting
- Style Guide: linked record, optional
- Primary CTA: text, optional
- Destination Link: URL, optional
SOURCE AND GENERATION
- Source Type: Standalone, Blog Post, Podcast Episode, YouTube Video, General Content, Offer, Event, Campaign, or Other, required
- Parent Content: linked source record or Parent Type plus Parent ID, required when Source Type is not Standalone
- Standalone Source Notes: long text, required when Source Type is Standalone and Final Content is empty
- AI Tool to Use: single select, recommended
- Subject Line 1: single-line text, generated and editable
- Subject Line 2: single-line text, generated and editable
- Subject Line 3: single-line text, generated and editable
- Final Subject Line: single-line text, selected by a human and editable
- Preview Text: one single-line text field, generated and editable
- Final Content: rich text or long text, generated and editable
DELIVERY AND PERFORMANCE
- Status: Draft, Approved, Scheduled, Sent, Failed, Archived
- Scheduled / Sent Date: date and time
- Provider Message ID: single-line text
- Sent, Delivered, Bounced, Unique Clicks, Unsubscribes, Spam Complaints, Replies, Conversions: numbers, optional
- Last Synced At: date and time, optional
Then show me:
1. The table structure and relationships
2. A standalone email form
3. A parent-derived generation action
4. Views for Draft, Approved, Scheduled, Sent, Failed, and Archived
5. How to prevent retries from duplicating records or sending twice
6. How to return the provider message ID, send time, and reliable metrics after delivery
7. Where to hand off newsletter planning and email sequence orchestrationOne record can hold either a standalone email or one parent-derived email, including three subject options, one selected final subject, one preview text, and one body.
Standalone path
Create an Email record directly. Select the Brand, Persona, goal, type, prompt, optional Style Guide, CTA, and destination. Add source notes or write the subject options, final subject, preview, and Final Content manually. Nothing must be linked to a parent.
Parent-derived path
Begin on an approved parent record and request one email with one clear job. The automation retrieves the trusted source and creates one linked Draft Email record.
Standalone announcement
Source: notes about a new workshop, confirmed date, audience, promise, and registration link. Direction: Announce goal, Event Based type, active event email prompt, direct tone from the Brand guide, and one registration CTA. Result: one Draft Email record with no parent content.
Nurture email from a blog
Source: the approved draft of “How to Stop Losing Client Decisions in Slack.” Direction: Nurture Audience goal, Lead Nurture type, active teaching email prompt, and a CTA to read the full article. Result: one linked Draft Email record. No other email is created.
A parent record may support many messages, but this workflow creates only the one email the author requests. Route a multi-email journey to the Email Sequence Builder in the Marketing Hub.
Show the trigger and action map
TRIGGER
Event: Author requests one email from a parent record
Input: {{parent_type}}, {{parent_record_id}}, {{email_record_id}}
RUN CONDITIONS
- The parent record exists
- The trusted source field is approved and not empty
- One explicit email goal, type, prompt, and audience combination is selected
ACTIONS
1. Retrieve the current parent record by ID
2. Retrieve the approved draft, transcript, offer details, event details, or other trusted source for that parent type
3. Retrieve the parent Brand and its full voice context
4. Retrieve the selected Persona, Email Prompt, Style Guide, goal, type, CTA, link, and segment
5. Create or retrieve the one requested Email record
6. Save the parent relationship, source type, audience, and direction on that record
7. Send the record through Prompt 03
8. Save the three returned subject options, one preview text, and one body to their fields
9. Keep the record in Draft for human review and final subject selection
ON RETRY
- Use a stable generation key made from parent ID, email record ID, email type, prompt ID, and audience ID
- Do not create a duplicate record when that key already exists unless the author explicitly requests another version
ON FAILURE
- Preserve the existing record and any prior complete version
- Mark the email as Failed or leave it available for retry
- Never send a partially generated recordThe workflow can retrieve the correct source and create exactly one requested Email record without creating a newsletter issue or sequence.
The generation step should receive one complete Email record and one trusted source. It should not decide the audience, goal, email type, or CTA. Those are human choices made before the model writes.
For parent-derived content, the source record remains the factual authority. The model should select and shape the material needed for this email’s job rather than summarize the entire article, podcast, video, offer, or event. For a standalone email, the saved notes or draft become the authority.
The record contains three editable subject options, one Preview Text, and one Final Content draft written for its audience, goal, type, and CTA. A human selects the Final Subject Line.
The three subjects offer distinct ways to earn attention, the single preview extends the promise, and the body fulfills it. Generate and review them together so they do not repeat or contradict one another.
Show the trigger and action map
TRIGGER
Event: Author requests generation for one Email record
Input: {{email_record_id}}
RUN CONDITIONS
- Brand, Persona, Email Goal, Email Type, and Email Prompt are present
- Either Parent Content or Standalone Source Notes is present
ACTIONS
1. Retrieve the current Email record
2. Retrieve the full Brand, Persona, Email Prompt, and optional Style Guide
3. Retrieve the current approved parent source or Standalone Source Notes
4. Retrieve the CTA and destination link when present
5. Map all saved values into Prompt 03
6. Send Prompt 03 to the selected AI model
7. Validate that the response contains three distinct subject lines, one preview line, and one complete body with no unsupported claims
8. Preserve the existing version when regenerating
9. Save the new values to Subject Line 1, Subject Line 2, Subject Line 3, Preview Text, and Final Content
10. Clear Final Subject Line so a human must select the approved option
11. Keep Status Draft and notify the author
ON FAILURE
- Do not overwrite any existing approved or complete content with a partial response
- Log the failed step and error
- Leave the record available for a manual retryShow the full prompt
You are writing one email for one selected audience and purpose. The source and direction have already been chosen. Do not change the goal, email type, audience, or CTA, and do not create additional emails.
EMAIL DIRECTION
Internal headline: {{internal_headline}}
Email goal: {{email_goal}}
Email type: {{email_type}}
Destination segment context: {{destination_segment_context}}
Sender identity: {{sender_identity}}
Primary CTA: {{primary_cta}}
Destination link: {{destination_link}}
LINKED CONTEXT
Brand voice and business context: {{brand_context}}
Intended audience Persona: {{persona_context}}
Selected Email Prompt: {{email_prompt}}
Email Style Guide, if selected: {{style_guide}}
SOURCE
Source type: {{source_type}}
Source title: {{source_title}}
Approved source content or standalone notes: {{source_content}}
Source URL, if published: {{source_url}}
INSTRUCTIONS
1. Write one complete email for the selected audience, goal, and Email Type.
2. Follow the selected Email Prompt and Style Guide. If they conflict, use the Style Guide for voice and the saved goal, type, and CTA for structure.
3. Use only the source material needed to do this email’s job. Do not summarize the entire parent record.
4. Keep factual claims, examples, quotations, dates, prices, availability, and results traceable to the supplied source. Do not invent personal experience, client results, urgency, scarcity, statistics, or attribution.
5. Give the message one clear through-line and one primary CTA when a CTA is supplied. Do not add a sales CTA to a relationship, service, or transactional email unless the direction calls for it.
6. Write three distinct subject lines that are accurate and specific. Each should use a meaningfully different angle, not a minor wording variation.
7. Write one preview text option that extends the promise of the subject choices instead of repeating them.
8. Use the destination link exactly as supplied. Do not invent links, coupon codes, deadlines, policies, or offer terms.
9. If the source is a transcript, remove filler and spoken repetition while preserving meaning.
10. Return plain, editable copy. Do not add commentary about your choices.
RETURN EXACTLY
SUBJECT LINE 1
[First subject option]
SUBJECT LINE 2
[Second subject option]
SUBJECT LINE 3
[Third subject option]
PREVIEW TEXT
[One preview line]
FINAL CONTENT
[One complete email body]Show the completed record
INTERNAL HEADLINE
Stop losing client decisions in Slack
BRAND
Example Consulting
INTENDED AUDIENCE
Boutique agency owners managing client work across a small team
DESTINATION SEGMENT
Agency owners who downloaded the client delivery guide
SENDER IDENTITY
Jordan from Example Consulting, jordan@example.com
EMAIL GOAL
Nurture Audience
EMAIL TYPE
Lead Nurture
EMAIL PROMPT
Teach from a Blog Post
STYLE GUIDE
Conversational Teaching Email
AI TOOL TO USE
The author’s selected writing model
SOURCE TYPE
Blog Post
PARENT CONTENT
How to Stop Losing Client Decisions in Slack
PRIMARY CTA
Read the full decision workflow
DESTINATION LINK
https://example.com/client-decisions
SUBJECT LINE 1
The client decision your team will forget
SUBJECT LINE 2
Stop treating Slack like a decision log
SUBJECT LINE 3
Where did that client approval go?
FINAL SUBJECT LINE
Stop treating Slack like a decision log
PREVIEW TEXT
Give every approval, change, and next step a permanent home.
FINAL CONTENT
Hi {{first_name}},
A client approves a direction in Slack. Two weeks later, someone asks why the project changed. The answer is somewhere inside a thread nobody can find.
The problem is not Slack. The problem is asking a conversation tool to become your permanent decision record.
Create one place for final decisions. For each decision, save:
- What was decided
- Who approved it
- When it became final
- Which project or deliverable it affects
- The source conversation for context
Your team can still discuss the work in Slack. The final decision simply moves into a system built to preserve it.
Read the full decision workflow:
https://example.com/client-decisions
Jordan
STATUS
Approved
WHY THIS RECORD WORKS
- One email has one audience, goal, and CTA
- All claims come from the linked parent content
- Three distinct subjects remain visible
- A human selected the Final Subject Line
- One preview supports the selected subject
- The approved body and source relationship stay on the same recordThe Draft record contains three editable subject options, one editable preview, and one editable body grounded in the saved source and direction. A human can select one option as the Final Subject Line.
Edit and select
Compare the three subject options, edit any option that is close, and select one as the Final Subject Line. Edit the preview or body directly as needed. The saved human-edited version, not the original model response, should move to delivery.
Regenerate
Update the direction or source first, then generate a fresh version from all current inputs. Preserve the prior draft through version history or a related Versions table.
Test
Send a test through the actual provider. Check rendering, links, personalization fallbacks, sender identity, reply handling, mobile layout, and the plain-text version.
Approve or archive
Set Approved only after content and delivery checks pass. Archive a valid unused variation so its history remains available; delete only mistaken, duplicate, or test records your retention rules allow you to remove.
Do not let drafting send an email directly to a live audience. Approval should be an explicit human action, and the send step must re-read the current approved record instead of trusting an earlier generation payload.
The exact subject, preview, body, sender, segment, links, and schedule have passed review, or the unused message has been archived.
Delivery can be manual or automated through your email service provider. Begin manually if that is the fastest reliable path: copy the approved content into the provider, send a test, schedule or send it there, then return the provider message ID and actual send time to the Email record.
When automating, keep API keys, audience identifiers, sender verification, subscription status, and suppression logic inside the provider or integration layer. The workflow should send only to an approved segment and must treat an uncertain response as uncertain, not as permission to retry blindly.
After the provider confirms acceptance, save the returned message or campaign ID and actual send time. Use that stable identifier for later delivery and performance syncing.
The Email record describes the message. The email provider should remain the source of truth for subscription status, suppression lists, bounces, complaints, and legal footer requirements at send time.
Prioritize delivery, unique clicks, replies, conversions, unsubscribes, complaints, and bounces. Privacy protections can inflate or obscure opens, so use them as a directional signal rather than proof that a person read the message.
Show the send and return map
TRIGGER
Event: Author chooses Send, or the saved Scheduled time arrives
Input: {{email_record_id}}
RUN CONDITIONS
- Status is Approved or Scheduled
- Final Subject Line and Final Content are not empty
- Sender Identity and Destination Segment are present
- The provider connection is active
- The audience is eligible under the provider’s current subscription and suppression rules
ACTIONS
1. Retrieve the current approved subject, preview, body, sender, segment, CTA, and links
2. Revalidate required personalization fallbacks and destination URLs
3. Create the provider campaign or message using a stable idempotency key
4. Send a test when the workflow requires one
5. Schedule or send the message
6. Confirm provider acceptance before changing the source record
7. Save the returned Provider Message ID
8. Save the confirmed scheduled or actual sent date and time
9. Change Status to Scheduled or Sent to match the provider’s real state
SCHEDULED PATH
- Keep Status Scheduled until the provider confirms the send
- Do not treat successful scheduling as a completed send
ON RETRY
- Look up the existing idempotency key or Provider Message ID first
- Never create or send a second message when the first result is uncertain
ON FAILURE
- Keep the approved content unchanged
- Set Status Failed or retain Approved for manual recovery
- Log the failed step and provider response without storing credentialsShow the metrics return map
TRIGGER
Event: Manual refresh, scheduled sync, webhook, or reporting run
Input: {{email_record_id}}
RUN CONDITIONS
- Status is Sent
- Provider Message ID is present
- The selected provider exposes delivery or performance data
ACTIONS
1. Retrieve the Email record and its Provider Message ID
2. Request current results from the provider
3. Store the counts the provider reliably returns: Sent, Delivered, Bounced, Unique Clicks, Unsubscribes, Spam Complaints, Replies, and Conversions
4. Store opens separately and label them directional when privacy protections affect them
5. Save Last Synced At
6. If trend reporting matters, add a dated related snapshot instead of replacing the only historical value
7. Preserve the Email record’s Sent status unless the provider confirms a different terminal delivery state
ON FAILURE
- Keep the last successful metrics unchanged
- Log the provider error and attempted sync time
- Do not alter content, audience, or delivery status because a reporting request failedThe approved email has been sent exactly once, its provider identity is saved, and delivery and response data can return to the record without becoming the source of truth for consent.
The first four checks confirm the minimum viable build. The last four apply when you add parent content, automated sending, or performance syncing. Click each item as you confirm it.
A standalone Email record can be created without a parent and contains the required Brand, audience, goal, type, three subject options, Final Subject Line, one preview, body, and status fields
Every email has one clear purpose, one intended audience, and one primary CTA when a CTA is needed
Generation returns three distinct subject options, one preview text, and one body; a human selects the Final Subject Line and the approved version is preserved
Draft content cannot send, and approval requires a human check of the message, sender, segment, links, and test delivery
The parent-derived path retrieves the current approved source and creates exactly one requested Email record
Newsletter planning routes to the separate Newsletter workflow, and multi-email journeys route to the Email Sequence Builder in the Marketing Hub
The send path revalidates sender, segment, consent, and suppression rules and uses an idempotency key to prevent duplicate sends
The provider message ID and actual send time return to the record, and reliable performance metrics can sync without treating opens as proof of readership