n8n-nodes-firma) gives you a dedicated Firma node with 83 operations, a trigger node with automatic webhook management, and a native credential type. This guide covers three integration paths:
- Firma node (recommended) — Select a resource and operation from dropdown menus. Built-in fields for recipients, settings, and document sources.
- Firma Trigger node — Automatically registers a webhook with Firma when the workflow activates. Starts a workflow when a Firma event occurs (e.g.
signing_request.completed). - AI Agent tool — The Firma node works as a native tool for n8n AI Agents, so the agent can send signing requests autonomously from natural-language instructions.
Prerequisites
- A Firma account with an API key
- An n8n instance (Cloud or self-hosted, v1.0+). Path 3 (AI Agent tool) requires n8n v1.47+
- At least one Firma template with signing fields configured
Install the community node
From Settings
- In n8n, go to Settings > Community Nodes
- Click Install
- Enter
n8n-nodes-firma - Agree to the risks and click Install
From the Workflow Editor
You can also install without leaving your workflow:- Open any workflow and click + to add a node
- Search for Firma in the node search panel
- If the node is not yet installed, n8n shows it under Community Nodes in the search results with an Install option
- Select it to install and add it to your workflow in one step
For self-hosted n8n, you can also install manually:
cd ~/.n8n/nodes && npm install n8n-nodes-firma, then restart n8n.Set up credentials
- In the n8n editor, click the Credentials icon in the left sidebar
- Click Add Credential and search for Firma API
- Set the fields:
- API Key: paste your Firma workspace API key (found in Workspace Settings > API)
- Webhook Secret (optional): paste your webhook signing secret if you plan to use the Firma Trigger node with signature validation. A secret is automatically generated when you enable webhooks for your workspace or company. To find it, go to Workspace Settings > Webhooks (or Company Settings > Webhooks) and copy the secret using the show/copy controls. If you need to rotate the secret later, click Regenerate; the old secret stays valid for a 7-day grace period. See the webhooks guide for full setup.
- Leave Environment set to Production unless you are connecting to a self-hosted or staging instance
- Click Save
Path 1: Firma node
The Firma node lets you interact with the Firma API through dropdown menus instead of manually configuring HTTP requests.Send a signing request from a template
- Add a Firma node to your workflow
- Select your Firma API credential
- Set Resource to Signing Request and Operation to Create and Send
- Fill in:
- Name: a name for the signing request (e.g.
{{ $json.contract_name }}) - Document Source: Template
- Template ID: the ID of your Firma template
- Name: a name for the signing request (e.g.
- Under Recipients, click Add Recipient and fill in:
- Email:
{{ $json.signer_email }} - First Name:
{{ $json.signer_first_name }} - Designation: Signer
- Order: 1
- Email:
- Optionally expand Additional Fields to set language or expiration, and Settings to control download permissions, OTP verification, or email notifications
id of the new signing request for use in downstream nodes.
Create a draft first, then send after approval
If you need a human review step before sending:- Use the Create operation (creates a draft, does not send)
- Add an n8n Wait or approval node in the middle of your workflow
- Use the Send operation in a later node, passing the signing request ID from the Create step
Other common operations
The node supports all 8 resources (Signing Request, Template, Webhook, Workspace, Company, Domain, Email Template, JWT) with a total of 83 operations. See the full list in the API reference.
Wire it into a trigger
Connect the Firma node to whatever upstream trigger drives your workflow. Common patterns:- Form Trigger > Firma: a customer fills an n8n form, the workflow immediately sends them a contract to sign
- Webhook Trigger > Firma: your app posts to an n8n webhook when a deal closes, n8n fires the signing request
- Schedule Trigger > database query > Firma: nightly batch of renewal contracts goes out automatically
Path 2: Firma Trigger node
The Firma Trigger node starts a workflow when a Firma event occurs. Unlike a generic Webhook node, it automatically registers and deregisters the webhook with Firma when you activate or deactivate the workflow.Set up a trigger
- Create a new workflow and add a Firma Trigger node as the trigger
- Select your Firma API credential
- In Events, select which events to listen for (e.g.
Signing Request Completed,Signing Request Recipient Declined) - Optionally set Workspace ID to scope the webhook to a single workspace. Without it, the webhook receives events for all workspaces in the company.
- Activate the workflow
Available events
The trigger supports all 27 Firma webhook events:- Signing Request: created, sent, viewed, completed, expired, cancelled, deleted, updated, certificate generated, reminder sent, field filled, document updated
- Recipients: added, signed, declined, updated, identity changed
- Templates: created, updated, deleted, field added, used
- Workspaces: created, updated, deleted
- Domains: verified, verification failed
Branch on event type
Add a Switch node after the Firma Trigger to route on{{ $json.type }}. A common setup:
signing_request.completed> update a record in your CRM, send a confirmation email, kick off provisioningsigning_request.recipient.declined> notify salessigning_request.expired> re-send or move the deal to lost
Signature validation
If you added a Webhook Secret to your Firma API credential, the trigger node automatically validates theX-Firma-Signature header using HMAC-SHA256. It also supports X-Firma-Signature-Old for secret rotation grace periods. Events with invalid or missing signatures are rejected.
HTTPS required
Firma’s webhook API requires HTTPS URLs. n8n Cloud handles this automatically. For self-hosted instances, use a reverse proxy with TLS or a tunnel service during development:Path 3: Firma as a tool for the n8n AI Agent
The Firma node hasusableAsTool enabled, which means it works natively as a tool for the n8n AI Agent node. The agent can browse templates, create signing requests, check status, and more, all from natural-language instructions.
- In your AI Agent workflow, add a Firma node as a tool input on the agent
- Select your Firma API credential
- Choose which resource and operation to expose (e.g. Signing Request > Create and Send)
- One for Template > List (so the agent can find the right template)
- One for Signing Request > Create and Send (so it can send documents)
- One for Signing Request > Get (so it can check status)
Embedded signing
If your workflow ends with the signer completing the document inside another app rather than over email, fetch the recipient’ssigning_request_user_id from the API response and embed Firma’s signing UI in an iframe:
Using the HTTP Request node instead
If you prefer not to install community nodes, you can call the Firma API directly with the HTTP Request node and a Header Auth credential.Create a Header Auth credential
- In the n8n editor, click the Credentials icon in the left sidebar
- Click Add Credential and search for Header Auth
- Set the fields:
- Name (credential name):
Firma API - Name (header):
Authorization - Value: paste your Firma API key
- Name (credential name):
- Click Save
Send a signing request
Add an HTTP Request node and configure it:
Paste this into the JSON body field, using n8n expressions to pull values from upstream nodes:
The
create-and-send endpoint creates the signing request and sends it to recipients atomically. If you need a human review step before sending, use POST /signing-requests to create a draft, then POST /signing-requests/{id}/send in a later node after approval.Receive webhooks without the community node
Use an n8n Webhook trigger node and register its URL manually with Firma:- Create a new workflow with a Webhook node as the trigger. Set HTTP Method to
POSTand copy the Production URL. - In the Firma dashboard, go to Settings > Webhooks, click Add webhook, paste the n8n production URL, and select your events.
- Add a Switch node after the Webhook trigger to route on
{{ $json.body.type }}.
Bonus: MCP connection for AI-assisted building
Firma ships a Docs MCP server that you can connect to any MCP-capable client (Claude Desktop, Cursor, etc.) while building n8n workflows. It lets the AI search Firma documentation in real time, so generated configs reference the correct endpoints, fields, and webhook event names. Add the server using the URL:Next steps
- API authentication — API keys and workspace scoping
- Webhooks guide — event types, payloads, and signature verification
- Embedded signing — in-app signing experience
- Creating workspaces — multi-tenant setups for SaaS apps
- Complete setup guide — end-to-end Firma integration walkthrough
- API reference — full endpoint documentation