[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Close lost Copper deals with a loss reason

> Mark dead Copper deals Lost with the right loss reason and put paused ones on Abandoned, so your won and lost reports stay accurate. Runs weekly.

Source: https://cotlet.dev/integrations/copper-crm-api-mcp-server/close-lost-deals-with-a-reason

Dead deals stay in the Copper pipeline for months because closing one means opening it, choosing a reason and fixing the close date, and nobody does it for deals that quietly died.

Cotlet does it in your own Copper CRM account with list\_opportunities, get\_opportunity, list\_pipelines and update\_opportunity, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=copper-crm) [All Copper CRM tools](https://cotlet.dev/integrations/copper-crm-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can Copper CRM do this on its own?

Copper has no automatic closing of dead deals and no MCP server (checked 20 Oct 2026). Workflow Automation can update a record when a field matches a condition, but a rule fires on field values only, so it cannot choose a reason for each deal from its notes. The Developer API can set a status and a loss\_reason\_id, with your own code.

## How you do it in Copper CRM today

1. Open Opportunities in pipeline view and find a deal that is no longer moving.
2. Drag the card toward the bottom of the page until the Lost, Abandoned and Won boxes appear, and drop it on the red Lost box.
3. In the Loss Reasons box, choose a reason from the drop-down and click Save.
4. Open the deal and change the close date to today, which Copper recommends so the reports stay accurate.
5. For a deal the customer asked to pause, use Abandoned instead. For a won deal, add the closing date.

## How to close lost Copper deals with a loss reason

Prompt

```
Find open Sales deals in Copper that have been quiet for 30 days. If the last notes show the customer chose someone else or turned down the price, mark the deal Lost with the matching loss reason. If they asked to wait, mark it Abandoned. Leave the rest.
```

1. 01  
### Find the quiet deals  
list\_opportunities returns open deals with inactive\_days and days\_in\_stage. The agent keeps those past the threshold in your prompt, 30 days here, and pages to the end of the pipeline.
2. 02  
### Read the evidence  
get\_opportunity returns the last activity-log entries and tasks. The agent decides only from what is written there: a note that names a competitor, a note about the price, a request to wait.
3. 03  
### Use only your reasons  
list\_pipelines returns the loss reasons your workspace has. The agent picks one of them, or leaves the deal for you when none fits, and never invents a new reason.
4. 04  
### Close, in a safe order  
update\_opportunity sets status Lost with the loss reason and today as close date, or Abandoned for a paused deal. Nothing else on the deal changes. A rule in Workflow Automation may fire on the change, so each call waits for your OK by default.
5. 05  
### Leave the unclear ones  
A deal with no notes or a mixed signal stays open and appears in the report with its last note.

### What you get back

Example data

```
Quiet 30+ days: 9
Lost 4: Competitor 2, Price 1, Features 1
Abandoned 2 (customer asked to wait)
Left open 3:
- Lakeview Clinic: no notes since July
- Cedar Labs: last note is a pricing question, no answer
```

### Other ways to ask

- At the end of each quarter, close every deal quiet for 60 days as Lost and use Price when notes mention budget.
- List the deals I would close as Lost with the reason for each, and change nothing.
- Mark the deals whose last note says "come back in" as Abandoned and add a task for the date.

## What Copper CRM allows, and what to know first

- Copper's default loss reasons are Competitor, Features and Price, and a workspace can rename, reorder and add reasons under Settings > Loss Reasons.
- Copper recommends setting the close date to today on a Lost deal so reports stay accurate.
- Abandoned means the deal is on hold, and using it keeps those deals out of your won and lost reports.
- The Loss Reasons report shows the count or value of lost opportunities per reason and filters by close date, owner and source.
- Won, Lost and Abandoned are the three end statuses of a Copper opportunity.

update\_opportunity asks for your OK by default. To run it weekly without you, switch confirmation off for that tool in your dashboard.

Sources: [Copper Help: Understand and customize the Loss Reasons field](https://support.copper.com/en/articles/8823335-understand-and-customize-loss-reasons-field) · [Copper Help: Working with Opportunities](https://support.copper.com/en/articles/8823260-working-with-opportunities) · [Copper Help: Pipeline Reports, Sales by Owner and Loss Reasons](https://support.copper.com/en/articles/8823416-pipeline-reports-sales-by-owner-and-loss-reasons) · [Copper Developer API: Opportunities overview](https://developer.copper.com/opportunities/overview.html)

## Call update\_opportunity from a script

curl

```
curl -X PATCH https://cotlet.dev/api/v1/copper-crm/opportunities/31842907 \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status":"Lost","loss_reason":"Price","close_date":"2026-10-20"}'
```

Example response

```
{
"opportunity_id": "31842907",
"name": "Northwind renewal",
"pipeline": "Sales",
"stage": "Negotiation",
"status": "Lost",
"loss_reason": "Price",
"close_date": "2026-10-20",
"monetary_value": 18000
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is copper\_crm\_write → update\_opportunity. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/copper-crm-api-mcp-server.md#automations)

## Copper CRM tools this automation uses

__Cotlet Copper CRM tools used to close lost Copper deals with a loss reason__
| Tool | Parameters |
| ------------------- | -------------------------------------------------------------------------- |
| list\_opportunities | pipeline, stage, status, limit, cursor |
| get\_opportunity | opportunity\_id |
| list\_pipelines | none |
| update\_opportunity | opportunity\_id, stage, status, loss\_reason, close\_date, monetary\_value |

[All 12 Copper CRM tools with descriptions](https://cotlet.dev/integrations/copper-crm-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect Copper CRM to Cotlet?

Yes. You sign in to Copper CRM yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Copper CRM 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.

## More Copper CRM automations

- [Find stale Copper deals and create follow-up tasks](https://cotlet.dev/integrations/copper-crm-api-mcp-server/follow-up-on-stale-deals.md)
- [Convert qualified Copper leads to people and deals](https://cotlet.dev/integrations/copper-crm-api-mcp-server/convert-qualified-leads.md)
- [Copper CRM API and MCP server: every tool](https://cotlet.dev/integrations/copper-crm-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Copper CRM.

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

[Sign up free](https://cotlet.dev/app/signup?app=copper-crm)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.

## For AI agents: sign your user up

Is your user asking you to sign them up for Cotlet? You can do it for them, no account or key needed.

1. Read the fields and their allowed values: GET https://cotlet.dev/api/v1/access-requests
2. Ask the user for each value: email, apps, what you will do with them. If they leave the password to you, generate a strong one and show it to them.
3. Show the user what you will send, then POST it as JSON to https://cotlet.dev/api/v1/access-requests.

One call creates the account and sends the access request; we email the user when access is granted.
