DOCS / SDKS / N8N
VIEW RAW

n8n community node

n8n-nodes-humanhours adds a humanhours node + a humanhoursApi credential to n8n. Drop it at the end of any workflow that runs an AI agent and the dashboard fills in.

Install

In n8n Cloud or self-hosted:

  1. Open Settings → Community Nodes.
  2. Click Install a community node.
  3. Enter the package name:
n8n-nodes-humanhours
  1. Confirm the consent checkbox, click Install.

The humanhours node shows up under the Transform section of the node picker after the install completes. n8n self-hosted may need a restart.

Listing on npm: npmjs.com/package/n8n-nodes-humanhours.

Credential

Create a humanhoursApi credential:

  • API Keyhh_live_... from /api-keys in the dashboard. Paste the raw value, no Bearer prefix; the node prepends it for you.
  • Base URL — defaults to https://humanhours.dev. Override only for self-hosted or local dev.

The credential's Test connection button hits GET /api/v1/agents to verify.

Track Event operation

Field Required Description
Agent ID yes slug, e.g. support-classifier
Task Type yes one of the 50 built-in keys, or your custom
Outcome yes success / failure / needs_review
Agent Duration (seconds) no omit for 0
Human Baseline (minutes) no override the built-in for this event
Model no model id, ideally the OpenRouter id (e.g. anthropic/claude-opus-4.8). With tokens, auto-prices the run into net_saved
Tokens In / Tokens Out no prompt and completion token counts; used with Model to compute the real cost
Agent Cost no pass the cost directly instead of deriving it from Model + tokens
Metadata no free-form JSON object

All fields except Agent ID, Task Type, and Outcome live under Add Field (Additional Fields).

The node sends an Idempotency-Key built from the n8n execution id, the node-run index, and the item index. Retries of the same node-run are deduped (you get the original event back), while loops, Split-In-Batches, sub-workflows, and fan-in patterns each record their own event.

Patterns

Pattern 1: end of a single-node agent. Drop a humanhours node at the end of an OpenAI / Claude / HTTP-Request flow. Wire agent_id to a workflow constant, task_type to whatever the workflow does.

Pattern 2: branch on outcome. Use an If node to set outcome based on the agent's structured output, then feed both branches into a single humanhours node.

Pattern 3: real net ROI from model cost. Set Model to the OpenRouter id of the model you ran (e.g. anthropic/claude-opus-4.8), and wire Tokens In / Tokens Out to {{ $json.usage.prompt_tokens }} / {{ $json.usage.completion_tokens }}. HumanHours prices the run automatically and subtracts it into net_saved. See Model cost and net ROI.

Company enrichment operations

The same node also drives company enrichment: turn a domain into an outside-in wage breakdown, then pull it for outreach. Pick the Operation in the node.

Operation What it does Charges a lookup?
Enrich Company Researches a single Domain and adds it to your library. Synchronous, 15-30s. Optional External ID and Tags; turn on Refresh to re-run an existing entry. Yes, when the domain is new or Refresh is on
Get Company Reads one company back from your library. No
Refresh Company Re-enriches an owned company. Yes
List Companies Lists your library. Format JSON emits one item per company; Format CSV emits a single csv field. Filter by Tag, cap with Limit (max 1000). No
Queue Bulk Enrichment Queues a background job for a list of Domains (one per line, max 1000). Returns a job_id straight away. Per domain, as the worker processes each one
Get Job Status Polls a bulk job. Read percent and wait for status to reach done. No

Pattern 4: enrich a prospect list. Read domains from a sheet, feed them into Queue Bulk Enrichment, then loop Get Job Status behind a Wait node until status is done, and finish with List Companies (Format CSV) to hand a ready file to your outreach step.

Pattern 5: enrich on demand. When a new account lands in your CRM, fire Enrich Company on its domain and read business_case.summary straight into your first-touch message.

Lookups are a hard cap with no overages (Pro 100 per month, Agency 500 pooled). Hitting the limit returns lookup_quota_exceeded until you upgrade.


Found a typo or want to suggest an edit? Email support@triadagency.ai.