Webhooks & Content Ingestion
Ingest content from external sources into Internal Newsletter via webhooks. Push updates from Slack, Notion, BambooHR, and other tools as newsletter content blocks.
The webhook ingest endpoint lets you push content from any external source into your newsletter content library. This is the simplest way to connect tools like Slack, Notion, BambooHR, or custom scripts.
Ingest content
POST /api/v1/webhooks/ingest
| Field | Type | Required | Description |
|---|---|---|---|
title |
string | Yes | Content block title |
body |
string | Yes | Content body (HTML or plain text) |
block_type |
string | No | Block type (default: general) |
event_slug |
string | No | Associate with an event |
auto_ready |
boolean | No | Set true to mark as ready immediately (default: draft) |
Example:
bash
curl -X POST https://your-app.com/api/v1/webhooks/ingest \\
-H "Authorization: Bearer inl_your_key" \\
-H "Content-Type: application/json" \\
-d '{
"title": "New Starter: Jane Smith",
"body": "<p>Please join me in welcoming Jane Smith, our new Senior Designer, joining the Product team on Monday.</p>",
"block_type": "new_starter",
"auto_ready": true
}'
All ingested content is tagged with source: "webhook" so you can filter and review it.
Integration patterns
Slack → Newsletter
Use a Slack webhook or Zapier to forward pinned messages:
- When a message is pinned in
#company-updates - Zapier/Make catches the event
- POSTs to
/api/v1/webhooks/ingestwith the message as body - Block appears in your content library, ready for the next newsletter
HRIS → New starter blocks
When a new hire is created in BambooHR or Rippling:
- HRIS fires a webhook on "new employee" event
- Your middleware formats the payload
- POSTs to ingest with
block_type: "new_starter" - Welcome block auto-created for the newsletter
Notion → Content blocks
Tag pages in Notion for newsletter inclusion:
- Notion API watches for pages tagged "newsletter"
- Script extracts title and body
- POSTs to ingest
- Content ready for assembly
GitHub/Linear → Product updates
When a release is published:
- GitHub/Linear webhook fires
- Formats changelog as HTML
- POSTs to ingest with
block_type: "wins_milestones" - Product update block ready for the team newsletter
Zapier / Make setup
For no-code integrations:
- Create a Zap/Scenario with your trigger (Slack, Notion, etc.)
- Add a Webhooks action — POST to
https://your-app.com/api/v1/webhooks/ingest - Set headers:
Authorization: Bearer inl_your_key,Content-Type: application/json - Map fields:
title,body, and optionallyblock_type