How to Lock the Meddicc Score with a HubSpot Workflow

If you want your team to stop changing the MEDDICC score once a deal reaches a late stage, HubSpot workflows are a clean way to automate it.

In this guide, we will create a deal-based workflow that calls the Meddicc Score API and automatically sets the score as locked when the deal stage changes to Contract Sent.

This is useful when you want the score to reflect the qualification state at the moment the commercial process is already advanced, instead of continuing to drift after the proposal has been sent.


Before You Start

Make sure you already have:

  • A Pro+ Meddicc Score account
  • An active Meddicc Score API key
  • Permission to create or edit HubSpot workflows
  • Access to the Send a webhook action in HubSpot

For getting the Meddicc Score API key, open Meddicc Score → Settings → Meddicc Score API Key (Pro+) and copy it from there.

Api key

The endpoint we will call is:

https://app.meddiccscore.com/hubspot/api/v1/meddicc/score-lock

Step 1: Create a Deal-Based Workflow Triggered by Contract Sent

In HubSpot, create a new deal-based workflow.

Set the enrollment trigger so the workflow runs when:

  • Property name is Deal stage
  • New value is Contract Sent

This means every time a deal enters that stage, HubSpot will execute the webhook action.

HubSpot workflow configured to call Meddicc Score API on Contract Sent


Step 2: Add a Send a Webhook Action

Inside the workflow, add the Send a webhook action.

Use these values:

  • Method: POST
  • Webhook URL: https://app.meddiccscore.com/hubspot/api/v1/meddicc/score-lock
  • Authentication type: API Key
  • API key: apikey
  • API key name: apikey
  • API key location: Request header

The Meddicc Score API accepts the key in a header named apikey, which fits well with HubSpot’s webhook action configuration.


Step 3: Store the API Key as a Secret

Instead of pasting the token directly into the action, save it as a HubSpot secret.

Click Add secret and create a secret with:

  • Secret name: any internal name you prefer, for example apikey
  • Secret value: your Meddicc Score API key

Then select that secret in the webhook action.

This keeps the workflow easier to manage and avoids exposing the raw API token repeatedly across actions.

HubSpot add secret modal for storing the Meddicc Score API key


Step 4: Configure the Request Body

In the Request body section, choose Customize request body.

Add these fields:

  1. hs_object_id Value: the enrolled deal Record ID

  2. locked Value: true

The final body should be equivalent to:

{
  "hs_object_id": "123456789",
  "locked": true
}

Why this matters:

  • hs_object_id tells the Meddicc Score API which HubSpot deal to update
  • locked: true tells the API to lock the overall MEDDICC score for that deal

In HubSpot, the easiest token to use is the enrolled deal Record ID, because the API accepts it directly as hs_object_id.

HubSpot webhook body mapping using Record ID and locked=true


Step 5: Test the Workflow

Before turning the workflow on for all deals, use HubSpot’s Test option.

Run the workflow on a test deal that you can safely move into Contract Sent.

If the request is configured correctly:

  • the webhook should return a successful response
  • the deal score will become locked in Meddicc Score
  • future recalculations will no longer overwrite the stored score unless you unlock it later

If something fails, the most common issues are:

  • the API key is wrong or expired
  • the account is not on Pro+
  • the body does not include hs_object_id
  • the selected deal is not yet present in the Meddicc Score database

What the API Returns

The endpoint responds with a payload like this:

{
  "success": true,
  "lockedScore": true,
  "summary": {
    "hs_object_id": "123456789",
    "dealId": "123456789",
    "score": 78,
    "lockedScore": true,
    "completionPct": 64
  }
}

The most important field here is:

  • lockedScore: true

That confirms the score is now frozen for the deal.


How to Unlock It Later

If you ever want to reverse the behavior, use the same endpoint and send:

{
  "hs_object_id": "123456789",
  "locked": false
}

That can be done from another workflow, for example if the deal moves backwards in the pipeline.


Final Thoughts

This is one of the simplest and most practical ways to make Meddicc Score part of your operational process in HubSpot.

Instead of asking reps to remember when the score should stop changing, you define the rule once in the workflow and let HubSpot enforce it automatically.

You can use the same pattern for other automations too, such as:

  • locking individual MEDDICC answers
  • recalculating the score at a specific stage
  • setting a score manually from another process
  • building workflow branches based on score or completion

If you have not configured the API yet, see the main Meddicc Score API guide.