Turn Willo accepts into HubSpot contacts and recruiter tasks

When a candidate reaches the Accept stage in Willo, add them to HubSpot with a note of their interview highlights and a task to schedule the next round.

Agentic Task
WilloHubSpotHR & PeopleSalesOnboarding AutomationData SyncNotifications & Alerts
PromptCreate

Build an agent workflow that closes the loop from Willo to HubSpot when a candidate is accepted.

Trigger: a webhook from Willo on the status_change event. Only run when the new stage is Accept. Ignore Review, Reject, and any other stage — exit early without any HubSpot writes.

When the trigger fires, do this in order:

1) Call Willo Get Participant using the participant key from the webhook payload. Pull the full profile including email, name, phone, the interview title, the AI-generated summary if present, transcripts if present, and the public response URL back to Willo.

2) Call HubSpot Batch Upsert Contacts with the candidate's email as the unique property. Set firstname, lastname, phone, a hs_lead_status or lifecycle stage appropriate for a recruiting pipeline, a source property set to "Willo", and a custom property (default name: willo_interview_title) with the interview title. If the org has not created that custom property yet, still send it — the workflow author should note this in the setup guide so the user creates it or maps it.

3) Call HubSpot Create Note associated with the upserted contact. The note body should contain: the interview title, the AI summary of the candidate's answers (fall back to a short bulleted list of their answers if no AI summary is available), and a link back to the Willo response.

4) Call HubSpot Create Task associated with the same contact. Subject: "Schedule next round with {candidate name}". Body: a one-line reminder plus the link to the Willo response. Due date: 2 business days from now. Owner: the recruiter — accept a recruiter HubSpot owner id as a workflow input so the user can pick who gets the task.

Error handling: if the participant email is missing, log a clear reason and stop — don't create anything in HubSpot. If HubSpot returns a validation error on the custom property, retry the contact upsert without that property so the rest of the flow still succeeds. If Create Note or Create Task fails, still return a useful summary of what did land in HubSpot.

Output: a short summary of the run — candidate name, HubSpot contact id, whether the contact was created or updated, and the ids of the note and task.

Additional information

What does this prompt do?
  • Watches Willo for candidates who reach the Accept stage and skips anyone in Review or Reject.
  • Adds or updates the candidate in HubSpot with their name, email, phone, source, and interview title.
  • Attaches a note to the contact with the AI summary of their interview and a link back to their Willo response.
  • Creates a follow-up task for the recruiter to schedule the next round, due in two business days.
What do I need to use this?
  • A Willo account where you run video interviews.
  • A HubSpot account with permission to create and update contacts, notes, and tasks.
  • The recruiter's HubSpot user picked as the task owner.
How can I customize it?
  • Change the due date on the recruiter task, for example same day, next Monday, or a fixed number of hours.
  • Adjust which HubSpot properties get filled in, or map the interview title to a different custom property.
  • Change what goes into the note, for example include full transcripts or trim it down to a short blurb.

Frequently asked questions

Will this fire for candidates who are still under review or who get rejected?
No. The workflow only runs when a candidate is moved to the Accept stage in Willo. Anyone in Review, Reject, or any other stage is ignored.
What happens if the candidate is already in HubSpot?
The workflow matches by email address and updates the existing contact instead of creating a duplicate. New details from Willo, like the interview title, get written on top of what is already there.
Can I assign the follow-up task to a different recruiter per role?
Yes. You can route by interview, by department, or by any field on the Willo participant. Just tell the workflow which HubSpot user should own the task for each case.
Does this work if my HubSpot plan does not have custom properties?
Yes. You can drop the interview title mapping and still get the contact, the note with the AI summary, and the recruiter task. Custom properties are optional.
How fast does the workflow run after a candidate is accepted?
Willo notifies the workflow the moment the stage changes to Accept, so the HubSpot contact, note, and task usually show up within seconds.

Stop copy-pasting accepted candidates into your CRM.

Connect Willo and HubSpot once, and every accepted candidate lands in your pipeline with a recruiter task waiting.