---
title: "Documentation — PageWeave"
---

> For the full documentation index, see [PageWeave Documentation](https://pageweave.dev/docs) or fetch [llms.txt](https://pageweave.dev/llms.txt).

# n8n Integration

The official n8n nodes for PageWeave connect form submissions, tables, and rows to the rest of your automation stack. The package ships two nodes: **PageWeave** for actions and **PageWeave Trigger** for form submissions.

Use it to:

- write each form submission into a PageWeave table, CRM, helpdesk, or spreadsheet;
- export table rows as CSV on a schedule;
- import CSV rows into a table;
- read and manage forms, submissions, tables, rows, and webhook endpoints;
- call any other PageWeave API endpoint from the same credential.

Package: [@pageweave/n8n-nodes-pageweave](https://www.npmjs.com/package/@pageweave/n8n-nodes-pageweave) · Source: [github.com/PageWeave/n8n-nodes-pageweave](https://github.com/PageWeave/n8n-nodes-pageweave)

## Requirements

- n8n 2.x, self-hosted, or n8n Cloud once the package is listed as a verified community node
- A PageWeave account with an API key
- For the trigger: n8n reachable at a **public HTTPS URL** — PageWeave rejects `http://`, localhost, and private network addresses

## Install

Self-hosted n8n:

1. Open **Settings → Community nodes**.
2. Select **Install a community node**.
3. Enter `@pageweave/n8n-nodes-pageweave` and confirm.

Or install from the command line in your n8n instance:

```bash
npm install @pageweave/n8n-nodes-pageweave
```

n8n Cloud installs verified community nodes from the nodes panel. Install **PageWeave** there once the package is listed.

## Credentials

1. In PageWeave, open [Settings → API keys](https://pageweave.dev/settings/api_keys) and create a key. A read-only key can list and read; choose read and write for create, update, delete, import, and webhook changes.
2. In n8n, add a **PageWeave API** credential and paste the key.
3. Keep **Base URL** at `https://pageweave.dev` unless PageWeave support gave you another address.
4. Select **Test**. The credential calls `GET /api/v1/me`.

API keys are user-level: a key can do what its owner can do on the websites that owner can access. PageWeave end users cannot create OAuth clients, so API keys are the supported credential. A write the key's owner is not allowed to make returns `403`.

## Trigger

Starts the workflow on `form.submission.created`.

1. Add **PageWeave Trigger**, choose the website, and keep the `Form Submission Created` event. Optionally restrict delivery to specific form IDs.
2. Activate the workflow. The node creates a PageWeave webhook endpoint that points at the n8n webhook URL and enables it. Deactivating the workflow deletes that endpoint.
3. Expose n8n at a public HTTPS hostname. Local n8n needs a tunnel or public hostname before the trigger can register — PageWeave refuses localhost and private addresses with a clear error.
4. To test, select **Execute workflow** to listen on the n8n test URL, then use **Send test event** on the PageWeave endpoint page or submit the form. Test mode registers a separate endpoint for the test URL.

The trigger verifies `X-Webhook-Signature` (HMAC-SHA256 over the raw request body) on every delivery and returns `401` before the workflow runs when the signature does not match. The signing secret lives in the workflow's static data.

Output:

```json
{
  "event": "form.submission.created",
  "timestamp": "2026-11-03T10:00:00Z",
  "data": {
    "submission_id": "019f9c2a-6a1b-7a3d-8f2e-4b6c8d0e1f23",
    "form_id": "019f9c2a-6a1b-7a3d-8f2e-4b6c8d0e1f24",
    "form_name": "Contact",
    "fields": { "name": "Ada", "email": "ada@example.com" },
    "files": [],
    "submitted_at": "2026-11-03T09:59:59Z",
    "spam": { "verdict": "ham", "score": 0, "signals": {} }
  },
  "test": false
}
```

- Bot-discarded spam is never delivered. Quarantined spam is delivered with `spam.verdict = "quarantined"` so downstream nodes can filter it.
- Test deliveries carry `test: true` and sample values.
- The node keeps the endpoint in sync: changed events or form filters are applied on activation, and an endpoint that PageWeave auto-disabled after delivery failures is re-enabled.
- If the workflow's static data is lost, the trigger adopts the PageWeave endpoint that already points at this n8n URL and rotates its signing secret instead of creating an orphan duplicate.
- If the signing secret was rotated in PageWeave outside n8n, deactivate and reactivate the workflow so the node stores the current secret.

Delivery is **at-least-once**: retries and manual redeliveries can repeat an event. Deduplicate on `data.submission_id` when the downstream system cannot tolerate repeats.

## Operations

| Resource | Operations |
| --- | --- |
| Submission | Get, Get Many, Update, Delete |
| Form | Get, Get Many |
| Table | Get, Get Many, Create, Update, Delete |
| Row | Get, Get Many, Create, Update, Delete, Import, Export |
| Webhook | Get, Get Many, Create, Update, Delete, Rotate Secret, Send Test, Get Many Deliveries, Get Delivery, Redeliver |
| Custom API Call | Any relative `/api/v1/...` path |

Highlights:

- **Submissions** filter by spam verdict and read state. Detail includes uploads and spam signals. Responses are `Cache-Control: no-store` because they contain personal data.
- **Rows** accept JSON data and a publish state: Draft, Publish Now, or a scheduled timestamp. List rows support search, sort, field filters, and a published filter.
- **Row import** accepts a public HTTPS CSV URL or inline CSV content, create or create-and-update mode, and a column mapping. Up to 25,000 rows run synchronously; larger URL imports return a run that the node polls to completion (10-minute cap).
- **Row export** streams a CSV file into the binary field of your choice. Spreadsheet formula escaping is on by default; turn it off only for raw round-trip data.
- **Webhooks** are created paused and return the signing secret once. **Rotate Secret** invalidates the previous secret immediately. **Send Test** works while the endpoint is paused.
- **Custom API Call** reaches every other endpoint — pages, releases, assets, domains, analytics, and so on. It accepts only relative `/api/v1` paths and cannot override the credential's `Authorization` header.

## Examples

Importable workflows live in the [repository examples](https://github.com/PageWeave/n8n-nodes-pageweave/tree/main/examples):

- [Form submission to a table](https://github.com/PageWeave/n8n-nodes-pageweave/blob/main/examples/form-submission-to-table.json)
- [Scheduled table export](https://github.com/PageWeave/n8n-nodes-pageweave/blob/main/examples/scheduled-table-export.json)
- [Webhook delivery audit](https://github.com/PageWeave/n8n-nodes-pageweave/blob/main/examples/webhook-delivery-audit.json)
- [Row import from a CSV URL](https://github.com/PageWeave/n8n-nodes-pageweave/blob/main/examples/row-import-from-url.json)

Replace the placeholder website, form, table, and webhook IDs after importing.

## Pagination and limits

**Get Many** operations expose **Return All** and **Limit**. PageWeave uses keyset cursors and caps a page at 100 records; the node follows `next_cursor` automatically. Cursors expire after 24 hours, which does not affect a running execution.

Row imports are capped at 50,000 rows per run. Inline CSV is limited to 10 MB; larger imports must use a URL. POST requests carry an automatic `Idempotency-Key`, so **Retry On Fail** within one execution does not duplicate a record — retrying the whole execution starts a new key.

## Rate limits

PageWeave enforces per-credential limits:

| Bucket | Limit |
| --- | --- |
| Read | 600 requests/minute |
| Write | 120 requests/minute |
| CSV export | 10 requests/minute |

The node retries `429`, `503`, and concurrent idempotency `409` responses using `Retry-After`.

## Errors

Errors use PageWeave's RFC 9457 problem body: title, detail, field errors, extensions such as `template_pages`, and the PageWeave `request_id`. Enable **Continue On Fail** to emit errors as items instead of stopping the workflow.

## Security and privacy

- The node sends credentials only to the configured base URL over HTTPS and disables redirects, so the `Authorization` header cannot follow a redirect to another host.
- The trigger verifies every signature over the raw body with a constant-time comparison.
- Submissions contain personal data. Set an n8n execution data retention period that matches your privacy policy, and do not log submission payloads to services you have not disclosed.
- Use a read-only key for read-only workflows; otherwise the key carries its owner's permissions.

## AI agents

The action node can be used as an AI tool, including its write and delete operations. For approval-aware automation, connect PageWeave's MCP server at `https://pageweave.dev/mcp` through the **MCP Client Tool** node instead: PageWeave's tool descriptions and write controls live there. Treat form submissions as untrusted input and never let an agent act on submission content without review.

## Troubleshooting

- **Credential test fails with 401** — the key is missing, invalid, or revoked. Create a new key under Settings → API keys.
- **Write returns 403** — the key is read-only, or its owner lacks access to that website.
- **Trigger will not activate** — PageWeave rejected the n8n URL. Use a public HTTPS hostname or tunnel; `http://`, localhost, and private addresses are refused.
- **Deliveries return 401** — the signing secret changed outside n8n. Deactivate and reactivate the workflow.
- **No deliveries arrive** — check that the workflow is active and that the PageWeave endpoint is not paused or auto-disabled. Reactivating the workflow re-enables an auto-disabled endpoint.
- **Table delete returns 409** — a live template page still uses the table. The problem body lists the pages in `template_pages`.
- **Import returns 422** — check the CSV header, column mapping, row count (50,000 cap), and that inline content is under 10 MB.
- **Rate limited** — the node retries automatically; for bulk work, spread requests or use the export bucket for CSV.

## Resources

- [npm package](https://www.npmjs.com/package/@pageweave/n8n-nodes-pageweave)
- [GitHub repository and changelog](https://github.com/PageWeave/n8n-nodes-pageweave)
- [API reference](https://pageweave.dev/docs/api)
- [API guide](https://pageweave.dev/docs/api/guide)
- [Webhooks guide](https://pageweave.dev/docs/webhooks)
- [MCP server](https://pageweave.dev/mcp)

