---
title: "Newsletter Module"
module_id: "newsletter"
version: "1.0.0"
category: "communication"
autonomy: "config-required"
generated: true
generated_at: "2026-05-04"
---

# Newsletter

> Create newsletter drafts for sending

Ships with **6 agent skills**, **1 public block**, an **admin UI**.

## Quick Facts

| Property | Value |
|----------|-------|
| **Module ID** | `newsletter` |
| **Version** | 1.0.0 |
| **Category** | communication |
| **Autonomy** | config-required |
| **Core** | No |
| **Capabilities** | `content:receive`, `data:write` |
| **MCP-exposed skills** | 6 |
| **Owns tables** | — |

## Integrations

**Required:** `resend`

## Skills

These skills are seeded into `agent_skills` when the module is enabled and exposed via MCP.
External operators (FlowPilot, OpenClaw, Claude Desktop, custom MCP clients) can call them directly.

| Skill | Scope | Description |
|-------|-------|-------------|
| `send_newsletter` | internal | Create a newsletter draft. Use when: starting a new email campaign; composing content for an upcoming newsletter; setting up subscriber update structure. NOT for: sending the newsletter (execute_ne… |
| `execute_newsletter_send` | internal | Actually send a prepared newsletter to all confirmed subscribers via email. Use when: newsletter is approved and ready to send; executing a scheduled send; distributing content to subscriber list. … |
| `manage_newsletter_subscribers` | internal | Manage newsletter subscribers: list, search, count, remove. Use when: reviewing subscriber list; finding a specific subscriber; removing unsubscribed users. NOT for: sending newsletters (execute_ne… |
| `manage_newsletters` | internal | Manage newsletters: list, get, create, update, delete. Full CRUD on newsletter drafts and scheduled sends. Use when: creating a new newsletter campaign; editing planned newsletter content; deleting… |
| `lead_nurture_sequence` | internal | Create automated email nurture sequences for new leads. Use when: setting up drip campaigns, automating lead follow-up emails. NOT for: sending single emails (use send_email), managing leads (use m… |
| `newsletter_subscribe` | external | Subscribe a visitor to the newsletter. Use when: visitor wants to sign up for emails, newsletter opt-in. NOT for: managing subscribers (use manage_newsletter_subscribers), sending newsletters (use … |

## Used in Processes

This module participates in the following end-to-end business processes:

- [lead-to-customer](../processes/lead-to-customer.md)
- [content-to-conversion](../processes/content-to-conversion.md)

## File Map

| Purpose | Path |
|---------|------|
| Module definition | `src/lib/modules/newsletter-module.ts` |
| Admin page | `src/pages/admin/NewsletterPage.tsx` |
| Public block | `src/components/public/blocks/NewsletterBlock.tsx` |

## Contributing

To enhance this module, see [Contributing Guide](../contributing/contributing.md).

Key rules:
- Follow `ModuleDefinition<I, O>` contract pattern
- All schema changes require idempotent migrations
- Skills must be self-describing ([Law 2](../concepts/openclaw-law.md))
- Blocks are interfaces, not pipelines ([Law 3](../concepts/openclaw-law.md))
- New skills must pass the [Agent Contract Integrity](../architecture/agent-contract-integrity.md) checklist (`bun run lint:skills`)

---

*This file is auto-generated by `scripts/generate-module-docs.ts`. Do not edit manually — re-run the script after changing the module definition.*