429 or 5xx
Wait for Retry-After when supplied, then retry with the same key. After the retry limit, move to needs attention.
Use n8n to move an approved event or source into Emelyn. Get a reviewable campaign back, with the original source, retry state, and publishing result still connected.

The example starts when approved release data reaches n8n. It verifies the sender, maps only the fields Emelyn needs, creates a campaign in review mode, and records the result.
Receive one POST on the production URL.
Reject a missing or invalid signature before parsing.
Create a small, stable source object.
Send the source with an idempotency key.
Let Emelyn own review and publishing readiness.
Store campaign ID, status, and published URL when ready.
Create an Emelyn credential in n8n, then paste the request shape into an HTTP Request node. The release ID makes retries safe.
HTTP Request configuration
Copy into n8n{
"method": "POST",
"url": "https://api.emelyn.ai/v1/campaigns",
"headers": {
"Authorization": "Bearer {{$credentials.emelynApi.apiKey}}",
"Idempotency-Key": "github-release-{{$json.release.id}}"
},
"body": {
"workflow": "release-notes-to-social-media",
"source": {
"external_id": "{{$json.release.id}}",
"title": "{{$json.release.name}}",
"source_text": "{{$json.release.body}}",
"source_url": "{{$json.release.html_url}}"
},
"publishing_mode": "review"
}
}Template revision 1.0 · Emelyn API v1 · Last tested 29 August 2026 with n8n built-in Webhook, Set, If, Wait, Respond to Webhook, and HTTP Request nodes.
A small explicit payload is easier to review, retry, and update than forwarding every field from the trigger.
| n8n value | Emelyn field | Why it exists |
|---|---|---|
| release.id | source.external_id | Stable deduplication key |
| release.name | title | Campaign working title |
| release.body | source_text | Approved release detail |
| release.html_url | source_url | Traceable public source |
| repository.full_name | source_context.repository | Repository context |
{
"status": "accepted",
"campaign_id": "cmp_01HZX7Q8B8J2P3F4T6K9M2V1Y",
"duplicate": false
}A 202 means Emelyn accepted the campaign job. Poll the campaign or receive an outbound status event for review, scheduled, published, or needs-attention state. It does not mean a post is already live.
The workflow keeps the same idempotency key when a transport or temporary server error is retried. Validation and permission errors stop for correction.
Wait for Retry-After when supplied, then retry with the same key. After the retry limit, move to needs attention.
Do not retry unchanged data. Show the missing or invalid mapped field.
Stop and reconnect the Emelyn credential. Never place the token in workflow data or the webhook URL.
Use HTTPS, verify the source secret before parsing, acknowledge quickly, and retain the external event ID for replay protection.
Public workflows show strong demand for RSS and release triggers, platform-specific outputs, approval, deduplication, and logs. n8n users also repeatedly run into response timing, media rules, and unsafe retries—the page makes those operating details part of the setup.