How n8n AI Agent runs map to HoneyHive
n8n’s current AI Agent node runs as a Tools Agent. In n8n’s own quickstart, you build an AI chat workflow with: The shipper reads the persistedrunData for each completed execution and maps it to HoneyHive events:
| n8n execution data | HoneyHive event |
|---|---|
| Workflow execution root | chain |
AI Agent node | chain |
Chat model sub-node, such as OpenAI Chat Model | model |
Memory sub-node, such as Simple Memory | chain |
Tool sub-node, such as Calculator, HTTP Request, or app tools | tool |
Standard n8n nodes, such as Set or Code | chain |
ai_languageModel sub-runs, memory calls as ai_memory sub-runs, and tool calls as ai_tool sub-runs. The shipper preserves that hierarchy, so model, memory, and tool spans appear under the AI Agent span in HoneyHive.
Prerequisites
- Self-hosted n8n with PostgreSQL execution storage
- Read access to n8n’s Postgres database
- A HoneyHive project and API key from Settings > Project > API Keys
Install the shipper
Clone the shipper and install it withuv:
Configure
Set the required environment variables:HONEYHIVE_API_URL is your HoneyHive data plane API base URL, for example https://api.dp1.us.prod.honeyhive.ai. The shipper appends /opentelemetry/v1/traces automatically.
You can also omit PG_DSN and use n8n-style Postgres variables:
| Variable | Default | Purpose |
|---|---|---|
DRY_RUN | true | Map executions without exporting to HoneyHive |
CHECKPOINT_FILE | .shipper_checkpoint | Stores the last processed execution ID |
FILTER_AI_ONLY | false | Export AI-related spans plus required context |
FILTER_WORKFLOW_IDS | none | Comma-separated workflow ID allowlist |
TRUNCATE_FIELD_LEN | 0 | Truncate large input/output strings. 0 disables truncation |
OTEL_EXPORTER_OTLP_ENDPOINT | derived from HONEYHIVE_API_URL | Full OTLP traces URL override |
Run
Start with a dry run:CHECKPOINT_FILE after successful non-dry-run exports, so later runs resume from the last processed execution ID.
Example workflow: AI Agent with a tool
In a local self-hosted n8n test, the promptUse the calculator tool to compute 17 * 23 produced:
AI Agentoutput:391Calculatortool input:17 * 23- Two
OpenAI Chat Modelsub-runs: one for the tool call and one for the final answer - One HoneyHive session with 6 spans under the session root: workflow root, trigger, AI Agent, Calculator tool, and two model calls
Verify in HoneyHive
Run the workflow
Execute the workflow from the n8n UI or workflow execute API. Confirm the execution is stored in n8n’s Postgres database.
Check shipper-exported spans
In Traces, search for the workflow name or a node name from the execution.Shipper spans include 
service.name = n8n-honeyhive-shipper and n8n metadata such as n8n.metadata.n8n.execution.id and n8n.workflow.id. HoneyHive may store the session under its own session ID, so use the n8n execution ID as metadata when cross-checking against n8n’s database. AI Agent workflows should show the AI Agent span with model and tool spans beneath it.
Where n8n stores runData
On self-hosted n8n, finished executions are persisted in the database:
| Table | Key columns | Contents |
|---|---|---|
execution_entity | id, workflowId, status, startedAt, stoppedAt, mode | Execution metadata |
execution_data | executionId, workflowData, data | Static workflow snapshot plus runtime payload |
data column holds resultData.runData: a map of node name to execution runs. Each run includes startTime, executionTime, executionStatus, and per-item JSON under channels such as main, ai_languageModel, ai_memory, or ai_tool. The data value may be flatted pointer-compressed JSON, while workflowData is usually plain JSON.
Operational notes
| Concern | Detail |
|---|---|
| Latency | Near-real-time poll or backfill batch. Export is not inline with workflow execution |
| Re-export | A checkpoint file tracks processed executions. Keep the checkpoint on durable storage to avoid duplicate exports |
| Queue mode | Workers write to the same execution tables. Run the shipper after executions are persisted |
| AI Agent variants | Current AI Agent nodes run as Tools Agents. Older Conversational Agent functionality was removed by n8n in February 2025 |
Troubleshooting
| Symptom | Fix |
|---|---|
| No shipper-exported spans in HoneyHive | Confirm HONEYHIVE_API_KEY, HONEYHIVE_API_URL, and PG_DSN point to the expected HoneyHive project and n8n database. Run a dry run first, then export with --no-dry-run |
| Shipper missing executions | Confirm the shipper points at the same Postgres DSN as the n8n instance that ran the workflow. Check DB_TABLE_PREFIX, workflow filters, and .shipper_checkpoint |
| AI Agent spans have no model/tool children | Confirm the workflow uses connected AI sub-nodes such as ai_languageModel and ai_tool, and that the execution completed before the shipper ran |
| Flatted parse errors | execution_data.data is often pointer-compressed. Use a flatted decoder, not plain JSON.parse |
Other options
- n8n Cloud: The shipper requires database access, so it does not work with n8n Cloud. For Cloud workflows, log a small number of summary events with the HoneyHive Events API, or instrument the application that triggers n8n.
Related
Tracing via API
Full REST logging guide for sessions, model events, and batches
TrueFoundry Integration
Automatic OTLP trace export from an AI gateway
Tracing Introduction
Sessions, event types, and trace hierarchy
Enrich Your Traces
Add metadata, user properties, and feedback

