Book a demo Try it yourself

HOW IT WORKS

From text to booked, step by step.

What Madeira does in the seconds after a client texts, and why it can't book anything they didn't say yes to.

Reply speed · in testing

01

It reads the whole thing.

Three texts in a row, slang, a change of mind, two questions at once. Madeira waits a beat, reads everything together, and works out what they actually want.

What that means

  • Bursts of texts are read as one message.
  • Slang and approximate times like ‘tmrw’, ‘4ish’ and ‘sat am’ make sense.
  • A correction like ‘push it to 3’ keeps the service and day.
  • Two requests in one text are handled one at a time, in order.
4:12
J
Juniper Hair StudioText message

Today 1:37 PM

  1. Client: hi
  2. Client: need a cut fri
  3. Client: around 3??
  4. System check: 3 TEXTS · READ AS ONE
  5. System check: UNDERSTOOD · Haircut · Friday · around 3
  6. System check: CHECKED · Friday · Kylie 3:00 taken · Jaylen 3:00 ✓ · Kylie 3:45 ✓
  7. Ava, Juniper Hair Studio's assistant: Hey! Friday at 3 is open with Jaylen, or Kylie has 3:45. Which works better?
  8. Client: jaylen at 3 is great, I'm Sam
  9. System check: OFFER LOCKED · Haircut · Friday 3:00 · Jaylen · Sam
  10. Ava, Juniper Hair Studio's assistant: Thanks, Sam! Want me to book your haircut with Jaylen Friday at 3?
  11. Client: 👍
  12. System check: CLEAR YES · 👍 counts · rechecked, still open
  13. System check: BOOKED
  14. Ava, Juniper Hair Studio's assistant: You're all set, Sam! See you Friday at 3.

Example conversation · Juniper Hair Studio (fictional)

Example conversation

Juniper Hair Studio · fictional business

  1. Client: hi
  2. Client: need a cut fri
  3. Client: around 3??
  4. System check: 3 TEXTS · READ AS ONE
  5. System check: UNDERSTOOD · Haircut · Friday · around 3
  6. System check: CHECKED · Friday · Kylie 3:00 taken · Jaylen 3:00 ✓ · Kylie 3:45 ✓
  7. Ava: Hey! Friday at 3 is open with Jaylen, or Kylie has 3:45. Which works better?
  8. Client: jaylen at 3 is great, I'm Sam
  9. System check: OFFER LOCKED · Haircut · Friday 3:00 · Jaylen · Sam
  10. Ava: Thanks, Sam! Want me to book your haircut with Jaylen Friday at 3?
  11. Client: 👍
  12. System check: CLEAR YES · 👍 counts · rechecked, still open
  13. System check: BOOKED
  14. Ava: You're all set, Sam! See you Friday at 3.
02

It checks before it speaks.

It looks at your live calendar for that service and day, person by person, and pulls up the client's own appointments and preferences. Every single time.

In testing · Owner approval required before launch

What that means

  • Live availability is checked for that service and day.
  • The client's own appointments are pulled up.
  • Avoided staff are removed before anything is offered.
  • Your hours, closures and services stay in charge.
4:12
J
Juniper Hair StudioText message

Today 1:37 PM

  1. Client: hi
  2. Client: need a cut fri
  3. Client: around 3??
  4. System check: 3 TEXTS · READ AS ONE
  5. System check: UNDERSTOOD · Haircut · Friday · around 3
  6. System check: CHECKED · Friday · Kylie 3:00 taken · Jaylen 3:00 ✓ · Kylie 3:45 ✓
  7. Ava, Juniper Hair Studio's assistant: Hey! Friday at 3 is open with Jaylen, or Kylie has 3:45. Which works better?
  8. Client: jaylen at 3 is great, I'm Sam
  9. System check: OFFER LOCKED · Haircut · Friday 3:00 · Jaylen · Sam
  10. Ava, Juniper Hair Studio's assistant: Thanks, Sam! Want me to book your haircut with Jaylen Friday at 3?
  11. Client: 👍
  12. System check: CLEAR YES · 👍 counts · rechecked, still open
  13. System check: BOOKED
  14. Ava, Juniper Hair Studio's assistant: You're all set, Sam! See you Friday at 3.

Example conversation · Juniper Hair Studio (fictional)

Example conversation

