Home · Telegram · Bot for registering clients in Telegram: login via QR and link
Telegram · customer record
Bot for registering clients in Telegram: login via QR and link
The client scans the QR at the counter or opens a link from the channel - and in a minute leaves a request directly in Telegram: service with a button, time in his own words, phone number. The administrator receives a push and confirms the time in the same chat.
Recording template - at any planQR for recording - freeReminder - "Pause" block
What does the bot do to post on Telegram?
Request an appointment in a minute
Service - with a button under the message, convenient time - in your own words, phone number - with format checking. The client does not need to look for a website and form: everything happens in the chat, which he will not lose.
Login via QR, from channel and post
Link t.me/your_bot?start=tag starts the recording immediately - from the QR at the mirror, channel description or post about the service. The code makes the section "QR campaigns" and counts bot launches for each tag.
Push and letter about a new entry
“Notify operator” sends a “New entry” push to the administrator, and a letter about the application is sent to the owner’s first phone number. The office is installed on the phone as an application - a smartphone is enough for the counter.
Confirmation in the same chat
The administrator answers from "Conversations": “Saturday, 12:30 free” - the client sees the answer in Telegram. Frequent phrases are in “Quick Answers”. Before “Return to bot” the bot does not respond to the client, but a reminder will come after the “Pause”.
Reminder in the same chat
“Pause” after the lead and a message with the time of the visit and the “I’ll come” and “Reschedule” buttons. The pause comes from the request: “1 day” - for a visit the day after tomorrow, for tomorrow you need less. Weeks ahead - newsletter by tag of the day from Basic.
Source and service - tagged
The src:qr or src:channel tag is at each input, and at the input from a post about one service there is also a service tag. A filter by tag in “Contacts” will show where the entries come from, and mailing by service tag from the Basic plan will call for a return visit.
How to start a post in Telegram
-
1
Take a post template
Click “Use record template” and register by e-mail - “Customer record” will be enabled in the bot. If you already have a bot: “Scripts” → “From template” → “Customer registration”.
-
2
Connect Telegram
Get a token from @BotFather with the /newbot command. In “Channels” on the “Telegram” card, click “Connect”, insert the token and “Connect Telegram” - the “Working” status will appear.
-
3
Correct buttons and texts
Replace the service buttons with your own, fill in “Into variable” at the time step: slot and add {{slot}} as confirmation. Check in Telegram: in the test chat “Check script” there are no buttons.
-
4
Share the link and QR
Turn on the script. In “QR campaigns”, create a code with a tag, add a “Deeplink” trigger to the script with this label and the first login step - the source tag. Place the link t.me/your_bot in your profile and channel.
Ready recording script
The “Customer Appointment” template asks for the service, convenient time and phone number, tags “appointment” and sends a “New appointment” notification. For Telegram, replace service buttons and add labeled inputs.
Appointment requests Service, day and time as text, phone, notification to you. Open →How the recording script works
Basis - template "Customer registration". It is launched by two triggers: “Command (/start)” and “Keywords” “record”, “sign up” in the “Contains a word” mode - the client writes “I want to sign up for a manicure”, and the recording starts without commands. Next are five steps:
| Step | The | What to fix for Telegram |
|---|---|---|
| Service | "Message" with buttons | Replace “Haircut”, “Manicure”, “Massage” with your services - in Telegram the buttons are placed one in a row. The choice is made only by clicking: the bot will not understand the service written in the text and will repeat the question, so remove the words “or write your own” from the text of the template. Name {{name}} do not put it in this step: in the very first response to a new client there is no name yet |
| Convenient time | "Data collection" | The client writes the time in his own words: “Saturday after 12.” Don't check the input. The answer is saved in the contact card; to substitute it in texts like {{slot}}, fill in “To variable”: slot |
| Phone | “Data collection” → “Phone” | With format checking. There is no “Share number” button - the number is entered as text; after three unsuccessful attempts, the script continues without a phone |
| Application to you | "Action" | Tag “record” and “Notify operator” with the text “New record”. Replace the text with “Record: {{name}}, {{slot}}, {{phone}}” and optionally add “Transaction in CRM” |
| Response to client | "Message" | For example: “{{name}}, we accepted the lead for {{slot}}. The administrator will confirm the time here in the chat.” Do not write “you are booked in”: the time has not yet been confirmed |
The name in Telegram is taken from the client’s profile - it can also be a nickname. If you need a real name, add “Data collection” → “Name” before the phone number. Next to the service buttons you can put a button “Opens a link”: “How to get there” - on the maps, “Price” - on the website. In the template, all service buttons lead to one next step - a question about time, so the “Steps” mode on the Free plan is enough for recording; on “Canvas” from the Basic plan, the same scheme is visible in its entirety. The same script is answered without changes in MAX, VKontakte and in the chat on the site (there - to the words “record” and “sign up”: there is no /start command in the chat on the site) - channels are connected in the same bot (write to MAX).
- The choice of service is included in the “Conversations” history with a button label - the “Label (payload)” field. In the template these are cut, nails and massage: set clear ones, for example manicure.
- The service itself is not written into the contact card: in the template, all service buttons lead to one step. It’s easier to put a service tag at the input - a link with a service tag and “Deeplink”, as in the table below.
- The time from the step is also visible after the conversation - in the contact card, in the “Contact Fields”.
- Variables like {{slot}} live inside the script: the new trigger resets them to zero, and they are not inserted into the mailing list.
- There are no buttons in the “Check script” test chat, and the bot will not accept text instead of clicking - check the entire entry in Telegram itself. The test chat does not expend the conversation limit.
Post inputs: link, tag, QR
The Telegram bot writes only to those who opened it themselves, so the recording starts from the login. Each input can have its own label - the part of the link after ?start=. The label is caught by the “Deeplink” trigger: in the “Payload Pattern” field write the label, in “Which step to start from” - the step from which this input will go.
| Login | Link | What's going on |
|---|---|---|
| Profile, website, business card | t.me/your_bot | The “Start” button is /start: the template immediately shows the service menu |
| QR at the counter or mirror | t.me/your_bot?start=salon | The code makes a “QR campaigns” section and counts launches. The client scans while he waits for the specialist, and the next entry is already through the bot |
| Channel description and pinned post | t.me/your_bot?start=channel | Subscribers sign up without leaving Telegram |
| Post about one service | t.me/your_bot?start=okrashivanie | "Deeplink" with this tag starts immediately with a question about the time, bypassing the menu. For the administrator to see the service, place a block with the service tag in front of the question. |
| Message “I want to sign up” | — | Template keywords trigger recording without commands |
To see where the entry came from, set the first block of the branch of each tag to “Action” → “Add tag”: src:qr, src:channel, - followed by a question that will start the recording. In a month, a filter by tag in “Contacts” will show which entrance is working, and mailing by service tag from the Basic plan will invite those who are due for a return visit. Read more about codes on the page QR codes for the bot.
- “QR campaigns” make a code only for the Telegram bot: PNG 600x600, “Download” button. Label – Latin alphabet, numbers, “_” and “-”, up to 40 characters.
- The counter counts bot launches by tag, not people: a repeated scan of the same client is another +1. The tag itself is not attached to the contact—the source saves only your tag.
- The “payload pattern” is triggered if the label contains this text: the qr pattern will also catch qr_zerkalo. Give the inputs labels that do not fit into each other.
- A label without a suitable “Deeplink” is not lost: the usual “Command (/start)” will work.
- CHBT does not put a button under the post of the channel and does not publish posts - insert the link with the tag into the text of the post or into the channel description.
Confirmation and reminder
Confirmation. After the “Action” step, the administrator receives a “New Entry” push, and a letter about the lead is sent to the owner’s first phone number. Both notifications are configured in “Account → Notifications”: “Push notifications” are enabled on each device separately, the letter is the “New requests from bots” switch. The conversation with the lead is located in “Conversations” in the “Bot” tab; if the flow contains a “Transaction in CRM”, the lead will also appear on the “CRM” board in the “New” stage. The administrator answers directly in the correspondence - the client sees the answer in Telegram, and the bot in this conversation becomes silent until “Return to bot” or “Close” - only the reminder, already set by “Pause”, will still come. Repeated phrases - “I confirm, we are waiting for you”, “This time is busy, it is 14:00 or 17:30” - save them in “Quick replies”.
Reminder. The bot does not understand “Saturday, 12:30” as a date, so “Pause” counts the time from the lead, and not from the visit. The method depends on how far ahead clients sign up:
| When to visit | How to remind | What to consider |
|---|---|---|
| Tomorrow or the day after tomorrow | After answering the client - “Pause” and “Message”: “{{name}}, we remind you about the appointment: {{slot}}” with the buttons “I’ll come” and “Reschedule” | Any plan. “1 day” gives a reminder on the eve of the visit the day after tomorrow; for a visit tomorrow, set “Custom value, seconds”, for example 43200 - this is 12 hours after the lead. The reminder comes in the same chat, the client responds by clicking, not by calling |
| In a week and beyond | The administrator tags the client with the day of the visit, for example visit-10-03, and on the eve of the “Newsletter” with “Delayed launch” they write to everyone with this tag | From the Basic plan. Newsletter - text only, no buttons; its text is not saved in “Conversations” |
| According to the situation | Message to the client from his conversation in “Conversations” | Any plan, manually |
How to collect such chains is in the article about trigger chains; Telegram newsletters in detail - on the page broadcasts via bot.
- Blocks after "Operator" are not executed. If you need a “Pause” with a reminder, do not put “Operator” in front of it - the request will already be reported by the push from “Notify operator”.
- Clicking “I’ll come” or “Move” is visible in “Dialogs” as a caption or button label. If the administrator has already responded and has not returned the conversation to the bot, it will be sent to him via push; While the bot is in conversation, the bot will not accept a text response instead of a click and will repeat the reminder.
- The client wrote to the bot during the “Pause”, and the administrator has not yet responded - the countdown will start again, and the reminder will come twice.
- {{slot}} will be included in the reminder only if the time step has “To variable” filled in. Only {{name}}, {{phone}} and {{email}} are included in the mailing list.
- “Delayed start” is based on the server clock. Tags are set by the owner and “Admin”: “Operator” only views contacts.
What a recording bot doesn't do
The limits are clear before you launch.
- The template does not show available slots or book time: CHBT has no calendar of its own, and the administrator confirms the time. Available times and booking into the schedule are only available for salons on YCLIENTS, via the “YCLIENTS booking” block (how to connect); the bot is not connected to other online booking systems.
- Doesn’t understand the date from the text: “Saturday, 12:30” is just words for the bot. Therefore, “Pause” counts the time from the lead, and not from the visit.
- He doesn’t write first: only those who opened the bot themselves can be reminded and called for a return visit. You cannot “fill” the phone database and send it out - why can't the bot write first?.
- Doesn’t work with photos: script messages are sent to Telegram only with text and buttons - give the masters’ portfolio a link to a channel or album. The photo reference from the client will not reach you: an empty message will remain in “Conversations”.
- Does not accept card prepayment in chat: the “Opens link” button may lead to your payment page, but the bot will not know about the payment.
Available plans
Price is per bot per month. On Free, the bot responds to 30 different clients per month across all channels together, the editor works in the “Steps” mode, and only the owner is in the account. From Basic - “Canvas”, reminders sent by tag of the day and employees without restrictions. Telegram, QR campaigns and a post template are included in any plan; a card is not needed for the Free plan.
Works with
FAQ
Will the bot show the client free time?
Not in the template: CHBT has no calendar of its own, the client types a preferred time, and the administrator confirms it or suggests another right in the chat. This is a booking request, not a reservation. If the salon takes bookings in YCLIENTS, the “YCLIENTS booking” block shows services, staff members and available times from the salon’s online booking and creates a booking in the schedule. Other online booking systems are not supported.
How to make a QR for an entry?
Connect the Telegram bot, then in “QR campaigns” → “New campaign”, set the name and label, for example salon, and click “Create QR”. In the recording script, add a “Deeplink” trigger with the salon pattern, and the first step of this input is the src:qr tag. Save the PNG with the “Download” button and print it for a counter or mirror.
Will the bot remind you of the recording itself?
To make an appointment for the next few days - yes: “Pause” after the lead and a reminder message. The pause is counted from the lead, not from the visit: “1 day” is suitable for a visit the day after tomorrow; for a visit tomorrow, set the pause shorter. For distant dates, tag the client with the day of the visit and remind them with a “Delayed Start” mailing (Basic plan) or write from “Conversations”.
Is it possible to re-enroll without /start?
Yes: just write “sign up” or “I want to sign up” - the template catches the words “sign up” and “sign up” in any message. The old service buttons in the chat history will not work after the end of the recording: the bot will only receive their label, and the script will no longer wait for it.
How can a client cancel or reschedule an appointment?
Write to the same chat. If the administrator has already responded to this conversation, the message will be sent to him in “Dialogs”. If the conversation is with a bot, a phrase like “cancel recording” will start the recording again: the template looks for the word “record” in any message. To avoid this, switch your keywords to “Exact Match”.
Is the Free plan enough?
To check the mechanics - yes: 30 conversations per month, that is, 30 different clients across all channels together; QR and Pause are included. To a new client over the limit, including those who come via QR, the bot will respond with one phrase about the limit. A salon with daily appointments needs a Basic for 650 ₽ per month.
Does the same flow work in MAX and VKontakte?
Yes, without changes: channels are connected in the same bot in the “Channels” section. Buttons differ: in MAX they are one per row, as in Telegram, and in VK two per row, so keep labels short there. QR campaigns generate codes only for the Telegram bot, and in VK the bot does not read tags from the link.
Posts in Telegram while the administrator is with the client
Take the “Customer Registration” template, replace the service buttons and connect the Telegram bot using the token from @BotFather. Free plan - 30 conversations per month, without card binding.