Review HubSpot deals with no CRM updates in 14 days

An open deal can sit untouched in the CRM long enough that nobody remembers to check what happened next.

Automate.ax team6 min read

Integrations used in this example

Bring quiet deal records into a weekly review

Every Monday at 09:00 UTC, this example searches one HubSpot pipeline for deals outside its closed-won and closed-lost stages whose records have not been modified for 14 days. It sends the first 100 matching deals to a Slack channel as names and direct links. The team can open each record and decide whether it needs a follow-up.

A quiet CRM record is a useful review cue, but it is not proof that sales activity stopped. A rep might have called the buyer without logging it, or a property update might make a deal look fresh when the buyer has not heard from anyone. The digest gives the team a starting list; a person checks the actual history before acting.

Sales operators described proposal follow-up slipping when reps get busy; one used a three-day task rule and a separate view for deals with no activity in five days.Source: A HubSpot discussion about active-deal follow-up

What you'll tell the agent

  • The HubSpot portal to review and its portal ID for deal links.
  • The pipeline ID and its closed-won and closed-lost stage IDs to exclude.
  • The Slack channel where the weekly list should go.
  • Account authorization.

The agent will create the project and ask you for these details. When Automate.ax asks you to connect an account, authorize the integrations you want this workflow to use.

After you connect HubSpot, the agent can help identify the portal, pipeline, and stage IDs. It will create the Automate.ax project and connect Slack when prompted.

The automation

A weekly schedule searches one HubSpot pipeline by hs_lastmodifieddate, omits its two closed stages, and posts the first 100 matches to Slack. It does not create deal tasks.

hubspot-stalled-deals.automation.ts
import { automation, onSchedule, t } from "automate.ax"
import { hubspot } from "automate.ax/hubspot"
import { slack } from "automate.ax/slack"

export default automation(
  "Review open HubSpot deals with no recent CRM updates",
  {
    parameters: [
      { label: "HubSpot portal ID", name: "hubspotPortalId", type: "text" },
      { label: "HubSpot pipeline ID", name: "hubspotPipelineId", type: "text" },
      { label: "Closed won stage ID", name: "closedWonStageId", type: "text" },
      {
        label: "Closed lost stage ID",
        name: "closedLostStageId",
        type: "text",
      },
      {
        label: "Slack conversation ID",
        name: "slackConversationId",
        type: "text",
      },
    ],
  },
  ({ parameters }) => {

What a run looks like

Example input

A proposal-stage deal remains open, and its HubSpot record has not been modified for 16 days.

Expected result

At the next Monday run, the deal appears in Slack with its name and HubSpot link, provided it is among the first 100 matches. No task or customer email is created.

Set it up

  1. Copy the setup prompt at the top into your coding agent.
  2. Tell the agent which HubSpot portal and pipeline to review, which stages mean closed-won and closed-lost in that pipeline, and which Slack channel should receive the list.
  3. Authorize HubSpot and Slack. Review the 14-day threshold, Monday 09:00 UTC schedule, and the fact that the search reads at most 100 matching deals.
  4. Deploy the project, then run it against a test portal or review the first digest before treating the list as a sales follow-up queue.

Check the result

Check one open deal last modified more than 14 days ago, one recently modified deal, and one closed deal. Confirm only the old open deal appears in the Slack list, and that its link opens the intended HubSpot portal.

Where this workflow stops

  • The filter uses hs_lastmodifieddate, which measures CRM record changes rather than sales activity. Review the deal before concluding it has stalled.
  • The search returns only the first 100 matches. Add pagination if your portal has more qualifying deals.
  • The example checks one pipeline and does not assign an owner, create a task, or email a prospect. Ask the agent to add those rules if your review process needs them.

Common questions

Does this create tasks or email prospects?

No. It posts one weekly Slack list for your team to review.

What counts as a deal update?

The example checks HubSpot's hs_lastmodifieddate property. That date can change for reasons unrelated to a sales conversation.

Can I review another pipeline or change the 14-day rule?

Choose the pipeline during setup. To change the threshold or include several pipelines, ask the agent to edit the search and test the resulting deal list.

More automation examples