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.
Install the community node
- In your n8n instance, open Settings → Community Nodes and click Install a community node.
- Enter the package name
@frontic/n8n-nodes-ingestand confirm. - n8n installs and registers the node. The Frontic Ingest API node becomes available in the node picker for any workflow.
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" }.
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:
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.
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
codesays why:invalid_payloadmeans the body wasn’t valid JSON, andingest_api_limit_exceededmeans 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 (noBearerprefix) - Body: a JSON array of records, matching the Custom integration’s record structure
Related
Custom Integration
The Frontic-side configuration n8n posts to.
Ingest API
The HTTP endpoints, payload shape, and auth model.