1. Store the key as a credential
1
Create a credential
In n8n, open Credentials → Add credential and choose Header Auth.
2
Fill it in
Name: Call the credential Scoutworks. Choose Save.
Authorization. Value: Bearer followed by the key, for example:2. Build the workflow
1
Add a Schedule Trigger
Set it to run every hour.
2
Add an HTTP Request node
- Method: GET
- URL:
https://api-demo.scoutworks.app/api/v1/waiting-list?limit=200 - Authentication: Generic Credential Type → Header Auth → Scoutworks
3
Turn on pagination
Under Options → Add option → Pagination:
- Pagination mode: Update a Parameter in Each Request
- Type: Query. Name:
cursor. Value:{{ $response.body.nextCursor }} - Pagination Complete When: Other. Complete Expression:
{{ $response.body.nextCursor === null }}
4
Split the list
Add a Split Out node. Field to split out:
data. Each waiting-list entry is now one item.Read only what changed
For members, events and badge records, n8n can ask only for what changed since its last run. The workflow keeps the mark in its own static data.1
Add the filter to the request
In the HTTP Request node, use this URL (members as the example):Under Query Parameters, add Name:
updatedSince. Value: {{ $getWorkflowStaticData('global').since || '2000-01-01T00:00:00Z' }}. Keep the pagination option above.2
Save the mark
After the HTTP Request node, add a Code node (Run Once for All Items):
3
Add a weekly full read
A sync does not report records that were deleted or left the list. Add a second workflow on a weekly Schedule Trigger with the same HTTP Request node but without
updatedSince. Replace your copy with what it returns: a record that is not in it was removed.updatedSince, nextUpdatedSince and the weekly full read.
3. Switch to your group
In the HTTP Request node, changeapi-demo.scoutworks.app to api.scoutworks.app. In the credential, replace the sandbox key with your own. Your key needs the waiting-list:read scope.
Tips
- Only new entries. Keep the IDs you have already seen in a data table, and filter them out with a Remove Duplicates node set to “Remove items processed in previous executions”.
- Writing to Google Sheets. In the Google Sheets node, set Cell Format to Use Format From n8n (RAW), so that a name starting with
=is stored as text, not run as a formula. - Errors. Turn on Options → Response → Include Response Headers and Status, and branch on
error.codeif the status is not 200. See Errors.