Docs / N8N

N8N Integration

Native node available. Drag, set your API key, pick a validator. Done.

What you need

  • 1. A NaLU AI account β€” sign up free. Your API key is in the Dashboard, format nalu-XXXXXXXXXX.
  • 2. N8N self-hosted or cloud with Community Nodes enabled.

1. Install the node

In N8N, go to Settings β†’ Community Nodes β†’ Install and enter:

n8n-nodes-nalu-ai

Restart N8N if prompted. The NaLU AI node will appear in the node panel.

2. Set up credentials

On first use, N8N will ask for credentials:

1

Click Create new credential β†’ NaLU AI API

2

Paste your API key in the API Key field:

nalu-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
3

Click Save. Reuse this credential across all NaLU nodes.

3. Configure the node

Drag the NaLU AI node, connect it to the previous node's output and fill in:

Validator: Validate Full Name ← pick from list
Agent Prompt: {{ $json.agent_input }} ← bot's question
User Reply: {{ $json.user_input }} ← user's message
Language: English
validate_reply uses different fields: Agent Message + User Reply. The node adjusts automatically when you select that validator.

4. Use the result

Add an IF node after NaLU AI:

Condition: {{ $json.obtained }} equals true
βœ“ TRUE β€” data extracted

Use $json.extracted_value to continue the flow.

βœ— FALSE β€” not found

Send $json.suggestion_to_agent back to the user and wait for a new reply.

Example workflow (import)

In N8N click Import workflow and paste the JSON below. Replace the credential with yours.

{"nodes":[{"parameters":{},"id":"faf0378d-853d-4d28-b436-fe0b492698ba","name":"When clicking 'Test workflow'","type":"n8n-nodes-base.manualTrigger","typeVersion":1,"position":[-496,-48]},{"parameters":{"fields":{"values":[{"name":"agent_input","stringValue":"Good morning! What is your name?"},{"name":"user_input","stringValue":"Good morning!"}]},"options":{}},"id":"525c03df-d299-4c93-abe3-d0cb3b974c92","name":"Test Data","type":"n8n-nodes-base.set","typeVersion":3,"position":[-272,-48]},{"parameters":{"agent_input":"={{ $json.agent_input }}","user_input":"={{ $json.user_input }}","language":"en"},"id":"de84d078-001c-4c5a-a46d-e898e521e9af","name":"NaLU AI","type":"n8n-nodes-nalu-ai.naluAi","typeVersion":1,"position":[-48,-48],"credentials":{"naluAiApi":{"id":"Un73vppDrR5VJlwl","name":"NaLU AI account"}}}],"connections":{"When clicking 'Test workflow'":{"main":[[{"node":"Test Data","type":"main","index":0}]]},"Test Data":{"main":[[{"node":"NaLU AI","type":"main","index":0}]]}},"pinData":{}}

Response fields

Available as $json.field in the next node:

Field Description
obtainedtrue/false β€” whether the data was extracted
extracted_valueThe clean, normalized value (e.g. "111.444.777-35")
certainfalse = ask for confirmation before saving
confidencelow / medium / high
suggestion_to_agentReady-to-send message when obtained=false
reply_typevalidate_reply only: confirmation, counter_proposal, handoff, rejection, cancel, unclear
Tips
  • β€’ Retry limit: add a counter in N8N. Escalate to a human after 3 failed attempts β€” don't loop forever.
  • β€’ certain: false: when obtained=true but certain=false, confirm first. E.g. "I found John Smith, is that correct?"
  • β€’ CEP/postal code: besides extracted_value, returns a structured address object with street, neighborhood, city and state.
  • β€’ 429 errors: credits exhausted. Add an IF on the status code before the obtained IF.