Juniper Hair Studio · fictional business

  1. Client: hi
  2. Client: need a cut fri
  3. Client: around 3??
  4. System check: 3 TEXTS · READ AS ONE
  5. System check: UNDERSTOOD · Haircut · Friday · around 3
  6. System check: CHECKED · Friday · Kylie 3:00 taken · Jaylen 3:00 ✓ · Kylie 3:45 ✓
  7. Ava: Hey! Friday at 3 is open with Jaylen, or Kylie has 3:45. Which works better?
  8. Client: jaylen at 3 is great, I'm Sam
  9. System check: OFFER LOCKED · Haircut · Friday 3:00 · Jaylen · Sam
  10. Ava: Thanks, Sam! Want me to book your haircut with Jaylen Friday at 3?
  11. Client: 👍
  12. System check: CLEAR YES · 👍 counts · rechecked, still open
  13. System check: BOOKED
  14. Ava: You're all set, Sam! See you Friday at 3.
03

It writes in its own words. With only your facts.

The reply is Madeira's. Every time, price and name in it is yours. Anything it can't back up with your calendar or settings never gets sent.

What that means

  • It writes in your voice, one question at a time.
  • It offers two or three useful choices.
  • Every fact traces back to your records or the client's words.
  • A draft that fails a check is rewritten before it can be sent.
4:12
J
Juniper Hair StudioText message

Today 1:37 PM

  1. Client: hi
  2. Client: need a cut fri
  3. Client: around 3??
  4. System check: 3 TEXTS · READ AS ONE
  5. System check: UNDERSTOOD · Haircut · Friday · around 3
  6. System check: CHECKED · Friday · Kylie 3:00 taken · Jaylen 3:00 ✓ · Kylie 3:45 ✓
  7. Ava, Juniper Hair Studio's assistant: Hey! Friday at 3 is open with Jaylen, or Kylie has 3:45. Which works better?
  8. Client: jaylen at 3 is great, I'm Sam
  9. System check: OFFER LOCKED · Haircut · Friday 3:00 · Jaylen · Sam
  10. Ava, Juniper Hair Studio's assistant: Thanks, Sam! Want me to book your haircut with Jaylen Friday at 3?
  11. Client: 👍
  12. System check: CLEAR YES · 👍 counts · rechecked, still open
  13. System check: BOOKED
  14. Ava, Juniper Hair Studio's assistant: You're all set, Sam! See you Friday at 3.

Example conversation · Juniper Hair Studio (fictional)

Example conversation

Juniper Hair Studio · fictional business

  1. Client: hi
  2. Client: need a cut fri
  3. Client: around 3??
  4. System check: 3 TEXTS · READ AS ONE
  5. System check: UNDERSTOOD · Haircut · Friday · around 3
  6. System check: CHECKED · Friday · Kylie 3:00 taken · Jaylen 3:00 ✓ · Kylie 3:45 ✓
  7. Ava: Hey! Friday at 3 is open with Jaylen, or Kylie has 3:45. Which works better?
  8. Client: jaylen at 3 is great, I'm Sam
  9. System check: OFFER LOCKED · Haircut · Friday 3:00 · Jaylen · Sam
  10. Ava: Thanks, Sam! Want me to book your haircut with Jaylen Friday at 3?
  11. Client: 👍
  12. System check: CLEAR YES · 👍 counts · rechecked, still open
  13. System check: BOOKED
  14. Ava: You're all set, Sam! See you Friday at 3.
04

It makes one exact offer.

This service, this day, this time, with this person. Nothing vague, nothing extra, one clear question.

What that means

  • One service, day and time are frozen into the offer.
  • The person is named when you have a team.
  • The exact day and time are always stated.
  • The offer ends with one clear question.
4:12
J
Juniper Hair StudioText message

Today 1:37 PM

  1. Client: hi
  2. Client: need a cut fri
  3. Client: around 3??
  4. System check: 3 TEXTS · READ AS ONE
  5. System check: UNDERSTOOD · Haircut · Friday · around 3
  6. System check: CHECKED · Friday · Kylie 3:00 taken · Jaylen 3:00 ✓ · Kylie 3:45 ✓
  7. Ava, Juniper Hair Studio's assistant: Hey! Friday at 3 is open with Jaylen, or Kylie has 3:45. Which works better?
  8. Client: jaylen at 3 is great, I'm Sam
  9. System check: OFFER LOCKED · Haircut · Friday 3:00 · Jaylen · Sam
  10. Ava, Juniper Hair Studio's assistant: Thanks, Sam! Want me to book your haircut with Jaylen Friday at 3?
  11. Client: 👍
  12. System check: CLEAR YES · 👍 counts · rechecked, still open
  13. System check: BOOKED
  14. Ava, Juniper Hair Studio's assistant: You're all set, Sam! See you Friday at 3.

