Case study: FirstReply

An AI receptionist that answers the phone.

FirstReply is our own AI receptionist, and it answers our office line, (916) 618-0502. It checks who is calling, books a time on our calendar while the caller is still on the line, and sends the owner a written summary in Telegram. We designed and built all of it, and we adapt it to a client's own phone line and CRM.

Built per client and sold as a project.

Telegram message during a call answered by the assistant: the caller's number, the live transcript and a Hang up button. Fictional caller. Telegram message after the call asking whether to add the new caller to the CRM, with Add to CRM and Skip buttons. Fictional caller.
Messages rendered by FirstReply's own code for a fictional caller. The conversation is written for the example.
Project
Our own product, on our office line
Our work
Design, development, phone setup, hosting
Timeline
Since June 2026, ongoing
Stack
Python, FastAPI, PostgreSQL, Telnyx, Cal.com, Telegram
Status
Live on (916) 618-0502

What the owner gets

From the first ring to the written summary, in four steps.

  1. A person answers first

    With ring-first switched on, the business's own phone rings first, for 18 seconds by default. If nobody picks up, the assistant takes the same call.

  2. It knows who is calling

    While the phone rings, the number is looked up in our CRM. A known caller is greeted by name from the first words.

  3. Booking happens on the call

    The assistant reads open times from the Cal.com calendar and books one while the caller is still on the line, then confirms the day and time out loud.

  4. The owner follows in Telegram

    While the assistant is on the call, its transcript appears in a Telegram message as it is spoken, with a Hang up button beside it. A written summary follows when the call ends.

Two Telegram messages for a known caller: the ringing notice with the caller's name and call history, then the call summary with callback number, needs, urgency and notes. Fictional caller.

What comes out

Two moments of one fictional call: the ringing notice, then the summary that follows it. Both are produced by the product's own message code.

  • A known caller shows up by name from the CRM, with how many times they have called before.
  • The summary lists the callback number, what the caller needs and how urgent it is. A detail the caller never gave is left out, not guessed.
  • The number is plain text you can tap to copy, with the line type and carrier next to it.
  • While a call is live, the first message is edited in place from ringing to answered to finished. The written summary arrives right after.

How it stays reliable

A phone line has no second chance at a first impression. Four rules built into the code.

No notice, no recording

One switch turns on the spoken recording notice and the recording together. If the notice text is empty, recording does not start, and an automated test checks every way a call can begin. The notice always plays before any recording begins.

Contacts need a tap

A number that just held a real conversation can look like a new customer or like a robocall. So nothing is written to the CRM automatically: the owner gets an Add to CRM button, and only a tap creates the contact.

The call never waits on software

The CRM lookup and the Telegram messages run beside the call, and the spam check lets the call through if it breaks. If any of them is slow or fails, the caller still gets an answer.

Silence alone gets a number blocked

A number is blocked automatically only after three calls in which nobody said a word. A caller who has spoken even once is never blocked this way: turning away one real customer costs more than a few robocalls.

What happens when your phone rings and nobody picks up?

We build a version for your own phone line and CRM, with booking into your Cal.com calendar, and price it as a project.

Tell us what's slowing you down.

We reply the same business day.

No mobile information will be shared with third parties or affiliates for marketing or promotional purposes.