Trigger Event Monitoring Setup Guide (Clay)
Connecting Clay to n8n for LinkedIn job changes, company updates, funding events.
Trigger Event Monitoring Setup Guide (Clay)
Trigger events - job changes, funding rounds, company acquisitions - represent the highest-intent moments to re-engage dead leads or expand existing accounts. This guide shows you how to build an automated monitoring system using Clay's enrichment API and n8n's workflow engine to capture these signals and route them directly into your CRM
You'll walk away with a production-ready system that tracks LinkedIn profile changes, company news, and funding events for your target accounts, then automatically creates CRM
What You Need Before Starting
Clay Account (Pro or higher)
The free tier won't cut it. You need API
n8n Instance
Self-hosted or cloud. The cloud version ($20/month) works fine for most firms. Get started at n8n.io.
LinkedIn Sales Navigator (Recommended)
Clay's LinkedIn enrichment pulls significantly better data with Sales Navigator credentials. Core subscription runs $99/month per seat.
CRM
Salesforce, HubSpot, or Pipedrive. You'll need admin rights to create custom fields and generate API
Step 1: Configure Clay API APIClick to read the full definition in our AI & Automation Glossary. Authentication
Log into Clay and navigate to Settings > API
Copy the API
In n8n, create a new credential:
- Go to Credentials > New Credential
- Select "HTTP Header Auth"
- Name it "Clay API"APIClick to read the full definition in our AI & Automation Glossary.
- Header Name:
Authorization - Header Value:
Bearer YOUR_API_KEY_HERE - Save
Test the connection by adding an HTTP Request node to a blank workflow, setting the URL to https://api.clay.com/v1/tables, and executing. You should see a 200 response with your Clay tables listed.
Step 2: Build Your Target Account Table in Clay
Clay works best when you feed it a structured list of people and companies to monitor. Don't try to monitor your entire LinkedIn network - you'll burn through credits and drown in noise.
Create a new table in Clay called "Trigger Monitoring - Active Prospects". Add these columns:
- Full Name (text)
- LinkedIn URL (text)
- Current Company (text)
- Current Title (text)
- Last Interaction Date (date)
- Account Tier (single select: A, B, C)
- Assigned BD Rep (text)
Import your target list. This should be:
- Dead leads from the past 12-24 months who went cold
- Key contacts at target accounts you're pursuing
- Former clients who left for new roles
Aim for 200-500 contacts to start. More than 1,000 and you'll struggle to act on the signals.
Step 3: Set Up LinkedIn Profile Monitoring
Add an enrichment column in Clay called "LinkedIn Profile Data". Use Clay's "Find Person" enrichment, pointing it at your LinkedIn URL column.
Configure the enrichment to run weekly (every Monday at 9 AM). This checks for profile changes without hammering the API
Add a second column called "Profile Change Detected". Use this formula:
IF(
OR(
[Current Title] != [LinkedIn Profile Data.title],
[Current Company] != [LinkedIn Profile Data.company]
),
"YES",
"NO"
)
This flags any contact whose title or company changed since your last check.
Add a third column called "Change Type" with this formula:
IF([Current Title] != [LinkedIn Profile Data.title], "Job Change",
IF([Current Company] != [LinkedIn Profile Data.company], "Company Change", "No Change"))
Step 4: Configure Company News Monitoring
Create a second Clay table called "Target Companies". Add these columns:
- Company Name (text)
- LinkedIn Company URL (text)
- Domain (text)
- Last Funding Round (text)
- Last News Check (date)
Add an enrichment column called "Company News Scan". Use Clay's "Company News" enrichment, which pulls from Crunchbase, PitchBook, and news APIs
Set filters to only flag:
- Funding rounds (Series A and above)
- Acquisitions (as acquirer or acquired)
- Executive hires (C-level only)
- Office expansions or new locations
Run this enrichment daily at 6 AM.
Step 5: Build the n8n Trigger Workflow
Create a new workflow in n8n called "Clay Trigger Event Router".
Node 1: Schedule Trigger
Set to run daily at 10 AM (giving Clay's 9 AM enrichments time to complete).
Node 2: HTTP Request (Clay - Get Profile Changes)
- Method: GET
- URL:
https://api.clay.com/v1/tables/YOUR_TABLE_ID/records - Authentication: Use the Clay APIcredential you createdAPIClick to read the full definition in our AI & Automation Glossary.
- Query Parameters:
filter=Profile Change Detected:YES
Node 3: Filter (Job Changes Only)
Add an IF node:
- Condition:
{{ $json["Change Type"] }} === "Job Change" - Route "true" to CRMnodeCRMClick to read the full definition in our AI & Automation Glossary.
- Route "false" to next filter
Node 4: HTTP Request (CRM
Configure for your CRM
- Method: POST
- URL:
https://YOUR_INSTANCE.salesforce.com/services/data/v58.0/sobjects/Lead - Authentication: OAuth2
- Body:
{
"FirstName": "`{{ $json['Full Name'].split(' ')[0] }}`",
"LastName": "`{{ $json['Full Name'].split(' ').slice(1).join(' ') }}`",
"Company": "`{{ $json['LinkedIn Profile Data.company'] }}`",
"Title": "`{{ $json['LinkedIn Profile Data.title'] }}`",
"LeadSource": "Trigger Event - Job Change",
"Description": "Job change detected: `{{ $json['Current Title'] }}` at `{{ $json['Current Company'] }}` → `{{ $json['LinkedIn Profile Data.title'] }}` at `{{ $json['LinkedIn Profile Data.company'] }}`"
}
Node 5: Slack Notification
- Method: POST
- Message:
🎯 *Job Change Alert*
*`{{ $json['Full Name'] }}`* just moved from `{{ $json['Current Company'] }}` to *`{{ $json['LinkedIn Profile Data.company'] }}`* as `{{ $json['LinkedIn Profile Data.title'] }}`
Last interaction: `{{ $json['Last Interaction Date'] }}`
Assigned to: `{{ $json['Assigned BD Rep'] }}`
<`{{ $json['LinkedIn URL'] }}`|View Profile>
Node 6: HTTP Request (Clay - Update Record)
Update the Clay record to mark it as processed:
- Method: PATCH
- URL:
https://api.clay.com/v1/tables/YOUR_TABLE_ID/records/{{ $json['record_id'] }} - Body:
{
"Current Title": "`{{ $json['LinkedIn Profile Data.title'] }}`",
"Current Company": "`{{ $json['LinkedIn Profile Data.company'] }}`",
"Profile Change Detected": "NO"
}
Step 6: Add Company News Routing
Duplicate the workflow structure for company news events.
Node 7: HTTP Request (Clay - Get Company News)
- URL:
https://api.clay.com/v1/tables/YOUR_COMPANY_TABLE_ID/records - Query Parameters:
filter=Company News Scan:NOT_EMPTY
Node 8: Filter (Funding Events)
Check if {{ $json['Company News Scan.event_type'] }} === "funding".
Node 9: CRM
For HubSpot:
- Method: POST
- URL:
https://api.hubapi.com/engagements/v1/engagements - Body:
{
"engagement": {
"type": "NOTE"
},
"associations": {
"companyIds": [`{{ $json['hubspot_company_id'] }}`]
},
"metadata": {
"body": "Funding Alert: `{{ $json['Company Name'] }}` raised `{{ $json['Company News Scan.amount'] }}` in `{{ $json['Company News Scan.round_type'] }}` from `{{ $json['Company News Scan.investors'] }}`"
}
}
Node 10: Slack Notification (Funding Channel)
Post to a dedicated #funding-alerts channel:
💰 *Funding Alert*
*`{{ $json['Company Name'] }}`* just raised *`{{ $json['Company News Scan.amount'] }}`* in `{{ $json['Company News Scan.round_type'] }}`
Lead investors: `{{ $json['Company News Scan.investors'] }}`
<`{{ $json['Company News Scan.source_url'] }}`|Read announcement>
Step 7: Set Up Error Handling and Logging
Add an Error Trigger node at the start of your workflow. Connect it to a Slack notification that posts to #n8n-errors with full error details.
Add a final node that logs all processed events to a Google Sheet for audit purposes:
- Timestamp
- Event Type (Job Change, Funding, etc.)
- Contact/Company Name
- Action Taken (CRMCreated, Note Added, etc.)CRMClick to read the full definition in our AI & Automation Glossary.
- Assigned Rep
This creates an audit trail and helps you measure ROI on the system.
Optimization Tips
Reduce False Positives
Add a "Minimum Title Level" filter. Don't alert on individual contributor moves unless they're at Director level or above.
Prioritize by Account Tier
Route Tier A account changes to individual rep DMs in Slack, not just a channel. They need to act within 24 hours.
Batch Low-Priority Events
Send a daily digest at 4 PM for Tier C accounts instead of real-time alerts. Reduces notification fatigue.
Add Sentiment Analysis
Use Clay's AI enrichment to analyze whether a job change is a promotion, lateral move, or demotion. Promotions are higher-intent reactivation opportunities.
Track Response Rates
Add a custom field in your CRM
Common Failure Points
Clay Credits Burn Too Fast
You're monitoring too many contacts or running enrichments too frequently. Cut your target list by 30% and move to weekly checks instead of daily.
Slack Channel Gets Ignored
Too much noise. Tighten your filters and route only Tier A/B events to Slack. Everything else goes to a weekly email digest.
CRM
Check your API
n8n Workflow Times Out
You're processing too many records in a single run. Add a "Limit" parameter to your Clay API
This system should take 3-4 hours to build and test. Once live, expect to spend 30 minutes per week reviewing alerts and tuning filters. The payoff is 15-20 high-intent conversations per month that wouldn't have happened otherwise.

Reviewed by Revenue Institute
This guide is actively maintained and reviewed by the implementation experts at Revenue Institute. As the creators of The AI Workforce Playbook, we test and deploy these exact frameworks for professional services firms scaling without new headcount.
Revenue Institute
Need help turning this guide into reality? Revenue Institute builds and implements the AI workforce for professional services firms.