Example conversation · Juniper Hair Studio (fictional)

Example conversation

Juniper Hair Studio · fictional business

  1. Client: hi
  2. Client: need a cut fri
  3. Client: around 3??
  4. System check: 3 TEXTS · READ AS ONE
  5. System check: UNDERSTOOD · Haircut · Friday · around 3
  6. System check: CHECKED · Friday · Kylie 3:00 taken · Jaylen 3:00 ✓ · Kylie 3:45 ✓
  7. Ava: Hey! Friday at 3 is open with Jaylen, or Kylie has 3:45. Which works better?
  8. Client: jaylen at 3 is great, I'm Sam
  9. System check: OFFER LOCKED · Haircut · Friday 3:00 · Jaylen · Sam
  10. Ava: Thanks, Sam! Want me to book your haircut with Jaylen Friday at 3?
  11. Client: 👍
  12. System check: CLEAR YES · 👍 counts · rechecked, still open
  13. System check: BOOKED
  14. Ava: You're all set, Sam! See you Friday at 3.
05

It waits for a real yes.

A clear yes books it on the first try. ‘Hmm ok’, ‘wait’ or ‘yes but 11’ never do. And right before it books, it checks the slot is still free.

What that means

  • A clear yes works in any words, on the first try.
  • Hesitant, held, changed or conditional replies never act.
  • The slot is rechecked at the moment of yes.
  • A double yes never makes a double booking.
4:12
J
Juniper Hair StudioText message

Today 1:37 PM

  1. Client: hi
  2. Client: need a cut fri
  3. Client: around 3??
  4. System check: 3 TEXTS · READ AS ONE
  5. System check: UNDERSTOOD · Haircut · Friday · around 3
  6. System check: CHECKED · Friday · Kylie 3:00 taken · Jaylen 3:00 ✓ · Kylie 3:45 ✓
  7. Ava, Juniper Hair Studio's assistant: Hey! Friday at 3 is open with Jaylen, or Kylie has 3:45. Which works better?
  8. Client: jaylen at 3 is great, I'm Sam
  9. System check: OFFER LOCKED · Haircut · Friday 3:00 · Jaylen · Sam
  10. Ava, Juniper Hair Studio's assistant: Thanks, Sam! Want me to book your haircut with Jaylen Friday at 3?
  11. Client: 👍
  12. System check: CLEAR YES · 👍 counts · rechecked, still open
  13. System check: BOOKED
  14. Ava, Juniper Hair Studio's assistant: You're all set, Sam! See you Friday at 3.

Example conversation · Juniper Hair Studio (fictional)

Example conversation

Juniper Hair Studio · fictional business

  1. Client: hi
  2. Client: need a cut fri
  3. Client: around 3??
  4. System check: 3 TEXTS · READ AS ONE
  5. System check: UNDERSTOOD · Haircut · Friday · around 3
  6. System check: CHECKED · Friday · Kylie 3:00 taken · Jaylen 3:00 ✓ · Kylie 3:45 ✓
  7. Ava: Hey! Friday at 3 is open with Jaylen, or Kylie has 3:45. Which works better?
  8. Client: jaylen at 3 is great, I'm Sam
  9. System check: OFFER LOCKED · Haircut · Friday 3:00 · Jaylen · Sam
  10. Ava: Thanks, Sam! Want me to book your haircut with Jaylen Friday at 3?
  11. Client: 👍
  12. System check: CLEAR YES · 👍 counts · rechecked, still open
  13. System check: BOOKED
  14. Ava: You're all set, Sam! See you Friday at 3.

WHAT IT HANDLES

Texts don't arrive in perfect sentences.

Madeira keeps up with the way clients actually text.

Slang
  1. Example conversation: cut 2day 6pm
  2. Example: Flip for an example
  3. Madeira: 6 today works for a haircut! What name should I put it under?
Bursts
  1. Example conversation: hi · need a cut fri · around 3
  2. Example: Flip for an example
  3. Madeira: Friday Kylie has 2:45 or 3:45. Which works?
Corrections
  1. Example conversation: ugh my bad, push it to 3
  2. Example: Flip for an example
  3. Madeira: No worries, 3 works too!
