Closer Playbook · proposed node

They're Not Sure We're Real

Handling doubt, and every request that is secretly doubt wearing a payment question.

Preview · built from the Happy Mummy close, 25 Aug 2026

Hold the line.
And never reciprocate the accusation.

Two moves, in that order, and they are the whole node. Hold the line means the terms do not bend because someone got nervous. Never reciprocate means you do not step into their frame and argue it — the second you say "we're not a scam", you have accepted that this is a conversation about whether you are a scam.

You are not on trial. Do not enter a plea.

Read the client

She did not ask for a 50% invoice. She asked whether you were real.

Doubt almost never arrives as "are you a scam". It arrives dressed as something reasonable:

All the same cause. Someone asking to pay less upfront is protecting themselves, not negotiating. They are not trying to save money. They are trying to lose less if you turn out to be nobody.

Do this

Never reciprocate the accusation. Do not say "we're not a scam", "we're legit", "we're real", "we're not fake". Repeating their word accepts their frame. The denial is what makes it sound like a denial, and now you are the one defending. Answer a different question instead.
Never attach a deadline to a fear. Deadlines are for people stalling, not people scared. A clock on a nervous client confirms exactly what they were nervous about.
Hold the line without justifying it. 70/30 does not move, and it does not move for anyone. State it once, flat, no reason given. Explaining why is already halfway to negotiating. The firmness is what makes everything after it credible.
Point at things that already exist. Not promises. Things they can check without leaving the chat.
Then ask for more questions. "Anything else you want to know?" is the whole move. A con artist never invites further scrutiny, and both of you know it.

The proof ladder — lead with the top

  1. Their own live siteAlready built, already online, built before they paid a cent. Strongest thing you own, because it is about them and it took real work.
  2. Google reviewsThird party, not ours to fake. https://maps.app.goo.gl/YHrgEVEyHD7mnWXLA?g_st=ic
  3. Portfolioreputifly.com/portfolio — our claim, but checkable in one tap.
  4. Registered companyReputifly Pte Ltd, Singapore. A fact, verifiable on ACRA.
  5. Client count130+. Weakest rung — it is a number we assert. Never lead with it alone.

⭐ Rule: lead with what they can check without leaving the conversation. The live site beats every other rung because it already exists and it is theirs.

The script — one message, send it whole

send as ONE block · reviews screenshot as the image, this as the caption

we've got 130+ client websites running live on our own servers. we are a registered pte ltd company in singapore. we run critical systems for the largest interior design group in singapore. they signed with us for 3 years. your full site is already built and live at «link». we did all of it before you paid a cent. google reviews: https://maps.app.goo.gl/YHrgEVEyHD7mnWXLA?g_st=ic portfolio: reputifly.com/portfolio anything else you want to know? if not, shall we get started?

Cold open. No preamble, no "fair to ask", no acknowledging the question was even a question. You answer as if they asked for a company profile. That is the non-reciprocation done tonally instead of by argument — you never enter the frame at all.

Four different kinds of proof, stacked: volume and infrastructure · legal existence · trusted with critical systems · their own site, already built. Each line is a different category. Any one alone is arguable. Four is not.

"Run" not "built", and it matters. Anyone can claim they built something. Nobody maintains 130 live sites and disappears. Ongoing operation is the thing a scam cannot fake.

"Critical systems" does the same job on the third line. Nobody hands critical systems to someone they are unsure about. The sentence argues it for you.

If they asked to change the terms

50% · pay after · half now half later · prefix this, then send the block above

we keep it at 70/30 for every client.

One line, flat, no reason given. Then the proof block, unchanged. Explaining why the terms exist is already halfway to negotiating them.

⛔ Farhan never offers a reduced deposit and never mentions one exists. A concession you can grant is not the same as a concession you advertise. That decision is Julian's alone, per deal.

The worked example — same client, 20 minutes apart

✗ What went out first

Sorry we can't do the 50% invoice We're not a scam as we have over 130+ clients + We built a full preview for you to see If you are keen you can let us know today. Else we will wind down the site.

✓ What closed it

No 50% invoice. 130+ clients. We built your full site already, it's live, go look. [extra year, no deadline attached] Yes. Any other questions?

Three differences. Make Farhan name them before you tell him.

  1. "We're not a scam" repeats the accusation. The second version points at the site instead. That is not a claim, it is a thing she can click.
  2. A deadline got bolted onto a fear. She was nervous about exposure. A clock confirms the fear.
  3. One defended. One invited. "Any other questions" dissolves doubt because it welcomes more of it.

