Skip to content

n8n

Connect Spectra.fm to n8n for self-hosted, privacy-focused visual automation.

In your n8n workflow, add an HTTP Request node.

SettingValue
MethodPOST
URLhttps://api.spectra.fm/v1/projects/YOUR_PROJECT_ID/exports
  1. Select Header Auth under Authentication
  2. Create new credentials:
    • Name: X-API-Key
    • Value: Your Spectra.fm API key

Enable Send Body and configure:

SettingValue
Body Content TypeJSON
Specify BodyUsing JSON
{
"combinations": [
{"locale": "en", "theme": "light"},
{"locale": "en", "theme": "dark"}
]
}
Webhook → HTTP Request (Spectra) → Slack
  1. Webhook - Trigger on release or launch event
  2. HTTP Request - Export OG, LinkedIn, and Instagram assets
  3. Slack - Share export links with the team
Schedule Trigger → HTTP Request (Spectra) → S3
  1. Schedule Trigger - Poll CMS or run on publish
  2. HTTP Request - Export blog hero + OG image
  3. S3 - Store assets by slug
Webhook Trigger → HTTP Request (Spectra) → S3
  1. Webhook - Receive completion data (name, date, course)
  2. HTTP Request - Export certificates using content variations
  3. S3 - Save and notify

Reference data from previous nodes:

{
"combinations": [
{"locale": "{{ $json.locale }}", "theme": "{{ $json.theme }}"}
]
}

Or use the expression editor for the URL:

https://api.spectra.fm/v1/projects/{{ $json.projectId }}/exports
  1. HTTP Request (GET) — export options
    URL: https://api.spectra.fm/v1/projects/{{ $json.projectId }}/exports/options

  2. HTTP Request (POST) — create export
    URL: https://api.spectra.fm/v1/projects/{{ $json.projectId }}/exports
    Response includes exportId.

  3. Wait — 2–5 seconds

  4. HTTP Request (GET) — poll status
    URL: https://api.spectra.fm/v1/projects/{{ $json.projectId }}/exports/{{ $json.exportId }}
    Loop until status is completed.

  5. HTTP Request (GET) — list artifacts
    URL: https://api.spectra.fm/v1/projects/{{ $json.projectId }}/exports/{{ $json.exportId }}/artifacts

Use downloadUrl from the artifacts response, or call:

https://api.spectra.fm/v1/projects/{{ $json.projectId }}/exports/download?objectKey={{ $json.objectKey }}&filename={{ $json.filename }}