# HarvestLab existing-run templates for n8n

Review contact changes or price observations from an existing completed Apify run.
These templates use n8n's built-in nodes and prepare a handoff for your review.
They do not launch an Actor, schedule work, write to a CRM or update a saved baseline.

| File | Required source | Review output |
| --- | --- | --- |
| `contact-existing-run.json` | A succeeded [Website Contact Extractor](https://apify.com/harvestlab/contact-extractor) run with `exportCrm: true` | Changed company and selected-contact records, plus a retained candidate baseline |
| `amazon-existing-run.json` | A succeeded [Amazon Scraper](https://apify.com/harvestlab/amazon-scraper) run with useful priced products | New price observations, plus a candidate feed retaining previously accepted products |

## First review

1. Download the JSON you need. In n8n, choose **Import from File** in the workflow
   menu and import it. Keep the workflow inactive.
2. Open **Configure existing run**. Replace `REPLACE_WITH_SUCCEEDED_RUN_ID` with
   one exact run ID you are permitted to read. Keep the fixed expected Actor ID.
   Wrong-Actor and unfinished runs are refused.
3. On every HTTP Request node, select an **HTTP Header Auth** credential with
   header name `Authorization` and value `Bearer <your Apify token>`. Save the
   token only in n8n's credential manager. Never put it in the configuration Code
   node, a URL or a shared workflow export.
4. Leave the empty `previousSnapshot`, `baselineReference: "initial-empty"` and
   `maxRows: 1000` for your first review. The configuration allows up to 10,000
   records; Amazon's page size defaults to 100 and allows up to 1,000.
5. Run manually. Inspect `delta`, `candidate_baseline`, `stats` and
   `review_issues` in the review output. The final disabled destination node is
   an unimplemented placeholder and throws if enabled. Leave it disabled.

Contact reads the native completion manifest and CRM JSON file. A run without
completed native CRM exports must be corrected at its source; this workflow does
not create missing files or start another scrape. The handoff selects eligible
contacts rather than exporting every email on each page. Domain MX evidence does
not prove mailbox deliverability; phone formatting does not prove reachability.

Amazon reads all advertised dataset pages within the configured cap and accepts
only qualified price observations with consistent product identity and source
timestamps. Missing prices never become zero. Dataset completeness does not prove
that every requested product was extracted, and a timestamp does not prove the
price is still current. Zero qualified products stops the handoff. Filtering a row
here does not reverse any charge incurred by the original Actor run.

## Repeat a review safely

Supply the previously accepted snapshot in `previousSnapshot` and its actual
revision in `baselineReference`. Keep the complete snapshot envelope from
`candidate_baseline`, not just its record array. A nonempty snapshot cannot use
`initial-empty` as its revision.

Replaying accepted observations produces no duplicate changes. Older observations
and conflicting values at the same source time are suppressed and reported for
review. Missing records remain in the candidate baseline. Empty contact fields
do not erase accepted values; weaker verification does not replace stronger
evidence. Source dates must be valid ISO timestamps with a timezone.

To write into another system, first implement and test your own destination
adapter using `delta`. Contact records use `company_key` and `contact_key`;
Amazon observations use `product_key` plus `scraped_at`. Preserve missing records
and handle partial failures. Promote the candidate baseline only after a durable
acknowledgement tied to the source run, accepted baseline revision and exact
payload. These templates do not implement that acknowledgement or baseline
promotion. A review output or handoff ID alone is not proof of a successful write.

## Privacy, costs and compatibility

The distributed files contain no credentials, real run IDs, contact data or saved
baselines. Manual previews will contain your source data. Check your n8n instance's
effective execution-retention settings and keep real executions, exports and
baselines private. Never pin real data into a workflow you plan to share.

Each GET has a 30-second timeout, up to three attempts and redirects disabled.
The workflow timeout is five minutes. Reading existing data avoids a new Actor
run, but Apify storage/transfer and your n8n hosting or execution charges may
still apply. See [Apify platform pricing](https://apify.com/pricing) and your n8n
plan. This download does not change the source Actor's prices or billing rules.

This October 26, 2026 release passed six local synthetic engine scenarios on
**n8n 2.44.7 with Node.js 24.22.1**: Contact first review and replay; Amazon
pagination, replay and missing-product retention; and unfinished-run refusal.
Use your own permitted existing run to verify credentials, source compatibility,
privacy settings and output before connecting a destination. Older n8n versions,
n8n Cloud and your destination integration are not certified by those tests.

See [n8n import instructions](https://docs.n8n.io/workflows/export-import/).
