BLUEPRINT · n8n-courier
Outbound courier (via your n8n)
Safely moves drafts out to the world. Listens for content.draft signals from teammates and sends each one to your n8n/Zapier webhook, which posts it wherever you've wired (X, LinkedIn, Slack, …). Starts in approval mode — nothing leaves without your tap.
- Runs
- on the Relay signal
content.draft - Leash
- required
- Wakes on
content.draft
How it decides
- OBSERVE · source
signal_subscribe - FILTER · gate
fast_path_diff - REASON · reason
no model - ACT · act
post_to_api ●write_state
● = touches the outside world (leashed by default)
What it costs
No model calls. Leashed by default. Wakes on content.draft.
What you'll need
WORKFLOW_URL, WORKFLOW_TOKEN
Make it yours
-
sources.drafts.topic -
content.draft
Full YAML
# The safe path to the outside world. Listens for drafts on the
# Relay and POSTs them to YOUR automation layer (an n8n / Zapier / Make
# webhook), which does the platform work with its own credentials. Deploys in
# approval mode — every outbound payload waits for your one-tap approval until
# you flip it to autonomous. See PRIMITIVES.md for the n8n starter workflow.
blueprint:
id: n8n-courier
title: Outbound courier (via your n8n)
description: >-
Safely moves drafts out to the world. Listens for `content.draft` signals
from teammates and sends each one to your n8n/Zapier webhook, which posts
it wherever you've wired (X, LinkedIn, Slack, …). Starts in approval mode —
nothing leaves without your tap.
config:
synth:
name: Courier
goal: Send approved drafts to my automation webhook for publishing.
schedule_seconds: null
trigger:
type: signal
topic: content.draft
approval_mode: required
requires_credentials:
- WORKFLOW_URL
- WORKFLOW_TOKEN
sources:
- id: drafts
primitive: signal_subscribe
config:
topic: content.draft
fast_path:
primitive: fast_path_diff
inputs:
current: $sources.drafts.ts
previous: $state.last_sent_ts
actions:
- if: $fast_path.triggered
primitive: post_to_api
config:
url: $secrets.WORKFLOW_URL
headers:
Authorization: "Bearer {$secrets.WORKFLOW_TOKEN}"
body:
text: $sources.drafts.payload.text
- always: true
primitive: write_state
config:
last_sent_ts: $sources.drafts.ts Install
In the control room
Blueprints → Outbound courier (via your n8n) → Shadow, then Deploy.
To change something first (see Make it yours): View config, copy the JSON, and paste it into + Install a Synth.
With your AI
Ask: "Clone the n8n-courier blueprint." It uses caedos_blueprints, then validates, shadows and deploys.