Freshsales logo Freshsales automation · runs weekly

Follow up on stale Freshsales deals

Deals in your pipeline turn red once they pass the staling age, and then nothing happens: the card stays red until someone opens it, reads it and decides what to do.

Cotlet does it in your own Freshsales account with list_rotten_deals, get_deal, list_tasks, create_task and add_note, called by your AI agent, an n8n workflow or a script.

Hosted · nothing to install or maintain

Can Freshsales do this on its own?

Freshsales colours a deal red once it passes the staling age and lists such deals under Show only rotten Deals (checked 22 Oct 2026). A Workflow can add a task for a deal, but its date-based triggers need the Pro plan, it runs at most 5 actions, and its rule is fixed: it does not read the deal. Nothing in Freshsales writes a follow-up that fits each deal.

How you do it in Freshsales today

  1. An admin sets the limit per pipeline under Admin Settings > Deals & Pipelines > Pipelines: click the pencil icon, enter days in Deals go stale after, and click Save.
  2. In the Deals module, a rep opens Open Deals, chooses Pipeline from the dropdown, clicks the three dots icon on a deal and picks Show only rotten Deals.
  3. The rep opens each red deal, reads its page and decides whether it is dead, waiting on the customer or just forgotten.
  4. For each deal worth saving, the rep goes to the Activities Dashboard, clicks Add task, types a title, picks a due date, and searches for the deal in Related to before clicking Save.
  5. The red card is only a colour, and the help article describes no task or reminder that comes with it, so the list is easy to leave for next week.

How to follow up on stale Freshsales deals

Prompt

List my rotten deals in the Sales pipeline. Skip any with an open task or activity in the last 7 days. For the rest, create a follow-up task for me and leave a note with the reason. Tell me which ones look dead.
  1. 01

    Pull the rotten list

    Your agent reads one pipeline at a time with list_rotten_deals and follows next_cursor to the end. The staling age is set per pipeline, so the same age can mean a deal is late in one pipeline and on time in another. On the Free plan the call fails, because Freshsales has no rotten deals there.

  2. 02

    Separate dead from quiet

    The age counts from the day a deal was created, not from its last activity, so a red deal can still be active. get_deal returns last_activity_date, and the agent skips deals with activity inside the window in your prompt.

  3. 03

    Skip deals already chased

    list_tasks with deal_id and the open filter shows whether a task is already waiting on that deal. A deal with an open task is left alone, so a weekly run does not stack a second task on the first.

  4. 04

    Create the task

    create_task goes on the deal, owned by you or the deal owner, with the reason in the title, such as the age and the last activity date. Freshsales sets times in 30-minute steps, so the due time ends in :00 or :30. A collaborator gets an email, so each task waits for your OK by default.

  5. 05

    Mark the dead ones

    Deals with no activity for far longer than your window are not moved to Lost by this job. add_note leaves a one-line reason on the deal, and the agent lists those deals for you to close yourself.

What you get back

Example data

Rotten deals in Sales pipeline: 6 (stale after 30 days)
Tasks created 3, e.g. Annual support plan, 11 days past the limit, last activity 02 Oct
Skipped 2 (open task already waiting)
Looks dead, left for you 1: Retail kiosk, no activity since 01 Sep

Other ways to ask

  • Every Monday at 8, list rotten deals in all my pipelines and create tasks for the ones over 14 days past the limit.
  • Show me rotten deals worth more than 5,000 first, but create nothing yet.
  • Create a task for each rotten deal, owned by the deal owner, and add me as a collaborator.

What Freshsales allows, and what to know first

  • Freshsales sets the staling age separately for each pipeline, in days, under the Deals go stale after setting.
  • A deal's age is counted from its creation date, not from its last activity, so a deal with a call yesterday can still be rotten.
  • Rotten deals are one of the features Freshsales removes when an account drops to the Free plan.
  • Freshsales shows a task on a dashboard only to its owner and its collaborators, and a new collaborator gets an email.
  • A task has to be marked completed by hand, except one created by a Workflow, which can be marked complete at creation.

create_task and add_note ask for your OK by default. To run it weekly without you, switch confirmation off for those tools in your dashboard.

Sources: Freshsales Help: What are stale deals · Freshsales Help: How to add a new task · Freshsales Help: How to configure a Workflow · Freshsales Help: Features you lose on downgrade

Call create_task from a script

curl

curl -X POST https://cotlet.dev/api/v1/freshsales/tasks \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Follow up: Annual support plan (41 days old, last activity 02 Oct)","due":"2026-10-26T10:00:00","related_to_type":"Deal","related_to_id":7000388}'

Example response

{
  "task_id": 8800140,
  "title": "Follow up: Annual support plan (41 days old, last activity 02 Oct)",
  "due": "2026-10-26T10:00:00",
  "status": "open",
  "owner": "Dana Reyes",
  "related_to": {
    "type": "Deal",
    "id": 7000388,
    "name": "Annual support plan"
  },
  "collaborators": []
}

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is freshsales_write → create_task. Example data.

Schedule it in n8n, Make, Zapier or cron

Freshsales tools this automation uses

Cotlet Freshsales tools used to follow up on stale Freshsales deals
Tool Parameters
list_rotten_deals pipeline, cursor
get_deal deal_id
list_tasks filter, deal_id, contact_id, cursor
create_task title, due, related_to_type, related_to_id, description, owner, collaborators
add_note record_type, record_id, body
All 11 Freshsales tools with descriptions

Frequently asked questions

Is it safe to connect Freshsales to Cotlet?

Yes. You sign in to Freshsales yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Freshsales once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

Give your agent access to Freshsales.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Freshsales.