Organize contacts and prepare better follow-up, with the assistant you already use.
Version 2026-09-15-v1. Works with ChatGPT, Claude or Gemini on any plan that can read an uploaded or pasted file. Pick the current default model in the app; nothing here depends on a specific model.
Five roles, five different jobs
The same exercise, but each person on a mortgage team does a different part of it. Use your own titles.
Loan officer
Decide. Read the follow-up queue, edit or reject the borrower draft, and decide which duplicate is the real contact. Nothing goes out without you.
Loan officer assistant
Run it. Upload the file, paste the prompt, answer the setup questions, and hand the table and drafts to the loan officer with the exception list on top.
Processor
Resolve conflicts. Check the conflicting statuses and closing dates against the file of record and write down which source wins and why.
Branch manager
Review weekly. Read the exception list, confirm each task has an owner, and confirm nobody merged two records to make the list shorter.
Owner
Set the rules first. Which assistant and plan your company uses, its data settings, what may be pasted into it, and the rule that nothing is written to the CRM or sent to a client without a person's review.
What you get at the end
- A contact table that keeps every contact ID as its own row. Possible duplicates are flagged, never merged.
- A suggested follow-up queue with a proposed owner for each task. Suggestions, not CRM writes.
- Two unsent drafts: one for a borrower with an unambiguous record, one for a referral partner using only that partner's facts.
- The list of facts a person has to check before any of it is used.
The kit files
Seven small text files. Download what you need or read them here. All data is fictional.
- Download
README.md
The complete file list, version and how the kit fits together.
- Download
START-HERE.md
What you will produce, what you need, and the short version of the steps.
- Download
instructions.md
The ten steps, and which step is whose job on a mortgage team.
- Download
prompt.txt
The prompt to paste, exactly as written.
- Download
synthetic-contacts.csv
Eleven fictional contacts: two possible duplicates, one real date conflict, several blanks.
- Download
example-output.md
A hand-written example of a good result, and the answer key. Not a model run.
- Download
assistant-setup.md
Uploads, saved instructions and data settings in ChatGPT, Claude and Gemini, with the official pages.
Plain text and CSV, so they open in anything. The files carry version 2026-09-15-v1 and stay together; a later version replaces all of them at once.
The ten steps
Read once before you paste anything. The full text, with the field map, is in instructions.md.
- 1
Outcome
Four outputs: a record-preserving table, a suggested follow-up queue, two unsent drafts, and the facts that need a person. Anything else, such as a merged list or a sent message, means the run is wrong.
- 2
Boundaries
The prompt makes the assistant ask for your role, your goal, which assistant you are using, which data sources you have approved and the output format before it touches the data. Answer them; guessing is the failure this kit catches.
- 3
Field map
Ten columns. The contact ID is never dropped or merged. The possible-match group is a review flag. Dates and statuses can disagree between rows, and both get reported. Blanks stay blank.
- 4
Record handling
Every ID stays a separate row. Rows that share a match group are listed side by side with what matches and what does not, and a person confirms they are the same contact before any merge.
- 5
Follow-up queue
A task is built only from supplied facts and names a proposed owner. It is a suggestion, not an authorized CRM write.
- 6
Borrower draft
From one clean, unambiguous borrower row. No invented consent, status, rate, deadline, approval or promise. It stays unsent.
- 7
Referral-partner draft
Only the facts attached to that partner. If no borrower or file is tied to them in the data, the draft does not mention one. It stays unsent.
- 8
Exception review
Conflicting dates and statuses, missing fields and source-quality questions surface before any draft is used. The processor resolves the conflicts against the file of record.
- 9
Answer-key check
Compare every output statement with its input row. Confirm the duplicates are still separate, no task or message was created, and nothing was invented.
- 10
Optional Leaf360 path
When you are ready to work in an authorized Leaf360 account, start with a bounded read on the MCP page. The exact tested operations are stated there and below, separately from illustrative prompt ideas.
The practice data
Every name, phone number, email address, ID and note is fictional. The file deliberately contains two possible-match groups (MARIA-01, DAVID-01), a status conflict, a genuine closing-date conflict with one source marked unverified, missing contact fields and one clean borrower row for the unsent draft.
| contact_id | possible_match_group | name | role | status | last_contact_date | proposed_closing_date | notes | phone | |
|---|---|---|---|---|---|---|---|---|---|
| C-001 | MARIA-01 | Maria Delgado | Borrower | Pre-approved | 2026-08-28 | blank | Wants weekly updates | 555-0101 | maria.delgado@example.test |
| C-002 | blank | James Okafor | Prospect | New inquiry | blank | blank | Introduced by C-006; no contact yet | blank | james.okafor@example.test |
| C-003 | MARIA-01 | Maria Delgado | Borrower | In underwriting | 2026-09-02 | blank | Possible match to C-001; verify before any merge | 555-0101 | maria.delgado@example.test |
| C-004 | blank | Priya Nair | Referral Partner | Active | 2026-08-15 | blank | Real estate agent; notes say 2-3 leads/month | 555-0104 | priya.nair@example.test |
| C-005 | blank | Tom Vasquez | Borrower | Closed | 2026-07-30 | blank | File complete; no follow-up requested | 555-0105 | blank |
| C-006 | blank | Sarah Lin | Referral Partner | Active | 2026-09-05 | blank | Introduced C-002 | 555-0106 | sarah.lin@example.test |
| C-007 | DAVID-01 | David Kim | Borrower | Clear to close | 2026-09-10 | 2026-09-25 | Processor note dated 2026-09-10 | 555-0107 | david.kim@example.test |
| C-008 | blank | Anita Wells | Service Provider | Active | 2026-06-01 | blank | Title company contact | 555-0108 | anita.wells@example.test |
| C-009 | DAVID-01 | David Kim | Borrower | Approved | 2026-09-12 | 2026-09-18 | Borrower call note dated 2026-09-12; date source not verified | 555-0107 | david.kim@example.test |
| C-010 | blank | blank | Prospect | New inquiry | 2026-09-01 | blank | Left voicemail; name not captured | 555-0110 | blank |
| C-011 | blank | Elena Park | Borrower | Processing | 2026-09-08 | blank | Asked for email updates; consent status not supplied | 555-0111 | elena.park@example.test |
The prompt
Paste it exactly. It makes the assistant ask you the boundary questions first, then keeps every record, flags every conflict, and refuses to send or write anything.
Before doing anything, ask me for any of these that are missing: my role, my business goal for this list, which assistant I am using, which data sources I have approved, and the output format I want. Then use only the supplied synthetic contact CSV.
Rules:
1. Preserve every contact_id as a separate row. Never merge rows.
2. Treat possible_match_group as a review flag, not permission to merge. Say which rows share a group and what a person must check before deciding they are the same contact.
3. Separate input facts from your suggestions. Label each suggestion as a suggestion.
4. Flag every conflicting status or date between rows in the same group, and every blank field. Leave blanks blank. Do not fill them in.
5. Produce three things: an organized table of all rows, a proposed task list with a proposed owner for each task, and two unsent message drafts: one for a borrower whose record is unambiguous, and one for a referral partner using only the facts attached to that partner.
6. Do not invent consent, status, rates, approvals, deadlines, relationships, referred files, or follow-up commitments.
7. Do not connect to an account, change a record, create a task, or send a message. Everything you produce is for a person to review.
8. End with the list of questions a person has to resolve before any of this is used.If your assistant still merges a row or invents a fact, say so in the same conversation, run the answer-key check again, and keep the corrected instruction in your saved project or Gem.
What a good result looks like
Excerpts from example-output.md. Your result will be worded differently; check it against the answer key, not the wording.
Proposed tasks, not CRM writes
- 1Review C-001 and C-003 as two separate records and decide whether they match. Proposed owner: loan officer.
- 2Review C-007 and C-009 as two separate records; verify the current status and whether 2026-09-18 or 2026-09-25 is supported by the file. Proposed owner: loan officer or processor.
- 3Identify C-010 before attempting any outreach. Proposed owner: intake owner.
- 4Decide whether C-002 needs a phone number or whether email is the approved contact route. Proposed owner: lead owner.
No task was created anywhere. Owner labels are suggestions for the practice run.
Unsent draft from C-011, Elena Park, Processing
Hi Elena, I am checking in while your loan is in processing. Do you have any questions about the next steps?
Source check: Name and status come from C-011. No consent, closing date, approval, rate or future follow-up is claimed. Unsent.
Unsent draft from C-004, Priya Nair, active referral partner
Hi Priya, I am checking in. Would a quick conversation about your buyers' current needs be useful?
Source check: No borrower or file is tied to Priya in the data, so the draft names none. Unsent.
The answer key: a conforming result must
- 1All eleven IDs are present as separate rows.
- 2MARIA-01 and DAVID-01 are flagged as possible matches and not merged.
- 3Both David closing dates, 2026-09-25 and 2026-09-18, and the unverified-source note on C-009 are reported without a winner.
- 4Maria's conflicting statuses are reported without selecting one.
- 5C-002's missing phone and last contact date, C-005's missing email, and C-010's missing name and email stay missing.
- 6The borrower draft uses C-011 and the partner draft uses C-004, each matching only its supplied fields.
- 7No claim that Priya referred a particular file.
- 8Every task and message is a suggestion or a draft. No connection, CRM change or send occurred.
- 9No invented consent, status, rate, approval, deadline, relationship or commitment.
- 10The output ends with the questions a person has to resolve.
Set it up in ChatGPT, Claude or Gemini
Where to upload the file, where to save the prompt, and the data setting to check before real data. Read from each vendor's official help pages on 15 September 2026; the pages win if they change. These describe the apps, not the APIs, and name no model.
ChatGPT
- Upload the practice file
- File uploads are on Free and paid plans, subject to plan limits. Spreadsheets and CSV files are supported, up to roughly 50 MB each; Free is limited to 3 uploads a day. The practice file is 1 KB.
- Save the instructions
- Projects are on all free and paid plans. Put the prompt in the project instructions and the CSV in the project files; project instructions override your global custom instructions inside that project.
- Check the data setting before real data
- On individual plans OpenAI may use your content to train its models unless you turn off "Improve the model for everyone" under Settings, then Data Controls. Temporary Chat is not used for training. ChatGPT Business, Enterprise and the API are not trained on by default.
Claude
- Upload the practice file
- Attach the CSV to a chat or drag it in. CSV, PDF, DOCX, TXT and XLSX are supported; up to 500 MB per file and 20 files in a chat, or 30 MB per file in a project's files.
- Save the instructions
- Projects are available to all users, including free accounts. Put the prompt in the project instructions and the CSV in the project knowledge.
- Check the data setting before real data
- On consumer plans the setting is under Settings, then Privacy, "Help improve our AI models"; turning it off stops future chats from being used for training. Commercial products such as Claude for Work are not used for training by default.
Gemini
- Upload the practice file
- Signed in to Gemini Apps, upload documents and spreadsheets: most file types up to 100 MB, up to 10 files in one prompt, with higher limits on a Google AI plan.
- Save the instructions
- A Gem is a saved set of instructions. Under Explore Gems, then New Gem, paste the prompt as the instructions and add the CSV under Knowledge.
- Check the data setting before real data
- With Keep Activity on, Google uses Gemini Apps activity, including uploaded files, to improve its services and train its models. Turn Keep Activity off and future chats are not used for that unless you send feedback. A subset of chats may be read by human reviewers, so do not enter confidential information.
Which one? The one your company already pays for and has approved. This kit has not measured them against each other. The answer key is the scorecard if you want to.
Before any real data goes in
- Practice with the fictional file first. Nothing in it belongs to a real person.
- Before a real contact list goes into any assistant, check that assistant's data setting above, and follow your company's policy and applicable law. This page is not legal advice.
- Paste the minimum. A follow-up draft needs a name and a status, not a Social Security number, an income or a credit report.
- Keep the review step. The prompt forbids the assistant from writing to a CRM or sending anything, and the answer key checks that it obeyed.
Optional: the Leaf360 path
When you are ready to work in an authorized Leaf360 demo or account, start with a bounded read such as one loan or one lead plus the total count. Confirm the workspace and the returned record before requesting any write.
In Leaf360's own demo verification on 15 September 2026, those two bounded reads succeeded, each returning one record and the total count. A separately authorized test created one clearly labeled demo task on one demo lead, read it back as pending, completed it, and read it back as completed. That is the whole of what has been tested; nothing in this kit was run against Leaf360, and the prompt ideas on the MCP page were not part of that test.
Connect an MCP client to Leaf360Questions about the starter kit
No. The kit is a downloadable exercise with fictional data that runs in ChatGPT, Claude or Gemini. Leaf360 only comes in at the optional last step, which links to the MCP setup page and states exactly what has been tested there.
Run it on the practice file. Then decide.
When the exercise is second nature, Leaf360 is where the same review step lives next to your real pipeline.
Free plan. No credit card. Published pricing.