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:

  1. When a message is pinned in #company-updates
  2. Zapier/Make catches the event
  3. POSTs to /api/v1/webhooks/ingest with the message as body
  4. 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:

  1. HRIS fires a webhook on "new employee" event
  2. Your middleware formats the payload
  3. POSTs to ingest with block_type: "new_starter"
  4. Welcome block auto-created for the newsletter

Notion → Content blocks

Tag pages in Notion for newsletter inclusion:

  1. Notion API watches for pages tagged "newsletter"
  2. Script extracts title and body
  3. POSTs to ingest
  4. Content ready for assembly

GitHub/Linear → Product updates

When a release is published:

  1. GitHub/Linear webhook fires
  2. Formats changelog as HTML
  3. POSTs to ingest with block_type: "wins_milestones"
  4. Product update block ready for the team newsletter

Zapier / Make setup

For no-code integrations:

  1. Create a Zap/Scenario with your trigger (Slack, Notion, etc.)
  2. Add a Webhooks action — POST to https://your-app.com/api/v1/webhooks/ingest
  3. Set headers: Authorization: Bearer inl_your_key, Content-Type: application/json
  4. Map fields: title, body, and optionally block_type