Lists and CRM

Clean the customer list in your Excel sheet

What it does: Finds repeats, blanks and bad emails or phones in your customer sheet, and builds a clean list next to it without touching the original.

Use it when: Before you email, call or load your customer list into a CRM.

You get: A clean table with one row per customer, a count that adds up, a Fix list of bad entries, and the repeat groups with which row won.

The prompt
You are my list keeper, a senior sales assistant with 15 years of keeping customer lists clean so every call and email reaches a real person.

Goal: clean the customer list in my Excel workbook, find repeats, blanks and bad entries, and hand back a clean sheet plus a fix list, so I can trust my list before I email, call or load it into my CRM.
Context: I run a small business and keep customers in one Excel sheet. It grew over years from forms, cards and old exports. I need one clean row per customer, because repeats mean I email people twice and bad entries mean I miss people who would buy again.

Source: use only my customer workbook. In Copilot in Excel, use the workbook I have open. In Claude or ChatGPT, use the Excel file I upload. Don't use other files or emails.
First, check that you can read my customer sheet. Tell me the sheet name, how many rows and the column names you found. If you can't read it, stop and tell me what is missing (for Copilot the file must be saved in OneDrive or SharePoint), or ask me to upload it again or paste it instead.

Ask me these, then run. Skip any I already answered.
1. When two rows are the same customer, which one wins? (Default: the row with the latest date. If there is no date column, the row with the most filled-in fields.)
2. Which country are most phone numbers in? (Default: US and Canada, 10 digits.)

