Full-cycle Telegram bot platform for private parties — from registration and approval to scheduled broadcasts, QR tickets and post-event messaging.
From the first /start to post-event follow-ups — the platform owns the entire guest communication lifecycle.
Run multiple events simultaneously, each with its own bot token, webhook secret, and independent guest list. Parties auto-deactivate after their end time.
Guided conversational registration: language selection, dynamic questionnaire, optional email verification against an external database, and automatic status assignment.
Each approved guest receives a unique QR ticket in Telegram. Generated on-the-fly using chillerlan/php-qrcode — no external services required.
Time-based message campaigns with audience targeting. Text, images, video or QR codes to approved, pending, or rejected guests with configurable intervals.
Send one-off messages after the event to attended guests, missed guests, or all approved registrants — each in their preferred language.
Create and configure bot commands from the admin panel without code changes. Set per-command text, optional button/URL, and per-status access control.
Guests can re-open their profile after registration, change their language, and update survey answers without losing their approval status.
Send venue coordinates as a Telegram location pin and let approved guests add the event to their calendar. Details stay hidden until approval.
Every sent broadcast step is logged — preventing duplicates even across parallel queue workers via race-condition protection at the job level.
A fully automated, conversational onboarding flow in Telegram.
Registration record created with UTM attribution from the payload.
registration_processGuest picks Русский or English. Remembered for all future messages.
bilingualDynamic questionnaire configured per party — multiple choice or free text.
in progressOptional email verification against an external user database. VIP bypass available.
optionalAdmin approves or rejects. Each status unlocks different bot commands.
approvedA rich set of built-in commands plus an admin-configurable system — all with per-command access level control.
Sends the guest's personal QR code as a photo with localized caption.
Approved onlyEvent description with optional cover image. Location revealed for approved only.
Pending + ApprovedCalendar invite link so guests can save the event date.
Approved onlyVenue address and coordinates as a Telegram location pin.
Approved onlyDelivers the party's promo code to registered guests.
Pending + ApprovedShareable bot link using Telegram's native share sheet.
All usersView registration info, update answers and language preference.
All usersDisplays organizer contact information from party settings.
All usersCurated history of past events to build community excitement.
All usersAny command created in the admin panel — Markdown text, inline button URL, access level.
Admin-configuredSchedule automated messages at any point in time. Each step targets a specific audience and supports bilingual content.
Rich text — plain or HTML-formatted — with an optional photo. Images served from local storage or downloaded from URLs automatically.
Generates a unique QR per guest from their qr_code_data field and sends as photo with localized caption.
Send a video by Telegram file_id with localized caption. Falls back to text on failure.
Each step fires at a specific date/time via cron + queue.
Required steps always send. Optional ones respect a configurable cooldown interval.
Target all, approved-only, pending-only, or rejected guests per step.
Sent logs prevent re-delivery across concurrent workers. Logged even on failure.
Every broadcast, command, and manual message can be scoped to a specific guest lifecycle stage.
Registration complete, awaiting admin approval. Receives basic commands and info.
Fully approved guests. Access to QR tickets, location, calendar, and all premium content.
Can receive tailored rejection messaging and alternative offers.
Post-event messages for guests who checked in — thank-yous, surveys, follow-ups.
Approved guests who didn't attend. Re-engagement campaigns for the next event.
Broadcast to everyone regardless of status. Useful for general announcements.
Enterprise-grade internals under a simple interface.
Track sources via /start payload. utm_source, utm_medium, utm_campaign, utm_content stored per registration.
Encrypted bot tokens and webhook secrets. Updates validated via X-Telegram-Bot-Api-Secret-Token middleware.
All deliveries run via Laravel queue jobs. Webhooks return instantly; heavy work runs in background workers.
Every message, command, and broadcast step has RU and EN variants. Language remembered per guest.
The party:register-webhooks Artisan command registers Telegram webhooks for all active parties automatically.
Bot-blocked (403) errors silently skipped. Parse-error fallbacks send plain text. Failed sends still log.
Tag guests in Intercom automatically on registration, enabling cross-channel CRM segmentation.
Incoming video messages log their Telegram file_id automatically, making media reuse trivial.
A modern single-page admin interface built with React 19 and Tailwind CSS. Manage all parties, steps, commands, and logs without writing code.