Emelyn

Navigation

Bring your trigger. Keep the social judgment in Emelyn.

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.

n8n workflow from signed webhook through mapped release fields and Emelyn campaign creation to approval, publishing result, and idempotent retry

Six nodes, one deliberate handoff.

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.

  1. 01

    Webhook

    Receive one POST on the production URL.

  2. 02

    Verify secret

    Reject a missing or invalid signature before parsing.

  3. 03

    Map release fields

    Create a small, stable source object.

  4. 04

    Create campaign

    Send the source with an idempotency key.

  5. 05

    Wait for approval

    Let Emelyn own review and publishing readiness.

  6. 06

    Record result

    Store campaign ID, status, and published URL when ready.

Keep credentials outside the workflow JSON.

Create an Emelyn credential in n8n, then paste the request shape into an HTTP Request node. The release ID makes retries safe.

Prerequisites

  • Emelyn workspace with permission to create campaigns
  • Emelyn API credential stored in n8n Credentials
  • Active n8n workflow with a production webhook URL
  • Source-side secret and stable external event ID

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.

Send the source, not a mystery blob.

A small explicit payload is easier to review, retry, and update than forwarding every field from the trigger.

n8n valueEmelyn fieldWhy it exists
release.idsource.external_idStable deduplication key
release.nametitleCampaign working title
release.bodysource_textApproved release detail
release.html_urlsource_urlTraceable public source
repository.full_namesource_context.repositoryRepository context

Accepted response

{
  "status": "accepted",
  "campaign_id": "cmp_01HZX7Q8B8J2P3F4T6K9M2V1Y",
  "duplicate": false
}

What happens next

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.

Retry the delivery without duplicating the campaign.

The workflow keeps the same idempotency key when a transport or temporary server error is retried. Validation and permission errors stop for correction.

429 or 5xx

Wait for Retry-After when supplied, then retry with the same key. After the retry limit, move to needs attention.

400 or 422

Do not retry unchanged data. Show the missing or invalid mapped field.

401 or 403

Stop and reconnect the Emelyn credential. Never place the token in workflow data or the webhook URL.

Inbound safety

Use HTTPS, verify the source secret before parsing, acknowledge quickly, and retain the external event ID for replay protection.

Built for the failure cases practitioners keep finding.

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.

Let n8n move the event. Let Emelyn decide how it should become content.

Connect an n8n workflow