Weekly champion job change tracker for Salesforce

Every Monday at 8am, catch the buyers who quietly switched jobs, file a follow-up task on the right rep, and DM the new pitch into Slack.

Agentic Task
CrustdataSalesforceSlackSalesLead EnrichmentNotifications & AlertsResearch & Monitoring

Every Monday at 8am, run a champion job change tracker across my Salesforce closed-won contacts and tell the right rep when one of their champions has moved to a new company.

Trigger: a weekly cron, Mondays at 8am in my local timezone.

Step 1. Use Salesforce Get Many Contacts (SOQL) to pull every Contact whose AccountId belongs to an Account with at least one Closed Won Opportunity and that has a LinkedIn URL on file. For each contact return the Contact Id, Name, LinkedIn URL, Email, the Account Id, the Account Name, and the Owner (OwnerId, Owner Name, Owner Email). If LinkedIn URL lives on a custom field in my org, use that custom field.

Step 2. Feed those LinkedIn URLs into Crustdata Enrich Person, batched up to 25 URLs per request. Only use the canonical /in/<slug> form, never the URN form. Pace the calls sequentially because Crustdata person enrich is 15 requests per minute. For each profile, read back current_employer (name and linkedin_company_url where available) and current title. Skip Crustdata PE01 and PE03 errors silently and keep going.

Step 3. For each champion, decide whether they have changed jobs. Compare the Crustdata current employer to the Salesforce Account Name on the contact. Prefer matching on the LinkedIn company URL or company domain when either is available, and fall back to a fuzzy name match for the rest. If the enriched employer still matches the stored Account, skip the contact entirely. Otherwise treat it as a probable job change.

Step 4. For every flagged contact, use Salesforce Create Task to file a task on the contact. Set WhoId to the Contact Id, OwnerId to the existing account owner, ActivityDate to 3 days from today, Priority to High, Status to Not Started, and Subject to something like "Champion job change: <Contact Name> now at <New Company>". In the task description, include the old company, the new company, the new title, the LinkedIn URL, and a one-line note that this was auto-detected from a LinkedIn profile change.

Step 5. Group the flagged contacts by owner and use Slack Send a Message to notify each owner. If the owner has a Slack DM available, DM them. Also post a consolidated summary to a #champion-moves channel if one exists. Keep each message concise: one block per champion containing their name, the old company (which was their Salesforce Account), the new company, the new title, a link to the Salesforce contact, the LinkedIn URL, and a 2 to 3 sentence draft re-introduction that the rep can paste straight into Gmail or LinkedIn. The draft should be warm, congratulatory, reference the prior working relationship, and end with a soft ask to reconnect.

Rules to enforce. Never message an owner if none of their champions changed jobs. Never create a Salesforce task for a contact whose enriched employer still matches the stored Account. Skip anyone without a LinkedIn URL on the Salesforce contact. Do not retry on Crustdata PE01 or PE03 errors. Group the Slack message by owner so each rep sees their own list, not the whole company's.

Additional information

What does this prompt do?
  • Pulls your closed-won contacts out of Salesforce every Monday morning and checks which ones have moved to a new company.
  • Flags only the real job changes by comparing each contact's current employer to the account name already on their Salesforce record.
  • Files a 3-day follow-up task on the account owner so the new opportunity does not slip through the cracks.
  • Sends each owner a tidy Slack message that lists their champions, the new company and title, and a ready-to-paste re-introduction they can fire off in Gmail or LinkedIn.
What do I need to use this?
  • A Salesforce account with access to your contacts, opportunities, and tasks.
  • A Crustdata account so we can look up each champion's current employer from their LinkedIn URL.
  • A Slack workspace, plus the channel or DM destination where you want owners to be pinged.
  • LinkedIn URLs stored on your Salesforce contacts. Champions without a LinkedIn URL on file are skipped.
How can I customize it?
  • Change the schedule. Monday at 8am is the default, but you can run this daily, every other Monday, or on a Friday wrap-up instead.
  • Pick the Slack destination. Send each owner a DM, post to a shared #champion-moves channel, or do both.
  • Tune the follow-up task. Change the 3-day due date, the subject line, or the priority on the Salesforce task that gets filed.
  • Adjust the contact filter. Limit it to a specific product line, region, owner, or only contacts from deals closed in the last 24 months.

Frequently asked questions

How does it know a champion actually changed jobs?
It compares the current employer Crustdata returns for each LinkedIn profile against the account name already stored on the Salesforce contact. If they match, the champion is still in seat and we skip them silently. If they do not match, we treat it as a probable job change and surface it.
What happens to contacts without a LinkedIn URL on file?
They are skipped. The workflow only looks at closed-won contacts that have a LinkedIn URL saved in Salesforce, so the first time you run this it is a good prompt to backfill that field on your best champions.
Will reps get spammed with old job changes every week?
No. The workflow keys off the current employer on the LinkedIn profile, so once an owner updates the Salesforce contact's account to the new company, that champion stops showing up in next Monday's run.
Can I send the summary to a shared channel instead of DMing each owner?
Yes. You can route everything to a single #champion-moves channel, send DMs to each owner, or do both. Either way the message is grouped by owner so it is easy to scan.
Does this work with Salesforce Essentials or only Enterprise?
It works on any Salesforce edition that lets you query contacts and opportunities and create tasks, which includes Professional, Enterprise, and Unlimited. Essentials customers should confirm their edition allows custom SOQL queries before turning this on.

Stop losing deals because your champion quietly switched jobs.

Connect Salesforce, Crustdata, and Slack once, and Geni runs this every Monday at 8am so you reach out during the warm window.