⛔ Do not let him take "no 50%" as the lesson. That is the easy half and he already knew it. The lesson is the second line.

Where it goes

New node under Objections & Questions, beside price, faq, spammer and timewaster. Trigger is doubt, not price, which is why it does not live inside price.

Boundaries, so it does not duplicate anything:

⚠️ Not in the live playbook. The reputiflytools repo is not on the Build box and Build holds no GitHub credentials, so this cannot be pushed from here. Paste on book-out.

MENU entry — needs adding too

A node with no MENU entry is unreachable except by deep link. Add this inside the Objections & Questions group, directly after price:

{"id":"credibility","ic":"🛡️","tt":"They're Not Sure We're Real","ds":"hold the line, never reciprocate","kw":"credibility scam legit legitimate real fake trust trusted doubt doubtful suspicious sceptical skeptical proof prove verify verified registered acra pte ltd company office address 50% fifty percent half deposit reduce lower smaller pay after upfront ai generated is this ai reviews google reviews portfolio references safe secure risk"}

The shield icon is a suggestion, not a script emoji — every existing node carries an ic. Swap it if you want a different one.

Safe edit checklist — from the last time this went wrong

  1. git fetch, confirm main...origin/main is clean before touching anything. The laptop copy has gone stale before and the push was rejected.
  2. Insert by anchored string replacement on the blob. Do not reformat the file.
  3. Re-parse BOTH blobs and assert the node and menu counts went up by exactly one.
  4. Diff the parsed NODES against git show HEAD: and assert only credibility differs. This is the check that proves nothing else got mangled.
  5. Run the playbook's own waFmt over the new text — confirms every *bold* pair closes.
  6. Commit, push, then verify off the LIVE url with curl, not the local copy. Pages takes about a minute. reputifly.org is blocked in the in-app browser.
  7. Check the deep link works: reputifly.org/closer-playbook/#credibility

Node JSON — paste-ready

credibility: {
  title: "They're Not Sure We're Real",
  tag: "objection",
  label: "doubt / reduce my exposure",
  do: "*HOLD THE LINE. AND NEVER RECIPROCATE THE ACCUSATION.*\n\nDoubt rarely arrives as \"are you a scam\". It arrives as 50%, pay-after, do you have an office, is this AI. Same cause: they are trying to lose less if you turn out to be nobody.\n\n\u26d4 *Never reciprocate.* No \"we're not a scam\", no \"we're legit\". Repeating their word accepts their frame and now you are the one defending. You are not on trial, do not enter a plea.\n\u26d4 *Never attach a deadline to a fear.* Clocks are for stallers, not for the scared.\n\u2705 *Hold the line without justifying it.* 70/30 does not move. Flat, once, no reason given. Explaining why is already halfway to negotiating.\n\u2705 *Send ONE block, not four messages.* Four bubbles defending yourself reads anxious. One block reads like a fact sheet.\n\u2b50 *End by inviting more.* A con artist never asks for further scrutiny.",
  readClient: "A payment request is the symptom, doubt is the cause. Answer the fear and the payment question disappears. Answer the payment question and you lose politely. Proof ladder, strongest first: their own live site, google reviews, portfolio, Pte Ltd registration, client count. Lead with what they can check without leaving the chat.",
  scripts: [
    { n: "The block \u2014 send it whole",
      sit: "*USE THE MOMENT THEY DOUBT US*, however it arrives. Send as ONE message: reviews screenshot as the image, this as the caption. Cold open, no preamble, no acknowledging the question.",
      t: "we've got 130+ client websites running live on our own servers.\n\nwe are a registered pte ltd company in singapore.\n\nwe run critical systems for the largest interior design group in singapore. they signed with us for 3 years.\n\nyour full site is already built and live at \u00ab link \u00bb. we did all of it before you paid a cent.\n\ngoogle reviews: https://maps.app.goo.gl/YHrgEVEyHD7mnWXLA?g_st=ic\nportfolio: reputifly.com/portfolio\n\nanything else you want to know? if not, shall we get started?" },
    { n: "Prefix \u2014 only if they asked to change the terms",
      sit: "*USE WHEN they ask for 50%, pay-after, or half now half later.* Send this line, then the block above unchanged. \u26d4 Never offer a reduced deposit and never mention one exists \u2014 that call is Julian's alone, per deal.",
      t: "we keep it at 70/30 for every client." }
  ],
  next: [ { l: "They went quiet after this", to: "followup" } ]
}