💳 Plans, Limits and Feature Gating
A clear reference for what each plan can do and how the system controls access.
Plans table
| Feature | Freemium | Matrix | Pro | Pro Unlimited |
|---|---|---|---|---|
| Price | Free | 39€/mo | 69€/mo | Custom |
| Conversations included/mo | 30 | 900 | 1,500 | Unlimited |
| Overage per conversation | Not available | 0.09€ | 0.09€ | N/A |
| Add-on packs (+30 conv) | No | 5€ | 5€ | N/A |
| Web Chat channel (widget) | ✅ | ✅ | ✅ | ✅ |
| WhatsApp Business channel | ❌ | ✅ | ✅ | ✅ |
| Instagram / Facebook channel | ❌ | ✅ | ✅ | ✅ |
| Google Calendar sync | ❌ | ✅ | ✅ | ✅ |
| Real-time availability (PMS) | ❌ | ✅ | ✅ | ✅ |
| Direct booking via chat | ❌ | ✅ | ✅ | ✅ |
| OTA price comparison | ❌ | ❌ | ✅ | ✅ |
| Hotel chains | ❌ | ❌ | ✅ | ✅ |
| Active promotions | Max. 3 | Unlimited | Unlimited | Unlimited |
| Travel packages | ❌ | Max. 10 | Unlimited | Unlimited |
| Discount rules | ❌ | Max. 10 | Unlimited | Unlimited |
| White label (PMS Admin) | ❌ | ✅ | ✅ | ✅ |
| Export conversations | ✅ | ✅ | ✅ | ✅ |
| Analytics dashboard | Basic | Full | Full | Full |
| Support | Community | 24h SLA | 12h SLA | 12h SLA |
| Users per hotel | 2 | 10 | Unlimited | Unlimited |
:::info Plan codes
The marketing names are Freemium / Matrix / Pro / Pro Unlimited. In the system (database and API) they correspond to the codes free, matrix, pro and pro_unlimited. The pro_unlimited plan removes the conversation counter and does not generate overage charges.
:::
How limit control works (Feature Gating)
The system controls access to features by plan_code in real time. The logic lives in the backend (subscriptions + conversation_counters).
Conversation flow with limit
User starts a conversation
↓
Backend: is conversation_counter >= conversations_limit?
├── NO → Conversation allowed, increment counter
└── YES → Bot sends auto-reply: "Limit reached"
System records overage_conversations
Sends warning_email_sent_at (if not yet sent)
How a "conversation" is counted
- A chat session counts as 1 conversation when it starts
- The session has a 24-hour window — messages within the same day = 1 conversation
- If the guest returns the next day, it is a new conversation
Counter reset
- The counter resets automatically every 30 days from
billing_cycle_start_date - For add-on packs (+30 conv for 5€), the limit increases immediately after payment
- On the
pro_unlimitedplan there is no active counter — conversations are unlimited
Feature gating — what the user sees depending on the plan
If they try to access a blocked feature
- A banner or modal appears with the message: "This feature requires the [Matrix/Pro] plan. Upgrade your plan to access it."
- Direct CTA: "View plans" → redirects to the Billing section
- A technical error is never shown to the end user
Features blocked on Freemium — bot behavior
| Situation | Behavior |
|---|---|
| Guest asks for exact availability | Bot responds with "approximate base rate" — not real availability |
| Guest wants to book directly | Bot generates a pre-booking: captures data + notifies the hotel manually |
| Guest asks to compare with Booking.com | Bot ignores the comparison and focuses on the hotel's value |
| 30-conversation limit reached | Bot sends an auto-reply and stops responding until the next cycle |
| Lead generated with no channel configured | The lead does not trigger a notification (requires WhatsApp or email configured) |
Support SLAs by plan
| Plan | Guaranteed SLA | Internal priority |
|---|---|---|
| Pro / Pro Unlimited | 12 hours | High |
| Matrix | 24 hours | Medium |
| Freemium (or no active plan) | 72 hours | Low |
Billing cycle (Stripe Connect)
Sign-up on Matrix/Pro plan
↓
Stripe creates a monthly subscription (stripe_subscription_id)
↓
Automatic payment every 30 days
↓
If payment fails → Hotel drops to Freemium until resolved
↓
If conversations are exceeded → Overage is billed automatically
↓
Invoice download available in Hotels → [your hotel] → Billing
Payments in Colombia (PSE/Nequi) via Wompi are functionality planned for Phase 3 (not yet available on all plans). Currently only Stripe (international card) and Wompi for specific markets.
White label (PMS Admin)
pms_admin users are resellers who can manage multiple hotels under their own brand:
- They have their own admin panel with a list of referred hotels
- They receive a commission per active hotel (configured in
platform_commission_configs) - They can customize the chatbot branding for their clients
- The hotelier sees the chatbot with the PMS Admin's brand, not HotelChatBook's
- Custom subdomains available (e.g.:
pms-lamaravilla.hotelchatbook.io)
To become a PMS Admin: contact the UNOZERO team.