Skip to main content

Delete a lead

Lead identity matches on the exact phone and email, so one phone number is one lead for as long as that lead exists. That gets in the way when you test or demo the follow-up engine on your own number: the second submission is matched to the first lead, with its whole history. Deleting the first lead lets the number go.
Deleting a lead is a tool for demos and tests. It is switched off by default and is not offered to customers. It removes the lead from Erdo’s own databases only, so it is not an answer to a “delete my data” request: see What stays.
To make the engine read a real lead afresh without removing anything, start it over instead. See Lead next action.

What a delete removes

Afterwards the lead’s reference no longer resolves, and the same phone and email submitted again create a new lead with a new reference and nothing behind it.

A phone or email two leads share

Two leads can hold the same phone number. A delete removes one lead, never everything on a number, so a record Erdo keeps by number or address is removed only when no other lead in your organization still holds that detail, in this dataset or another:
  • a text conversation that belongs to the other lead stays with it;
  • consent for the number stays while another lead holds it;
  • calls with no lead attached stay while another lead holds the number.
The response counts these as shared_phones and shared_emails. To free a number that several test leads share, delete each of them. Phone numbers are matched in full international form. A lead stored with a national number and no country code releases nothing that is kept by number.

What stays

  • Opt-outs. A STOP reply, a do-not-call entry and the bounce and complaint record for an address are kept, so a deleted person is not contacted again. To text your own number after a STOP, reply START.
  • Copies outside Erdo’s databases. Message bodies at the SMS provider, call audio and transcripts at the voice provider, sent mail at the email provider, and anything already delivered to a mailbox, a CRM or a calendar.
  • Earlier versions of the leads dataset, which still contain the row. See Dataset revisions.
  • Contact details taken from conversations. When a call, text, WhatsApp or website chat gave Erdo the lead’s contact details, the copy saved with that capture stays in your Conversation leads pipeline’s run history. Nothing reads it to match or contact the lead, so the same phone and email still arrive as a new lead.
  • Analytics and logs: page events, conversions already reported to an ad platform, and agent conversations that quoted the lead.
  • The daily contact cap. Contacts made to the lead today still count toward today’s cap.
  • A record of the delete: the lead’s reference, who deleted it, when, and how many records were removed. It holds no contact details.

When a delete is refused

  • A message to the lead is being sent, or the follow-up engine is deciding the lead, at that moment. Try again in a minute.
  • An automation started a paid step for the lead in a run that is still going. Try again when the run has finished.
  • The dataset has no lead identity. There is no lead to delete, only a row.

Deleting

A delete cannot be undone. Only an organization admin can run it, and only on a dataset the organization owns and the admin can edit.
The command asks you to type delete before it runs; --yes skips the prompt and --json prints the raw result. <lead> is the lead’s UUID or its 22-character reference. The response says what was removed:
If a delete stops part-way, run the same command again: it resumes. A lead that was already deleted answers "state": "already_deleted" with what that delete removed. There is deliberately no MCP tool for this. A delete cannot be undone, so an agent is never one tool call away from it. Scoped API keys cannot delete a lead.