← GTM Recipes

CRM → Sequencer · CRM

When your champion changes jobs.

Your customer contacts from the CRM in one list. ListPlus detects the move, checks whether the new company fits, finds the new work email and hands off – to the account owner if the company is already a customer, otherwise into the sequence.

Your agent sets it up, the list runs

Champions · 20 contacts0.5 credits per profile
Mia WinterHelioWorks → KonturYes · Warm
Ben FischerNordwerk → Seeblick · customerYes · notify owner
Ava SteinKontur · profile unclearCheck
Noah WolfNordlichtNo

“Yes” only when the old position has ended · “Check” on weaker hints

Example · fictional contacts, real prices

Watch it

Who does what

Set up once, the list keeps running.

Who does what – from job change to handoff
Who does what – from job change to handoffClaude CodeListPlusYour teamSequencer · CRMCustomer → ownertask in the CRM“Check” → teamno automationClosed-won from the CRMname · company · LinkedInCreate list, column, rulerule starts pausedDetect the job changeYes / Check / No0.5 cr per profileNew company: a customer?match with the customer listFind, verify the new emailcharged only on a hitbudget 10 cr per contactSee estimate, switch rule ononce – then the list runs“Warm” → sequencenever the cold sequence
  1. Claude CodeClosed-won from the CRMname · company · LinkedIn
  2. Claude CodeCreate list, column, rulerule starts paused
  3. ListPlusDetect the job changeYes / Check / No0.5 cr per profile↳ Your team: “Check” → team – no automation
  4. ListPlusNew company: a customer?match with the customer list↳ Sequencer · CRM: Customer → owner – task in the CRM
  5. ListPlusFind, verify the new emailcharged only on a hitbudget 10 cr per contact
  6. Your teamSee estimate, switch rule ononce – then the list runs
  7. Sequencer · CRM“Warm” → sequencenever the cold sequence

Setup

Build this workflow.

Your contacts from closed-won deals (name, company, LinkedIn URL) – as a CSV or from the CRM. A reference list of your customers for the match.

What does a run cost?

Detection reads the profile: 0.5 credits per contact ($0.02 on Pro). The new address on a detected move: expected 2.1 credits, at most 8 credits – only on a hit. The rule keeps the budget per contact you set.

  1. Claude Code by call

    Create the list from the CRM

    The agent reads the closed-won contacts from the CRM and creates the list “Champions”. The column “Job change” (Yes / Check / No) and the match against the customer list come with it.

  2. ListPlus runs automatically

    Detect the job change

    The current profile is read and compared with the company in the list. “Yes” only when the old position is marked as ended; “Check” on weaker signs. A hard bounce of the old address counts as a hint.

  3. ListPlus runs automatically

    Check the new company

    Is the new company already a customer or in an open deal? Then the contact belongs to the owner – never in a new-logo sequence. If it fits the ICP, the play continues.

  4. ListPlus runs automatically

    Find and verify the new address

    The rule looks up the work email at the new company – with a budget per contact – and verifies it. Only with a deliverable address does the status change to “Warm”.

  5. Your team manual in ListPlus

    Approve the rule

    The rule is created paused. You see the estimate and switch it on. First message in week two at the earliest – and never with internal numbers from the old account.

  6. Sequencer · CRM runs automatically

    Hand off

    “Warm” → the sequence for former champions (never the cold one). Existing customer → a task for the owner in the CRM.

With your agent

Give your agent this brief.

The “Set up” right for the connection, a customer list for the match, a pipeline to the sequencer or the CRM.

The same call from Claude Code, ChatGPT, Cursor or an n8n HTTP node – MCP and REST offer the same tools.

Agent guide (.md) ↗
Agent prompt

Create the list “Champions” and add my closed-won contacts from HubSpot (name, company, LinkedIn). Add the column “Job change” (Yes / Check / No) and a match against my list “Customers”. Rules, paused: job change = Yes and new company not a customer → find the work email (budget 10 credits per contact) and verify it. Job change = Yes, new company not a customer and email check valid → status “Warm”, hand to the lemlist pipeline. Job change = Yes and customer → status “Notify owner”. Show me the estimate before I activate the rules.

Tools and sample call

describe_setup · create_list · add_records · add_column · create_trigger · update_trigger · query_records

add_column({
  "list_id": "<shared_list_id>",
  "columns": [
    {
      "kind": "job_change",
      "title": "Job change",
      "with_hints": true
    }
  ]
})
create_trigger({
  "list_id": "<shared_list_id>",
  "name": "Move → new email",
  "on": "changed",
  "conditions": {
    "groups": [
      [
        {
          "field": {
            "kind": "jobChange"
          },
          "op": "isAnyOf",
          "values": [
            "changed"
          ]
        },
        {
          "field": {
            "kind": "reference",
            "listId": "<customers_list_id>"
          },
          "op": "isNotIn"
        }
      ]
    ]
  },
  "actions": [
    {
      "kind": "enrich",
      "fields": [
        "email"
      ],
      "budget_per_record": "10"
    }
  ],
  "activate": false
})
create_trigger({
  "list_id": "<shared_list_id>",
  "name": "Valid address → Warm",
  "on": "match",
  "conditions": {
    "groups": [
      [
        {
          "field": {
            "kind": "jobChange"
          },
          "op": "isAnyOf",
          "values": [
            "changed"
          ]
        },
        {
          "field": {
            "kind": "emailCheck"
          },
          "op": "isAnyOf",
          "values": [
            "ok"
          ]
        },
        {
          "field": {
            "kind": "reference",
            "listId": "<customers_list_id>"
          },
          "op": "isNotIn"
        }
      ]
    ]
  },
  "actions": [
    {
      "kind": "status",
      "status": "Warm"
    },
    {
      "kind": "pipeline",
      "pipeline": "lemlist"
    }
  ],
  "activate": false
})

Try it with your data

A move counts only when the old position is marked as ended (“Yes”); “Check” stays with your team. Nothing is handed off without a deliverable new address – the most common reason this play otherwise fails.

Connect Claude Code