Two requests
  1. Example conversation: cancel friday and book me wednesday at 4
  2. Example: Flip for an example
  3. Madeira: Want me to cancel your haircut Friday at 2? Then I'll set up Wednesday.
Questions mid-booking
  1. Example conversation: how long does it take? and is friday at 3 ok?
  2. Example: Flip for an example
  3. Madeira: About 45 minutes, and Friday at 3 is open with Kylie. Want me to book it?
Pointing
  1. Example conversation: the earlier one
  2. Example: Flip for an example
  3. Madeira: 12 it is!
Regulars

In testing · Owner approval required before launch

  1. Example conversation: when's my next one?
  2. Example: Flip for an example
  3. Madeira: Hey Maya! Friday at 2 with Kylie.
The usual

In testing · Owner approval required before launch

  1. Example conversation: my usual thursday around 5?
  2. Example: Flip for an example
  3. Madeira: For your women's cut, Kylie has 5 or 5:30.
Family phones

In testing · Owner approval required before launch

  1. Example conversation: what time is my appointment?
  2. Example: Flip for an example
  3. Madeira: Happy to check! Who am I chatting with?
Kids and partners

In testing · Owner approval required before launch

  1. Example conversation: book my son Max sat at 10
  2. Example: Flip for an example
  3. Madeira: Of course! What's a good number for Max?
Your team

In testing · Owner approval required before launch

  1. Example conversation: fade with marco thu at 4?
  2. Example: Flip for an example
  3. Madeira: Marco's booked at 4. Dani's free at 4, or Marco has 4:45.
Memory

In testing · Owner approval required before launch

  1. Example conversation: sat morning, just not with dani
  2. Example: Flip for an example
  3. Madeira: Got it. Saturday morning Marco has 9:30 or 10:15. Which works?
Running late
  1. Example conversation: running 10 late!!
  2. Example: Flip for an example
  3. Madeira: No worries! I've let the team know.
Needs a person
  1. Example conversation: can I talk to someone?
  2. Example: Flip for an example
  3. Madeira: I've passed this to the team so they can take a look.
Are you a bot?
  1. Example conversation: is this a real person lol
  2. Example: Flip for an example
  3. Madeira: I'm Ava, the salon's virtual assistant! I can bring in the team anytime.
Opt out
  1. Example conversation: STOP
  2. Example: Flip for an example
  3. Madeira: Carrier-standard opt-out confirmation. No AI reply.

Three gates. One simple promise.

The words can feel natural because the facts, actions and privacy are kept behind code.

The facts gate

Only what's real.

Every fact has to come from your calendar, settings, records or the client's own words.

The yes gate

Only after a clear yes.

Nothing changes without an exact offer, a clear yes and one last check.

The privacy gate

Only for the right person.

Private details are shown only after Madeira knows who it's talking to.

UNDER THE HOOD

For the person who asks ‘but how?’

The AI never touches your calendar.

The AI reads and writes the conversation. Code builds the offer, checks the yes and makes the booking. The AI can ask; it can't act.

Every reply is built fresh from your records.

Each time a client texts, Madeira rebuilds the picture from your own database: the live calendar, the client's appointments, what's in progress. No conversation lives on the AI provider's side, so it's never working from a stale copy, and less of your clients' data sits with anyone else.

Checks that block, and checks that polish.

Safety checks (facts, offers, privacy) can stop a reply from being sent. Style checks can only ask for a rewrite. So a false alarm never turns a good reply into a worse one.

Every yes is checked before it acts.

A clear yes is checked against the current offer and your calendar. A hesitant or changed reply never books. The words stay warm; the action checks are exact.

Not tied to one AI model.

Because conversations live in your records, the AI model behind Madeira can be upgraded or switched without losing a single thread.

Built against the hard cases.

Every tricky situation we've found—two requests in one text, a yes with a question, a family phone, a slot taken mid-conversation, a stylist someone won't see again—is mapped to a rule in the system and a test that proves it.

In testing · Owner approval required before launch

Your settings are the source of truth.

Services, who does what, hours and policies live in your settings. Change them and the very next text uses them. An offer made under old settings is rechecked at the yes.

[OWNER: confirm settings versioning and rollback before publishing that under-the-hood claim]

See it handle your trickiest texts.

Book a demo

Let your front desk text back.

A 15-minute walkthrough on your kind of business. Bring your trickiest client texts.

Fields marked required help us tailor your demo.

[OWNER: durable lead destination]