Quick overview
This workflow runs every Monday, checks a contractor roster against 17 US state licensing portals using Apify actors, and posts a single Slack digest highlighting expired licences, status changes, expiring licences within 30 days, and lookup issues.
How it works
- Runs every Monday at 06:00 on a schedule.
- Loads your contractor roster (company, state, optional licence number, and optional previously known status).
- Maps each contractor’s state to the correct Apify licence-lookup actor and builds the actor input, while labeling contractors in unsupported states as unverifiable.
- Runs the Apify actor for each covered state to retrieve licence status and expiry details.
- Classifies each result into alert tiers such as expired, status-changed, expiring within 30 days, lookup failed, ambiguous match, not found, or no expiry published.
- Creates one grouped digest for all non-OK items and sends it to a Slack channel, otherwise produces no alert.
Setup
- Use a self-hosted n8n instance and install the
@apify/n8n-nodes-apify community node.
- Add an Apify API token credential and ensure the Apify actors used for the supported states are available to your Apify account.
- Replace the sample roster with your real data source (for example Google Sheets, Airtable, or a database) and provide
company, 2-letter state, and optionally license_number and known_status.
- Add a Slack credential, set the target channel, and enable the Slack node to deliver the digest.