Sign up + bootstrap your workspace
The first user to sign up at your platform URL becomes the AGENCY_ADMIN — they own the workspace, can invite team members, and can configure billing.
Open the sign-up flow
Navigate to your platform URL — https://app.[your-domain]/signup for hosted
deployments, or whatever subdomain you assigned during white-label setup.
Pick a subdomain
Your agency’s customers reach you at [subdomain].[platform-domain] (e.g.
acme-salons.nextaibot.tech). The subdomain is immutable after signup — pick
something durable.
The slug used internally for shareable URLs (booking page, etc.) is also derived from this — see White-label setup before going live.
Brand the workspace
Logo URL, primary colour, secondary colour, support email, support phone. These show up on:
- The dashboard chrome
- Customer-facing booking pages (hosted + embed)
- Email transcripts and confirmations
- The web-chat widget
You can change any of these later under Settings → White-label.
Choose your plan
Plan tier determines:
- How many WhatsApp channels you can connect
- How many contacts you can import
- How many team members you can invite
- Which third-party integrations are unlocked
See Plans & billing for the tier matrix.
First login
After payment, you land on the dashboard as AGENCY_ADMIN. Empty inbox, empty contacts, no channels connected — that’s normal. Next step is connecting your first channel.
What got created
Behind the scenes the bootstrap creates:
- One
agenciesrow keyed by your slug + subdomain - One
usersrow (you, role = AGENCY_ADMIN) - One
subscriptionsrow at your chosen plan tier - A
tenant contextthat scopes every subsequent query
If anything looks wrong on the dashboard (“agency not found”, “tenant context not
set”), the first thing to check is the subdomain → agency match. The platform reads
the Host header on every request.