Skip to content

New lead welcome nurture (post form-fill drip)

One of 565 written HubSpot workflow specs, by a collective of independent HubSpot consultants.

Free
Professional

Seat pricing: Professional edition. To build it, a GTM Seat or an Ops Seat (an Ops Seat cannot create marketing emails or sequences). Per-hub plans: Marketing Hub Professional.

Updated for HubSpot seat pricing
OutcomeNew contacts who fill a top-of-funnel form get a 4-email welcome drip over about two weeks that introduces the company and nudges toward a second conversion, with no manual follow-up.
Workflow maplead-nurturing-001
Form submission trigger leads to Set nurture_track = Welcome. Set nurture_track = Welcome leads to Send: Welcome 1. Send: Welcome 1 leads to Delay 2 days. Delay 2 days leads to Clicked Welcome 1?. Clicked Welcome 1? leads to Yes: Send: Welcome 2a engaged; No: Send: Welcome 2b re-hook. Send: Welcome 2a engaged leads to Delay 3 days. Send: Welcome 2b re-hook leads to Delay 3 days. Delay 3 days leads to Send: Welcome 3 proof point. Send: Welcome 3 proof point leads to Delay 4 days. Delay 4 days leads to Send: Welcome 4 soft CTA. Send: Welcome 4 soft CTA leads to Delay 3 days. Delay 3 days leads to Set welcome_nurture_completed = true. Set welcome_nurture_completed = true leads to Set nurture_track = None. Yes No Form submission trigger Set nurture_track = Welcome Send: Welcome 1 Delay 2 days Clicked Welcome 1? Send: Welcome 2a engaged Send: Welcome 2b re-hook Delay 3 days Send: Welcome 3 proof point Delay 4 days Send: Welcome 4 soft CTA Delay 3 days Set welcome_nurture_completed = true Set nurture_track = None
Form submission trigger leads to Set nurture_track = Welcome. Set nurture_track = Welcome leads to Send: Welcome 1. Send: Welcome 1 leads to Delay 2 days. Delay 2 days leads to Clicked Welcome 1?. Clicked Welcome 1? leads to Yes: Send: Welcome 2a engaged; No: Send: Welcome 2b re-hook. Send: Welcome 2a engaged leads to Delay 3 days. Send: Welcome 2b re-hook leads to Delay 3 days. Delay 3 days leads to Send: Welcome 3 proof point. Send: Welcome 3 proof point leads to Delay 4 days. Delay 4 days leads to Send: Welcome 4 soft CTA. Send: Welcome 4 soft CTA leads to Delay 3 days. Delay 3 days leads to Set welcome_nurture_completed = true. Set welcome_nurture_completed = true leads to Set nurture_track = None. Yes No Form submission trigger Set nurture_track = Welcome Send: Welcome 1 Delay 2 days Clicked Welcome 1? Send: Welcome 2a engaged Send: Welcome 2b re-hook Delay 3 days Send: Welcome 3 proof point Delay 4 days Send: Welcome 4 soft CTA Delay 3 days Set welcome_nurture_completed = true Set nurture_track = None

When to use it, when not to

Use it

  • Use when a form is the first real touch (ebook, newsletter, low-intent contact form) and there is no immediate sales intent.
  • Use to warm a contact before they see sales-facing content or get a rep outreach.

Skip it

  • Do not use for high-intent forms (demo request, pricing request, contact-sales). Those need fast human follow-up, not a drip. See lead-routing for that pattern.
  • Do not stack this on a contact who is already mid-sequence in another nurture track. Check the nurture_track property first.

Prerequisites

Properties to create:

Label Internal name Object Field type Options Why
Nurture Tracknurture_trackcontactDropdown selectWelcome, Persona, Re-engagement, NoneLets other workflows see which nurture a contact is in and prevents overlapping enrollment.
Welcome Nurture Completedwelcome_nurture_completedcontactSingle checkboxn/aMarks graduation so downstream workflows know this step finished.

Other prerequisites:

  • 4 marketing emails built and set to Automated type (a Regular/one-time email cannot be selected inside a workflow send-email action).
  • The source form live, published, and connected to a form that is not also feeding a higher-intent workflow.
  • A static list "Customers - Exclude from Nurture" for suppression.
  • Marketing contacts tier checked: confirm there is headroom before turning this on for a high-volume form.

Enrollment

Trigger typeevent-based (form submission)
CriteriaForm submission is [Top-of-Funnel Form Name] AND Lifecycle stage is not Customer AND nurture_track is not equal to Welcome
Re-enrollmentno. Resubmitting the same form does not restart the clock while welcome_nurture_completed stays true.
Suppressionlist "Customers - Exclude from Nurture"; native unsubscribed-from-all-email suppression applies automatically.