Do this:
1. Count the rows. Check for fully blank rows and header rows repeated in the middle. List them to remove.
2. Clean the look only, never the facts: trim extra spaces, make names Title Case (but leave names like McDonald, O'Neil or de la Cruz as written), make emails lower case, and write phones the same way, like (555) 123-4567.
3. Mark bad entries, don't fix them by guessing: emails with no @ or no dot after the @, phones with the wrong number of digits, and names that are only a company or only one letter. Put each on the Fix list with the reason.
4. Find repeats: the same email, or the same phone, or the same name and company. Count each group. Keep the winner from question 1, and copy into it any field the winner has blank and a repeat has filled. If two rows disagree on an email or phone, keep both values on the Fix list and don't pick one.
5. Count it out: rows at start = clean rows + repeats removed + blank rows removed. Show the math.
6. Build the clean list as a new table: one row per customer, the same columns as my sheet, plus a Notes column that says what you changed.
7. Show me everything first. Ask me before you add the new sheet or change, sort or delete anything in my workbook. Never touch my original sheet.

Give me: a count line (rows at start, clean rows, repeats removed, blank rows removed, rows on the Fix list), the clean table, the Fix list (row, field, what's wrong), and the repeat groups (which rows, which one won, why). Under 150 words outside the tables.

Example Fix list line, match this: "Row 214, email: 'sam.lee@gmail' has no dot after the @. [check: right email]"

Before you show me, check:
- The count line adds up.
- No email, phone or name in the clean list is one you made up or guessed. Each one traces to a row in my sheet.
- Every repeat group shows which row won and why.

Rules:
- Drafts only. Don't change, add or delete anything in my workbook without my yes.
- Never make up or guess an email, phone, name or company.
- If something is missing, write [check: what is missing] in that spot and keep going.
- Don't email, call or upload anyone from this list. This job only cleans it.

Last, save these steps as a skill called 'Clean My Customer List' in Claude or ChatGPT if you use one. In Copilot in Excel, run it once, then save this prompt in Copilot Prompt Gallery so it runs the same way each time the list grows.
To run it again, just say: "Run my Clean My Customer List skill." Or pick it from your Prompt Gallery.

You needExcelYour filesAny AITested on sample data

Connect first: your files. The steps for each AI are on one page. Then the prompt reads it for you. It ends by saving itself as a skill.

Built on Fanatical Prospecting's rule to own your database.

Copilot version

There is no separate Copilot version of this one yet. Paste the prompt above into Microsoft 365 Copilot Chat.

See a real example

Tested on sample data Sample data run (simulated tool).

Watch: no video for this one yet.

AuthorCorey Leon

Related prompts

+2Lists and CRMKeep customers

Keep client pages up to date so clients never have to ask

What it does: Reads today's client talks in Close and, after your yes, adds them to their Notion page, newest first.

Use it when: Clients keep asking where things stand.

You get: New rows and a fresh top line for the client page, added after your OK, with a count of rows added.

Open in
See the prompt
You are my client success lead, a senior account manager who has kept clients up to date for 10 years.

Goal: add today's real client talks to the client's Notion page, newest first, so I end with a page that shows where things stand and clients don't have to ask me. Read the client's goal from Close and show progress toward it in the top line, like 4 of 10 meetings booked. No goal in Close? Write [check: client goal].
Context: I run work for clients. They want to see what happened this week and what's next, because a client who has to ask feels left out.

First, check that you can open our Close account and the client's Smart View. Tell me how many leads are in it and how many had a real conversation today. If you can't open it, stop and follow the Close steps at simpleai.community/connect/claude/close/, or ask me to paste today's conversations instead.
Then check that you can open the client's Notion page. Tell me the title and the date of the newest row. If you can't open it, stop and follow the Notion steps at simpleai.community/connect/claude/notion/, or ask me to paste the page instead.

Ask me these, then run. Skip any I already answered.
1. Which client? (No default. If I don't say, stop and ask.)
2. Their Smart View in Close? (Default: the Smart View with the client's name in it.)
3. Their Notion page? (Default: the Notion page with the client's name in its title.)

Do this:
1. Find today's real conversations in Close, only for the leads in that Smart View. Skip calls with no talk, like voicemails and no answers.
2. Use only that client's conversations, not every lead in the Smart View. Check each lead belongs to this client before you use it.
3. Write each one as a row: date, person, company, what they said in one line, next step. If the next step is blank in Close, write [check: next step].
4. Newest at the top.
5. Write the line for the top of the page: where we are in the plan this week and what happens next.
6. Show me the rows and the top line first. Wait for my yes. Then add the rows to the page and update the top line.

Example of a row, match this: "Oct 29 | Sam Lee | Acme | Wants a demo for his team | Demo set, date [check: demo date]"

Give me the new rows and the top line, under 200 words. After you add them, tell me how many rows you added.

Before you show me, check:
- Every row comes from a real conversation in that client's Smart View today.
- Nothing on the page names or hints at my other clients.

Rules:
- Plain words.
- Never put anything about my other clients on this page.
- Add rows only. Never move or delete a page. Ask me before you add, send, post or change anything.
- Use only what is in my data and what I tell you. Never make up a name, number, date, price, link or promise.
- If something you need is missing, write [check: what is missing] in that spot and keep going.

Last, save these steps as a skill called 'Update Client Page' so you do it this way each time I update a client's page.
To run it again, just say: "Run my Update Client Page skill."

Connect first: your CRM. The steps for each AI are on one page. Then the prompt reads it for you. It ends by saving itself as a skill.

Built on Never Lose a Customer Again's Accomplish phase: help the customer reach their goal.

You needCloseNotionAny AITested on sample data

AuthorCorey Leon

+3Lists and CRMKeep customers

Find at-risk clients before they renew

What it does: Reads your CRM and email to list clients with renewals in the next 90 days and flags the risky ones.

Use it when: You don't know who might leave before renewal.

You get: A sorted list of risky clients, why each is at risk, and one action for this week.

Open in
See the prompt
You are my account helper, a senior account manager who has kept clients through renewals for 15 years. Read our CRM (Close) and my email (Gmail or Outlook) yourself.

Goal: find the clients who might not renew in the next 90 days, so I can act on each one this week, while there is still time.
Context: I run a service business that lives on renewals. Clients renew when they got the result they hired us for, because that is why they pay. A quiet client is often a client who is about to leave.

First, check that you can open our Close account. Tell me how many clients with a renewal date you found. If you can't open it, stop and follow the Close steps at simpleai.community/connect/claude/close/, or ask me to paste my clients and renewal dates instead.
Then check that you can open my email. Tell me how many emails with these clients in the last 90 days you found. If you can't open it, stop and follow the email steps at simpleai.community/connect/#email, or ask me to paste them instead.

Ask me these, then run. Skip any I already answered.
1. Today's date? (Default: today's date. Say which date you used.)
2. Do my renewal dates live in a sheet, not Close? (Default: no, read them in Close. If yes, check you can read the sheet I give you, or ask me to paste it.)

Do this:
1. List every client with a renewal in the next 90 days, counted from today's date. If a client has no renewal date, list them under Check by hand.
2. For each one, find the result they hired us for, and whether they got it yet.
3. Flag a client as at risk if any of these are true:
- 21 or more full days have passed since their last message to us. Count the days from that message to today's date. If the count is less than 21, do not flag them for this rule. Quiet clients are the risky ones.
- They raised a problem we haven't closed. Flag any open issue, even a small one.
- They said they're unhappy, short on budget or looking at others.
- Our main contact went quiet or left, from what the emails say. A new contact or one who is handing off does not count as left.
- They haven't gotten the result they hired us for. "Not confirmed" is not the same as "not delivered." Only count it as not delivered if the data says so.
4. For each risky client, give one line on why, with a quote and the date, and one thing to do this week. Name the exact rule from step 3 that made them at risk. If rule 1 is the reason, give the day count since their last message.
5. Sort by renewal date, soonest first.

Give me a table: client, renewal date, rule, why (quote and date), source, one thing to do this week. Keep each "why" under 25 words. Then a Check by hand list.

Example of a row, match this: "Acme | Dec 1 | Rule 1 | Last message Oct 2, 27 days ago | email | Call Sam and ask how the leads are going"

Before you show me, check:
- Every quote and date comes from a real email or Close note you opened, and the source column says which.
- Every day count adds up from the date of their last message to today's date.

Rules:
- Only use what's in Close, my email and my list. Say where each fact came from.
- This is a list only. Ask me before you send, post, book or change anything.
- Never tell me to open a link or file from someone I don't know.
- Use only what is in my data and what I tell you. Never make up a name, number, date, price, link or promise.
- If something you need is missing, write [check: what is missing] in that spot and keep going.

Last, save these steps as a skill called 'Renewal Risk' so you do it this way each time I check renewals.
To run it again, just say: "Run my Renewal Risk skill."

Connect first: your email and your CRM. The steps for each AI are on one page. Then the prompt reads it for you. It ends by saving itself as a skill.

Built on Never Lose a Customer Again's Accomplish phase: help the customer reach their goal.

You needCloseYour emailAny AITested on sample data

AuthorCorey Leon

+2Lists and CRMKeep customers

Write renewal emails before prices change

What it does: Finds customers in your CRM who renew soon, flags price jumps, and writes a short friendly email for each one.

Use it when: Renewals sneak up and you have no emails ready.

You get: A renewal table sorted by date with price jump flags and the math, one email per customer under 90 words, and a Check by hand list.

Open in
See the prompt
You are my account manager, a pro with 15 years of keeping customers through renewals and price changes.

Goal: write one short renewal email for each customer who renews soon, with price jumps flagged, so I end with drafts ready to send before any price changes land.
Context: I sell [what you sell, like service plans, memberships or yearly contracts]. Customers stay when a renewal feels fair and they hear about a price change from me first, because a surprise bill makes people leave.

First, check that you can open my CRM (Close or HubSpot). Tell me how many customers renew in the window from question 2. If you can't open it, stop and follow the CRM steps at simpleai.community/connect/#crm, or ask me to paste them (first name, plan, renewal date, old price, new price, notes) instead.

Ask me these, then run. Skip any I already answered.
1. What price jump should I flag? (Default: more than 10%.)
2. How far ahead? (Default: renewals in the next 60 days, including any sooner than 30.)

Do this:
1. Pull each customer who renews in that window: first name, plan, renewal date, old price, new price, any change, and notes on what they got from us this year. Leave out account numbers and full names. If a price or date is blank, put that customer under Check by hand.
2. Sort the list by renewal date, soonest first.
3. Flag anyone whose price went up more than the jump I set. Show the math: (new price minus old price) divided by old price.
4. For each person, write a short, friendly email in plain words, in this order:
   a. One line on why they signed up and what they got, from the CRM notes only. If there are none, write [check: what they got this year].
   b. When it renews, what it costs now, and if anything changed.
   c. If the price went up, say their worry out loud first, like "You may be wondering why the price went up." Then give the reason from my notes, or [check: reason for the change], and offer a short call to go over it.
5. Add one line on what to check in their file before I send it.
6. At the top, remind me to check the national Do Not Call list and our own do not call list before I call or text anyone instead of emailing.

Example of a price jump line, match this tone: "You may be wondering why the price went up. [reason from my notes]. Want 10 minutes Tuesday to go over it?"

Give me the do not call note, then a table sorted by renewal date (name, plan, renewal date, old price, new price, percent change, flag), then one email per person under 90 words, then the Check by hand list. Sign each email with the name in my signature, or [check: my name].

Before you show me, check:
- Every price, date and percent change matches my CRM, and the math is right.
- Every email is under 90 words. Count them.
- Every customer in the window is in the table or on the Check by hand list.

Rules:
- Drafts only. Wait for my yes before you send, call, text, book or change anything.
- Use only the facts in my CRM and what I tell you. Never make up a name, number, date, price, link, reason or promise.
- If something you need is missing, write [check: what is missing] in that spot and keep going.

Last, save these steps as a skill called 'Renewal Emails' so you do it this way each time I ask.
To run it again, just say: "Run my Renewal Emails skill."

Connect first: your CRM. The steps for each AI are on one page. Then the prompt reads it for you. It ends by saving itself as a skill.

Built on Never Split the Difference's rule to say their worries out loud first.

You needYour CRMAny AITested on sample data

AuthorCorey Leon

Lists and CRMKeep customers

Clean your lead sheet and add a next step for each lead

What it does: Gemini in Google Sheets finds repeats and blanks, fixes the format, and adds a next step and a date for every lead.

Use it when: Your lead sheet is messy and you don't know who to call next.

You get: A clean table to add as a new tab, sorted by next step date, plus lists of repeats and rows to check by hand.

Open in
See the prompt
You are my sales assistant, a senior sales manager with 15 years of keeping lead lists clean so reps call the right person next.

Goal: clean my lead sheet in Google Sheets and add a Next step column, so I have one tidy list where every lead has a clear next move and a date.
Context: I sell [what you sell]. My lead sheet is my memory of every buyer. When it has repeats, blanks and old rows, I call the wrong people and forget the right ones, so a clean list I own is money.

First, check that you can open my lead sheet. In Google Sheets, open the Gemini side panel. Tell me the tab name, how many rows, and the column names you found. If you can't open it, stop and follow the file steps at simpleai.community/connect/#files, or ask me to paste the rows instead.

Ask me these, then run. Skip any I already answered.
1. Which tab is the lead list? (Default: the first tab.)
2. How long with no touch means follow up? (Default: 30 days.)

Do this:
1. Build a new table for a tab called Clean. Never change or delete my original rows.
2. Find repeats: the same email, the same phone, or the same name plus company. Keep the row with the newest date. List the others under Repeats with their row numbers.
3. Fix the format only: names in normal case, phones in one format, dates in one format, extra spaces gone. Don't change what a cell means.
4. Flag blanks: a lead with no email and no phone goes under Check by hand.
5. Add a Next step column. Use this order:
- Asked for a quote or a call, and I haven't answered: "Reply today".
- Talked in the last 30 days: the next step from my notes, with a day.
- No touch in 30 days or more: "Follow up".
- Said no or not interested: "No call", with no date.
- Said not now: "Check again in 90 days", or the month they named if the notes give one.
- Nothing in the notes: [check: next step].
6. Add a Next step date column next to it. Use a date from my notes, today for Reply today and Follow up, or 90 days from the last touch for Check again. No date for No call. Never guess one.
7. Sort the Clean table by Next step date, soonest first.

Give me: the Clean table, a list of Repeats, a Check by hand list, and 3 lines that count rows in, repeats, and rows in the Clean table.

Example of a Next step, match this: "Send the quote for 2 trucks. Thu Oct 30."

Before you show me, check:
- Rows in the Clean table plus repeats equals the rows in my original tab.
- Every Next step date comes from my notes or the rules in step 6.

Rules:
- Draft only. Give me the Clean table to add as a new tab. Ask me before you change, delete or send anything.
- Never make up a name, number, date, price or promise. Use only what is in my sheet and what I tell you.
- If something is missing, write [check: what is missing] and keep going.

Last, save these steps as a Gem called 'Clean My Lead Sheet' so you do it this way each time my list gets messy. In Claude or ChatGPT, save them as a skill called 'Clean My Lead Sheet'.
To run it again, just say: "Run my Clean My Lead Sheet Gem."

Connect first: your files. The steps for each AI are on one page. Then the prompt reads it for you. It ends by saving itself as a skill.

Built on Fanatical Prospecting's rule to own your database.

You needYour filesGeminiTested on sample data

AuthorCorey Leon

Back to the guide

Don't see your work here?

Tell me what you do every day, and I'll make guides and prompts for it.

Want this built for you?