Library / Marketing ops / marketing-ops-001

Lead to MQL lifecycle stage promotion on lead score threshold

Marketing ops Marketing Hub Professional Contact Intermediate ~30 min to build

Outcome. Contacts that cross a lead score threshold move automatically from Lead to Marketing Qualified Lead, with no manual review, and marketing ops gets a heads-up.

Workflow mapEnrollment, branches and actions at a glance
flowchart TD
    A[HubSpot Score recalculated] --> B{Score >= threshold?}
    B -->|No| Z[No action]
    B -->|Yes| C{Lifecycle stage already MQL or later?}
    C -->|Yes| Z
    C -->|No| D[Set lifecycle stage: Marketing Qualified Lead]
    D --> E[Set MQL date]
    E --> F[Notify marketing ops]
    F --> G[Add to Active MQLs list]

When to use it / when not to

Prerequisites

Enrollment

Steps

  1. If/then branch: Lifecycle stage is Subscriber, Lead, or unknown (not already MQL, SQL, Opportunity, Customer, Evangelist, or Other)
    • Set lifecycle stage to Marketing Qualified Lead. There is no dedicated "Set lifecycle stage" action: use the "Edit record" action (the current name of Set property value) targeting the Lifecycle stage property (https://knowledge.hubspot.com/workflows/choose-your-workflow-actions).
    • Set property value: MQL date = current date
    • Send internal email notification to: marketing ops distribution, subject "New MQL: {{contact.firstname}} {{contact.lastname}} (score {{contact.hubspotscore}})"
    • Add to static list: "Active MQLs"
  2. Else branch (already MQL or further)
    • No action, exit workflow.

Known pitfalls

Test plan

  1. Create a test contact with Lifecycle stage = Lead and a score below the threshold.
  2. Trigger scoring engagement (or manually set the score property, if your permissions allow) to push the score at or above the threshold.
  3. Open workflow history (Automation > Workflows > this workflow > History) and confirm enrollment fired shortly after the recalculation.
  4. Check the contact record timeline for "Lifecycle stage changed to Marketing Qualified Lead" and confirm MQL date populated.
  5. Confirm the internal notification arrived and the contact appears on the "Active MQLs" list.

Variants

Build spec

trigger:
  type: event-based
  event: property_changed
  property: hubspotscore
  criteria:
    - hubspotscore: greater_than_or_equal 70
    - lifecycle_stage: not_in [marketingqualifiedlead, salesqualifiedlead, opportunity, customer, evangelist, other]
  reenrollment: true
  reenrollment_property: hubspotscore
branches:
  - condition: lifecycle_stage in [subscriber, lead, unknown]
    actions:
      - type: set_lifecycle_stage
        value: marketingqualifiedlead
      - type: set_property_value
        property: mql_date
        value: current_date
      - type: send_internal_email_notification
        to: marketing_ops_distribution
        subject: "New MQL: {{contact.firstname}} {{contact.lastname}} (score {{contact.hubspotscore}})"
      - type: add_to_static_list
        list: "Active MQLs"
  - condition: else
    actions: []
This spec is one of the five free ones, complete as shown. Download all 5 free specs as PDF, Markdown and properties JSON. Paid packs add the same files for every spec in the pack, plus the custom coded actions.
Everything add-on Install this workflow in my portal Two clicks: authorise your portal, confirm. Properties created, workflow delivered switched off, ready to review. Coming to Everything and Pro buyers first.