Steps

  1. Set property value: nurture_track = Welcome
  2. Send email: "Welcome 1 - thanks + what to expect"
  3. Delay before executing next action: 2 days
  4. If/then branch: Contact has clicked email "Welcome 1"
    • Yes branch: 5a. Send email: "Welcome 2a - popular resource (engaged path)"
    • No branch: 5b. Send email: "Welcome 2b - core value prop (re-hook path)"
  5. Delay before executing next action: 3 days
  6. Send email: "Welcome 3 - customer proof point"
  7. Delay before executing next action: 4 days
  8. Send email: "Welcome 4 - soft CTA to book time or read a case study"
  9. Delay before executing next action: 3 days
  10. Set property value: welcome_nurture_completed = true
  11. Set property value: nurture_track = None

Known pitfalls

  • Automated emails must use the Automated email type. A Regular marketing email will not show up as a selectable option in the send-email action.
  • The click branch should test against the specific email sent in step 2, not a general "has ever clicked any email" property. In the branch criteria pick the Marketing emails filter category, select that specific email, then the "clicked link in email" option, so the check is scoped to that one send (https://community.hubspot.com/t5/Lists-Lead-Scoring-Workflows/I-would-like-to-create-a-branch-based-on-a-specific-link-click/td-p/840239).
  • Contacts who unsubscribe mid-sequence stop receiving sends automatically, but subsequent Set property actions still run. Confirm that is acceptable, or add an explicit unsubscribe check branch.
  • Re-enrollment is off by default here. If someone should restart the drip after re-downloading, add re-enrollment on the trigger and reset welcome_nurture_completed to false somewhere upstream.
  • Turning this on for a large existing form can push the account over its marketing contacts tier. Check contact volume before publishing.

Test plan

  1. Create a test contact with an email address you control, not matching any domain on the suppression list.
  2. Submit the source form as that contact.
  3. Confirm enrollment within a few minutes in Workflow history > Enrolled, and check nurture_track = Welcome in the contact's property history.
  4. Click a link in the test Welcome 1 email, then use the workflow's test/fast-forward option (or wait out the real delay) to confirm the branch routes to 2a.
  5. After the full run, confirm welcome_nurture_completed = true and nurture_track = None, visible in the contact record's property history and in the workflow's "Contact performance" tab.

The UAT script of this spec holds 3 cases: a negative case, one case per branch, the expected result of each and a sign-off sheet. It comes as Markdown and as a CSV for your spreadsheet.

Variants

  • Branch email 2 and 3 content by a persona property instead of click behavior (feeds into lead-nurturing-006).
  • On Enterprise with Data Hub Professional, add a webhook step that notifies Slack when a contact reaches step 9 with high engagement.
  • Without Workflows (Starter-only account), approximate step 1-2 with the form's native single follow-up email and drop everything past that. This loses branching and timed delays.

Build spec

Build specYAML, swipe
trigger:
  type: event
  event: form_submission
  form: top_of_funnel_form
filters:
  - property: lifecycle_stage
    operator: not_equal
    value: customer
  - property: nurture_track
    operator: not_equal
    value: welcome
suppression_lists:
  - "Customers - Exclude from Nurture"
re_enrollment: false
actions:
  - type: set_property
    property: nurture_track
    value: welcome
  - type: send_email
    email: welcome_1_thanks
  - type: delay
    duration: 2d
  - type: if_then_branch
    condition:
      type: email_clicked
      email: welcome_1_thanks
    yes:
      - type: send_email
        email: welcome_2a_engaged
    no:
      - type: send_email
        email: welcome_2b_rehook
  - type: delay
    duration: 3d
  - type: send_email
    email: welcome_3_proof
  - type: delay
    duration: 4d
  - type: send_email
    email: welcome_4_cta
  - type: delay
    duration: 3d
  - type: set_property
    property: welcome_nurture_completed
    value: true
  - type: set_property
    property: nurture_track
    value: none

Files and install

FileWhat it holds
PDF and MarkdownThe spec as you read it here, with the YAML build spec at the end.
Properties JSONCreates the fields in one API call.
Workflow JSONDocuments the build: the workflow in Automation API v4 format, switched off.
UAT scriptThe test cases, the expected results and a sign-off sheet, as Markdown and CSV.

Take the PDF and build it by hand. One-click install comes with a category pack or the full library.

Get the 12 free specs as a pack

Nothing deleted, enabled or enrolled.

lead-nurturing-001Spec version 2026-09

Read 12 complete specs before you pay.

One per category, same format as the paid ones. Email only, no card.

We email the link, then a short note when specs change. Nothing else.

All 12 free specs by email, no card.