Weekly HubSpot champion job change alerts, powered by Clay

By General Input

Every Monday at 8am ET, we scan your HubSpot champions for job changes with Clay, refresh their record, and DM the account owner in Slack.

Integrations

  • Clay
  • HubSpot
  • Slack

Type

Agentic Task

Categories

  • Sales
  • Operations

Build me an agent workflow that runs every Monday at 8am America/New_York on a cron trigger. Its job is to detect job changes among my HubSpot champions and kick off a per-owner reactivation motion in Slack.

Step 1. Pull the source list from HubSpot. Use HubSpot's Search Contacts to fetch every contact who is a member of the "Champions" list or the "Closed Won Buyers" list. For each contact I need the contact id, first name, last name, primary email, LinkedIn URL, current company, current job title, the do-not-contact flag, and the HubSpot owner id. Skip anyone with do-not-contact set to true before doing anything else.

Step 2. Detect job changes with Clay. I have already built a "detect job change" routine in the Clay UI. Take the surviving contacts, batch them in chunks of up to 100, and call Clay's Run a Routine with each batch, passing email and LinkedIn URL as inputs. The routine id should be a parameter I configure at setup time. Run a Routine returns a routine_run_id with status in_progress, so poll Get Routine Run Results on a reasonable interval (start around 15 seconds, back off exponentially, cap at a few minutes total) until status is complete or failed. Honor 429 responses using the Retry-After header. If any batch fails, log it and continue with the rest.

Step 3. Identify real changes. For each Clay result, compare the current_company Clay returns to the company HubSpot had on file. Consider it a change only when the new company clearly differs (ignore casing, trailing Inc/LLC/Ltd noise, and whitespace). Ignore results Clay marks as low confidence.

Step 4. Refresh HubSpot for each real change. Call HubSpot Update Contact to set the new company, new job title, and a custom property called job_change_detected_at with today's date in ISO 8601. If job_change_detected_at does not exist yet, tell me at setup time so I can create it as a datetime property in HubSpot first.

Step 5. Alert the account owner in Slack. For each changed contact, look up the HubSpot owner via Get Owner to get the owner's email. In Slack, find the matching user by email (List Users if needed, then match on profile.email), then call Slack Open a Conversation to get a DM channel id, and Send a Message with a short DM that includes: the contact's name, the old role at the old company, the new role at the new company, a two-line context blurb summarizing the new company (industry, size, why it matters) using the enrichment fields Clay returned, and a three to four sentence draft reactivation opener the rep can copy and paste. Keep the tone warm and human, not markety.

At the end of the run, log a compact summary: how many contacts were scanned, how many job changes were detected, how many HubSpot updates succeeded, how many Slack DMs were sent, and any errors per step. Make the HubSpot list names, the Clay routine id, and the schedule easy to change without editing the workflow instructions.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredTurn Mailjet email clicks into ranked HubSpot follow-upsiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsA searchable RFP answer library your bid team drafts fromSee which target accounts just started advertising on LinkedInAccount health board that puts product usage next to your CRMLook up a customer's full chat history mid conversationLusha prospecting workbench with credit-safe reveals