Skip to main content
n8n
Frontic publishes a community node for n8n, @frontic/n8n-nodes-ingest, that pushes records into a Frontic Custom integration over the Ingest API. Build the workflow in n8n the way you build any other: pick a trigger, transform the data, and put the Frontic Ingest API node at the end. Every workflow run lands its records on the Frontic feed.
Auth
Ingest API key
Update method
Ingest API (push from n8n)
Resources
Anything you push

When to reach for n8n

Use this pattern when:
  • You already run n8n to orchestrate data flow between systems and want Frontic to receive the enriched output.
  • The source you want to ingest from doesn’t have a first-party Frontic connector and you’d rather configure n8n than write code.
  • You need a transformation step (deduplication, enrichment from another API, scheduled aggregation) before records get pushed to Frontic.
If your source is a system Frontic already connects to (Shopware, Shopify, Akeneo, …), use that connector directly - there’s no advantage to routing through n8n.

Install the community node

  1. In your n8n instance, open Settings → Community Nodes and click Install a community node.
  2. Enter the package name @frontic/n8n-nodes-ingest and confirm.
  3. n8n installs and registers the node. The Frontic Ingest API node becomes available in the node picker for any workflow.
See n8n’s community nodes installation docs if your environment needs extra configuration, such as a self-hosted instance with restricted package installs.

Set up the Frontic side

The node pushes records into a Frontic Data Feed, so set up the Frontic side first.

Create or pick a Custom integration

In Frontic, create a Custom integration or open an existing one. The n8n node pushes into it.

Add a Data Feed

On that integration, add a Data Feed for the resource type you’ll push (Content, Products, or Categories). On the feed’s Updates tab, select the Ingest method. The Ingest Endpoints section then shows the feed’s Upsert and Delete URLs. Copy both; you’ll paste them into n8n in the next step.

Create an Ingest API key

In the admin app, open Settings → API Keys, click Add API Key, and select Ingest API. Copy the key; n8n needs it for the credential. See Ingest API → Authentication for details.

Configure the node in n8n

Add a Frontic Ingest API node to your workflow. Under Frontic Ingest API Credentials, create a new credential with three fields: The node has one setting, Ingest Operation, with two values:
  • Create or Update (the default) - POSTs the workflow’s input items as a JSON array to the Upsert endpoint. Records that already exist get updated; new ones get created.
  • Delete - POSTs the input items to the Delete endpoint to remove those records from the feed. Each item only needs the feed’s Source ID field, for example { "id": "product-123" }.
The node collects every input item from the previous node, sends them in one POST, and passes Frontic’s response (the correlation ID) on to the next node. One workflow run can push or delete any number of records in a single call.
Delete operations are permanent. Make sure your workflow’s output is the set of records you actually want gone - piping a “fetch everything” node into a Delete operation removes all of it.

What the data looks like

You define the record shape - the node passes through whatever JSON your previous nodes produce. Match the Custom integration’s record structure so Frontic recognises the @channel, @translation, and @currency annotations:
Every record needs the Source ID field configured on the feed (defaults to id). Records without it aren’t processed.

Example workflows

A few patterns that work well with the node:
  • Schedule Trigger → Source API → Frontic Ingest API (Create or Update) - keep Frontic in sync with a system that doesn’t have a native connector, on a fixed cadence.
  • Webhook → Edit Fields (Set) / Code → Frontic Ingest API - react to events from a CRM, ERP, or third-party SaaS the moment they happen.
  • Google Sheets Trigger → Frontic Ingest API - drive Frontic content from a spreadsheet your team already edits.
  • Schedule Trigger → Source API → Compare Datasets → Frontic Ingest API (Delete) - a periodic reconciliation pass that removes records which disappeared upstream.
When the workflow works, activate it in n8n. From then on, every run pushes its output into Frontic.

Troubleshooting

If the workflow runs but records don’t show up where you expect:
  • 401 errors - the API key is wrong or isn’t an Ingest API key, or the integration ID in the endpoint URL is wrong. Check the key under Settings → API Keys and re-copy both endpoint URLs from the feed’s Updates tab.
  • 422 errors - the response’s code says why: invalid_payload means the body wasn’t valid JSON, and ingest_api_limit_exceeded means your team has used up its API Updates quota.
  • The call succeeds but records never reach the feed - Frontic accepts the call before it checks the feed. Confirm the feed token in the URL is the current one and that the feed’s update method is Ingest. Open the Data Feed’s Recent Records to see what arrived.
  • Records arrived but didn’t reach the storage - the issue is downstream. Walk through the Custom integration troubleshooting steps: typically a missing Data Sync, an incomplete locale mapping (don’t forget the fallback translation), or a Value Composer chain raising a transformation error.

Good to know

  • You own the schema. No normalization happens on the connector side - what you push is what’s stored on the feed (reshaping into your storage schema is the Data Sync’s job).
  • No webhooks back to n8n. This is a one-way push from n8n into Frontic. If you need Frontic to notify n8n of changes in Frontic, use a separate webhook source on the n8n side.
  • Quota counting. Records you push from n8n count against your API Updates quota the same as any other Ingest API push. Deletes don’t. Schedule deliberately.

Without the community node

If you can’t install community nodes, for example on a locked-down n8n instance, the same workflow runs against an HTTP Request node:
  • Method: POST
  • URL: the feed’s Upsert (or Delete) endpoint
  • Authentication: Header Auth - header name Authorization, header value the Ingest API key (no Bearer prefix)
  • Body: a JSON array of records, matching the Custom integration’s record structure
The request and Frontic’s response are the same as with the community node, which wraps exactly this HTTP call.

Custom Integration

The Frontic-side configuration n8n posts to.

Ingest API

The HTTP endpoints, payload shape, and auth model.