Help Center

Integrations

Integrations are how Lumina publishes your finished drafts to the places your audience actually reads. You connect a destination once per brand, and from then on you can push any ready draft straight to it. Connections are managed from the Integrations section of your dashboard.

<!-- screenshot: Integrations page listing available destinations and their status -->

Supported destinations

Lumina ships with three publishing destinations today:

DestinationWhat you connectWhat you'll need
WordPressA self-hosted or WordPress.com site via the REST APISite URL, username, and an Application Password
GhostA Ghost site via the Admin APIAdmin API URL and an Admin API Key (id:secret)
Webhook / Custom RESTAny HTTP endpoint you controlEndpoint URL and a signing secret

Each destination is a per-brand connection, connecting WordPress for one brand doesn't connect it for the others. See Workspaces & Brands.

Publishing is a plan-gated feature. If you don't see Integrations or the Push action, check your plan in Credits & Billing.

Connecting a destination

  1. Go to Integrations and choose a destination type.
  2. Fill in its fields (see below). Secret fields, passwords, API keys, signing secrets, are encrypted at rest and masked whenever you view the connection again.
  3. Lumina runs a test connection to confirm the credentials work before saving.
  4. The connection shows as Active when it's good, or Error if a later check fails (for example, if you rotate a key on the destination).

You can re-run the test at any time, reconnect with new credentials, or disconnect a destination entirely.

<!-- screenshot: Connect WordPress dialog with masked Application Password field -->

WordPress

Lumina publishes via the WordPress REST API using an Application Password (not your login password). In WordPress, go to Users → Profile → Application Passwords, create one for Lumina, and paste it here along with your site URL and username.

Ghost

Lumina uses the Ghost Admin API. In Ghost, create a Custom Integration (Settings → Integrations → Add custom integration) to get an Admin API key in the form id:secret, plus the Admin API URL. Paste both here.

Webhook / Custom REST

For anything else, point Lumina at an endpoint URL you control. On publish, Lumina sends a JSON POST describing the content, signed with an X-Lumina-Signature: sha256=… header derived from your signing secret so your receiver can verify the request is genuine. A ping event is sent when you test the connection.

Publishing a draft

Once a destination is connected and a draft is Ready, use Push in the editor or draft view to send it. Lumina:

  • Sends the title and body, as a published post (or a scheduled one, if you set a publish time).
  • Records the result, the destination's post ID and a link to view it.
  • Marks the publication published or failed, with the error if something went wrong, so you can fix the connection and try again.

See Drafts & Publishing for the full draft lifecycle.

Troubleshooting

  • Connection shows Error: re-run the test. The most common causes are a rotated API key, an expired Application Password, or a changed site URL. Reconnect with fresh credentials.
  • WordPress fails: confirm the Application Password (not the login password) and that the REST API is reachable at …/wp-json/.
  • Ghost fails: confirm the key is the full id:secret Admin API key and the URL points at your Ghost admin domain.
  • Webhook fails: confirm your endpoint returns a 2xx status for the ping event and verifies the X-Lumina-Signature header.

What's next for integrations

The connection model is built to grow, destinations are pluggable, and OAuth sign-in (so you won't have to paste keys for some platforms) is on the roadmap. New destinations appear in the Integrations list automatically as they ship.

See also