> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acrelens.com/llms.txt
> Use this file to discover all available pages before exploring further.

# n8n integration

> Run AcreLens land analyses inside any n8n workflow with our verified community node — drag-and-drop on n8n Cloud or self-hosted.

The AcreLens [n8n](https://n8n.io) **verified community node** wraps our REST API as native n8n nodes, so you can run land analyses, fetch reports, and route completed reports into any downstream automation — Slack, Google Sheets, Airtable, your CRM, anywhere n8n already connects.

<Note>
  **Verified by n8n** — AcreLens passed n8n's review and is shipping in n8n Cloud's verified-nodes catalog as of May 7 2026. Drag-and-drop on cloud, no install required.
</Note>

## What ships

| Node | Wraps | Use |
| - | - | - |
| **AcreLens** (Run Analysis) | `POST /v1/analyze` | Kicks off a new land analysis. Returns a report ID immediately. |
| **AcreLens** (Get Report) | `GET /v1/reports/{id}` | Fetches a report by ID once it's complete. |
| **AcreLens Trigger** | Webhook receiver | Starts a workflow when AcreLens delivers a completed report. Verifies the HMAC signature automatically. |

## Install

### Self-hosted n8n

In your n8n UI:

1. Go to **Settings → Community Nodes**
2. Click **Install a community node**
3. Enter `n8n-nodes-acrelens`
4. Tick the risk-acknowledgement checkbox and click **Install**

Or from the command line, in your n8n install directory:

```bash theme={null}
npm install n8n-nodes-acrelens
```

Restart n8n. Search for "AcreLens" when adding a node.

### n8n Cloud

No install needed. AcreLens is a **verified** node, so it's already in n8n Cloud's regular node search:

1. Open any n8n Cloud workflow
2. Click the **+** to add a node
3. Search for `AcreLens`
4. Pick either **AcreLens** (the action node) or **AcreLens Trigger** (the webhook receiver)

That's it. The node is approved + shipped — no admin install, no npm step, no community-node risk acknowledgement.

## Connect your API key

1. In n8n, go to **Credentials → Add Credential**
2. Search **AcreLens API**
3. Paste an API key from your [dashboard](https://www.acrelens.com/dashboard/manage/api-keys). Use an `al_test_*` key for staging, `al_live_*` for production
4. (Optional) Paste your **Webhook Signing Secret** — only needed if you plan to use the AcreLens Trigger node
5. Click **Save**. n8n runs a credential test against `/v1/balance` automatically

## Two ways to handle async reports

AcreLens analyses take \~90 seconds. The node returns a `report_id` immediately, and you have two patterns for getting the completed report into your workflow.

### Pattern A — push (recommended)

Zero polling, near-zero latency. Pair the **Run Analysis** action with the **AcreLens Trigger** node:

```
[Anything] → AcreLens (Run Analysis, with webhook_url = AcreLens Trigger's URL)
                              ↓ ~90s later, async
                      AcreLens Trigger → [downstream nodes]
```

1. Drop an **AcreLens Trigger** node first. Copy its production webhook URL
2. In the **AcreLens** action node (Run Analysis), expand **Additional Fields** and paste that URL into **Webhook URL**
3. Run the action. The trigger fires when the report completes, with the full structured report body

The trigger verifies the HMAC signature on every incoming webhook, so unauthenticated POSTs to the URL are rejected automatically.

### Pattern B — poll

Simpler, but burns workflow runs while waiting:

```
[Anything] → AcreLens (Run Analysis) → Wait (90s) → AcreLens (Get Report by ID)
```

In the **Get Report** node's **Report ID** field, drag in `report_id` from the previous step's output (or use `={{ $json.report_id }}`).

## Example workflow

A minimal "analyze address from a Google Sheet, post score to Slack" workflow:

```
Google Sheets Trigger (new row)
  → AcreLens (Run Analysis) — address from {{$json.address}}, mode "off_grid"
  → Wait (90s)
  → AcreLens (Get Report by ID) — using report_id from step 2
  → Slack — post message "{{$json.property.address}} scored {{$json.scores.overall}}/100"
```

Or with the trigger pattern, no Wait step needed and the report arrives push-style.

## Troubleshooting

| Symptom | Fix |
| - | - |
| Credential test returns 401 | Key is wrong, revoked, or your account is past-due. Check at the [dashboard](https://www.acrelens.com/dashboard/manage/api-keys). |
| Trigger throws "Invalid webhook signature" | The Webhook Signing Secret on the credential doesn't match the one AcreLens used to sign the delivery. Copy it fresh from the [webhooks page](https://www.acrelens.com/dashboard/manage/webhooks). |
| Trigger throws "timestamp too old" | The webhook was a retried delivery from hours/days ago. Increase **Tolerance (Seconds)** to `86400` (24h) on the trigger node if you intentionally process backlogged deliveries. |
| Run Analysis returns `report_id` but Get Report returns 404 immediately | Reports take \~90s. Wait, or use Pattern A. |

## Links

* [npm package](https://www.npmjs.com/package/n8n-nodes-acrelens)
* [Source on GitHub](https://github.com/Hakeemwarner95/n8n-nodes-acrelens)
* [Report a bug](https://github.com/Hakeemwarner95/n8n-nodes-acrelens/issues)
* [Webhooks reference](/guides/webhooks)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.