Template · Sales

Discovery call prep

Your scheduler (Calendly, Cal.com, HubSpot meetings) posts each booking to a webhook. Claude Code researches the company and the attendee’s public professional background, and Claude turns it into a call brief: context, likely pains, the questions worth asking and what’s still unknown for qualification.

Download .json

WebhookBOOK-5521Northwind Logistics · Priya Shah, VP Financebooking.created
Pipeline
  1. Research company and attendee Claude Code · Sonnet
  2. Write call brief Claude API · Sonnet 5
  3. Post to Slack Shell
Slack#sales-callsCall brief: Northwind Logistics, Thu 10:00Posted
The pipeline

What each step does

  1. Research company and attendee

    Claude Code · Sonnet

    Researches the company and the attendee’s public professional background, with sources.

  2. Write call brief

    Claude API · Sonnet 5

    Turns the research into a one-page call brief with discovery questions and qualification gaps.

  3. Post to Slack

    Shell

    Posts the brief to Slack.

Set it up

From copy to first run

  1. Copy the pipeline JSON with the button above.
  2. In Jimothy, open Pipelines → New pipeline, paste it under “Or import a pipeline JSON” and click Import.
  3. Fill in the variables below under Pipeline settings → Variables.
  4. Triggers → Add trigger → Webhook. Have your scheduler (or a Zapier/Make step) post each booking with the fields below.

Send title (the company), description (answers to your booking questions) and the extra fields name, email, role, website and meetingTime.

Variables

What to fill in

The prompts and commands read these as {{vars.<name>}}. The examples are placeholders: replace them with your own.

VariableWhat to put in itExample
productWhat you sell.Acme, a reporting tool for finance teams
idealCustomerWho you sell to best. The brief rates fit against it.Finance teams of 50 to 500 people that close their books in spreadsheets on top of NetSu…
slackWebhookUrlA Slack incoming webhook for the channel (or a DM) that gets briefs.—
Show the pipeline JSON
{
  "jimothyPipeline": 1,
  "name": "Discovery call prep",
  "description": "Researches a booked prospect and posts a one-page call brief to Slack.",
  "icon": "rocket",
  "color": "#38bdf8",
  "repo": {
    "mode": "scratch"
  },
  "concurrency": 3,
  "variables": {
    "product": "Acme, a reporting tool for finance teams",
    "idealCustomer": "Finance teams of 50 to 500 people that close their books in spreadsheets on top of NetSuite or QuickBooks",
    "slackWebhookUrl": ""
  },
  "steps": [
    {
      "id": "research",
      "name": "Research company and attendee",
      "type": "agent",
      "description": "Researches the company and the attendee’s public professional background, with sources.",
      "harnessId": "claude-code",
      "model": "sonnet",
      "timeoutMinutes": 20,
      "prompt": "A prospect booked a call.\n\nCompany: {{issue.title}}\nWebsite: {{issue.raw.website | default:\"(not given)\"}}\nAttendee: {{issue.raw.name | default:\"(no name)\"}}, {{issue.raw.role | default:\"role not given\"}}, {{issue.raw.email | default:\"\"}}\nMeeting: {{issue.raw.meetingTime | default:\"(time not given)\"}}\nTheir answers to our booking questions:\n{{issue.description | default:\"(none)\"}}\n\nResearch on the web: what the company does, size, funding or ownership, recent news, hiring (especially finance and operations roles), and the tools they appear to use. For the attendee, look only for professional information: current role, tenure, previous companies, and anything they've published or said publicly about work. Nothing personal.\n\nWrite notes in Markdown with the URL for every fact. Label guesses as guesses."
    },
    {
      "id": "brief",
      "name": "Write call brief",
      "type": "agent",
      "description": "Turns the research into a one-page call brief with discovery questions and qualification gaps.",
      "harnessId": "anthropic-api",
      "model": "claude-sonnet-5",
      "dependsOn": [
        "research"
      ],
      "timeoutMinutes": 5,
      "prompt": "We sell {{vars.product}}. Ideal customer: {{vars.idealCustomer}}.\n\nResearch notes:\n{{steps.research.output | truncate:12000}}\n\nBooking answers:\n{{issue.description | default:\"(none)\"}}\n\nWrite a call brief for the rep, for Slack (*bold* headings, - bullets), under 300 words:\n*{{issue.title}} · {{issue.raw.meetingTime | default:\"time TBD\"}}*\n*Who*: the attendee and their likely priorities\n*Context*: three bullets on the company right now\n*Fit*: strong, possible or weak, with the reason\n*Ask*: five discovery questions specific to them\n*Unknowns*: what we still need for qualification (budget, authority, need, timing)\n*Links*: the three most useful URLs"
    },
    {
      "id": "post",
      "name": "Post to Slack",
      "type": "shell",
      "description": "Posts the brief to Slack.",
      "dependsOn": [
        "brief"
      ],
      "timeoutMinutes": 2,
      "command": "printf '{\"text\":%s}' {{steps.brief.output | json}} | curl -fsS -X POST -H 'Content-Type: application/json' --data @- {{vars.slackWebhookUrl}}"
    }
  ]
}