# Draft a newsletter edition from curated links

Create an editable newsletter issue from two to five editor-selected links. Get a subject, preheader, introduction, linked blurbs, and closing in an unaddressed Gmail draft.

**Category** Marketing · Content Creation  
**Tools** n8n, OpenAI, Gmail, n8n Data Tables  
**Trigger** Authenticated POST from an internal content queue or form  
**Proposed catalog URL** https://uptune.io/templates/curated-newsletter-draft  
**Package** [Workflow JSON](curated-newsletter-draft.n8n.json) · [Test payloads](test-payloads.json) · [Validation report](validation-report.txt)

Import the workflow in n8n and run **Run with sample data**. The workflow imports inactive with **dryRun** enabled. The sample stays inside n8n and uses fictional data.

## How it works

1. Accept an issue name, theme, audience, and a small set of links with source excerpts.
2. Generate one section per link. Use the exact source URLs and titles from intake and check that each source appears once.
3. Save the issue in Gmail Drafts with an empty recipient field. The editor verifies the copy and moves it into the team's newsletter platform.

## How to use

1. Create a Data Table for this workflow with text columns **event_key**, **status**, **detail**, and **result_id**. Add the table ID, OpenAI model, and brand voice in **Setup**.
2. Select an OpenAI bearer **Header Auth** credential and a Gmail OAuth2 credential. Add a separate private inbound **Header Auth** credential to **Receive event**.
3. POST **requestId**, **issueName**, **theme**, **audience**, and **links**. Each link needs **title**, **url**, and **excerpt**. The webhook acknowledges receipt. Use the execution or Gmail Drafts to see the outcome.
4. In staging, disable dry run and submit a test issue. Verify that the recipient is blank and that all links match the curated inputs. Move the line marked **Preheader** into the newsletter platform's preview-text field.

## Test and operate

- The sample returns two linked sections and keeps the subject on one line.
- A missing, repeated, or unknown link ID stops before Gmail.
- A repeated request ID skips draft creation in normal serial delivery. If **draft_pending** remains, check Gmail before clearing the reservation.
- The workflow writes from the excerpts supplied by the editor. Open the full sources and verify the summaries before publication.

[n8n source by Codint](https://n8n.io/workflows/8662-transform-rss-feeds-into-content-with-gpt-4o-for-medium-linkedin-and-instagram/)
