Before you start configuring, decide on the model. What seems like a minor detail—separating services from providers, not lumping everything into a single entity, naming everything so the AI agent understands it—determines whether your booking system operates flawlessly or if, by month two, you'll be overwhelmed with double bookings, misdirected reminders, and missed appointments. This guide is for operators building their data model for the first time.
The model: Service + Location + Provider
Aurora separates three entities that most competitors merge. That separation is what allows you to scale.
┌──────────┐ N:N ┌──────────────┐ N:N ┌──────────┐ │ Service │ ──────────────── │ Provider │ ──────────────── │ Location │ └──────────┘ └─────────────┘ └──────────┘ duration schedule buffer zone services time description locations email address base schedule
| Entity | What does it represent? | Example |
|---|---|---|
| Service | The type of appointment with a fixed duration | "Dental cleaning — 60 min" |
| Location | Where the date takes place | "North Rome Branch" |
| Lender | Who (or what resource) occupies the time | "Dr. López" or "Room 2" |
The key rule: a service is offered through One or more service providers. One location is served through The service providers who work there. Never assign a service directly to a location without going through the provider—the appointment engine wouldn't know who to block.
If you're coming from conversational scheduling Whether pure or a traditional Calendly, this model is the leap forward.
Key decisions before setting up
Answer these four questions on paper before touching the settings. Changing the model later is expensive.
1. One branch or several?
One location is sufficient if everything happens under the same roof. More than one is needed if there are different addresses, even if it's the same brand. Each location has its own time zone.
2. How many different services do you sell?
A healthy number is between 3 and 10. If you have 20 services, some are probably the same appointment with a different duration or price—group them together. More than 15 services confuses both the customer and the AI agent.
3. Are your providers people or resources?
A dentist is a person. A treatment room is a resource. A mechanic is a person. A restaurant table is a resource. Aurora treats them both the same: what takes time, takes up a slot. Call it a provider, that's all.
4. Do all providers offer all services?
If the answer is "yes" and you have few services, the setup is trivial. If it's "no"—a dentist does orthodontics but not cleanings, a stylist cuts hair but doesn't color it—you need the N:N relationship between service and provider, which Aurora natively supports.
How to name your services correctly
The service name is what the AI agent uses to recognize the customer's intent. Opaque names break the matching process.
Rules:
- Use natural language, not internal codes. "Dental cleaning — 60 min" is better than "LD60" or "SVC-001".
- Include duration when helping the customer ("Haircut and styling — 45 min"). The AI agent learns to recognize this and offer it when someone asks for time.
- Be consistent across verticals. If you have a "General Consultation" at one branch, don't call it a "Medical Appointment" at another.
- Avoid regional abbreviations ("Dental X-ray" → better "Dental X-ray"). The client may not know this.
- Use the name the customer would say, not the technician. The client says "whitening", not "enamel whitening treatment".
Quick table of names vs bad names:
| Evil | Good |
|---|---|
| LD60 | Dental cleaning — 60 min |
| Premium Service | Color and styling — 90 min |
| Type A | General tuning |
| Quote 1 | General medical consultation |
| Reserve a standard table | Table for 2 to 4 people |
Configure services step by step
This section extends the Step 1 of the basic configuration guideHere are the advanced fields.
- Go to Settings → Appointments → Services and create them one by one.
- Fill in the fields:
- Name: following the rules above.
- DurationIn minutes, be realistic. Don't underestimate—a haircut that actually takes 35 minutes shouldn't be recorded as 30; the next service provider will be late and the delay will accumulate.
- Buffer before/afterPreparation or cleaning time outside of the appointment but required by the provider. For a dental cleaning: 5 minutes before (preparing instruments) + 10 minutes after (sterilization). If a buffer is not defined, the client arrives and the provider continues cleaning from the previous patient.
- Description visible to the customerWhat the service includes. The agent reads it to the customer when they ask for details.
- Requires email / requires phoneThese are required fields to create the appointment. In Latin America, email is required and has low conversion rates—leave it optional unless you need to send email reminders.
- Simultaneous capacity: for group services. A medical consultation = 1. A workshop with 3 mechanics working in parallel in the same slot = 3. A group class = 10.
- Save and repeat.
Configure locations step by step
- Settings → Appointments → Locations → New location.
- Fields:
- Name: what the customer would see ("Roma Norte Branch", "Polanco Office"). If you only have one, put something legible on it — the agent says so in the confirmation.
- Full addressStreet, number, neighborhood, city. It appears verbatim in the WhatsApp confirmation message; click there for Google Maps.
- Time zoneThis is critical, especially in Latin America. Mexico has Mexico City (UTC-6), Ciudad Juárez and Tijuana (UTC-7), and Cancún (UTC-5). Configuring the wrong time zone means offering slots at a different real-time. The engine calculates slots in the location's time zone, not the customer's.
- Base operating hours (Optional): Branch hours. This serves as an upper limit—providers can have shorter hours but not longer ones.
- Guard.
If you plan to connect Google Calendar For service providers, do this after defining the locations — the location's time zone takes precedence over the personal calendar's.
Configure providers step by step
This is the entity with the highest configuration density. Allocate 5 minutes per provider the first time.
- Settings → Appointments → Providers → New provider.
- Fields:
- Name: person ("Dr. López", "Carlos Hernández") or resource ("Room 2", "Stretcher 1", "Terrace Table 3").
- Services provided: marks the catalog services that this provider can offer. This N:N relationship is what the engine uses to determine availability.
- Work locationsOne or more. If you work at 2 branches, mark both — working hours are defined later with granularity on a daily basis.
- Working hours by day of the weekThe recommendation is 30-minute blocks. Mon-Fri 9:00-18:00, Sat 10:00-14:00, Sun closed. Each provider may have different hours.
- E-mail (Optional): For new appointment notifications. Useful if the provider doesn't log into the app but wants to see their schedule in their email.
- Linking to an Aurora user (Optional): If the service provider is also an app user (operator, owner, assistant), link them. They will see their own schedule in their login.
- Guard.
Repeat for each provider. The initial load may take 30-60 minutes for an operation with 10 providers; after that, it maintains itself.
Vertical Patterns
The four most common models in Latin America. Copy the one that most closely resembles your operation.
Dental clinic
- 5 servicesGeneral consultation, Cleaning, Whitening, Endodontics, Orthodontics.
- 1 locationMain office.
- 3 providers: Dr. López, Dr. Ramírez, Dr. Méndez.
- AssignmentThe 3 dentists handle all 5 services. Simple model, everyone does everything.
- Schedule: Mon-Fri 09:00-18:00, Sat 10:00-14:00.
More vertical detail: WhatsApp appointment system for medical clinics.
Beauty salon
- 8 servicesMen's haircut, Women's haircut, Hair coloring, Highlights, Hairstyling, Manicure, Pedicure, Hair treatment.
- 2 locationsPolanco Branch, Condesa Branch.
- 6 providers: Carlos (men's haircuts only), Ana (color and styling), Luis (women's haircuts and styling), Marta (manicure and pedicure), Sofia (dye and highlights), Diana (treatment and styling).
- AssignmentSpecialized. Carlos only does men's haircuts. Ana does color, highlights, and styling. Etc.
- ScheduleCarlos in Polanco Tue-Sat, Ana in Condesa Mon-Fri. Each stylist defines their day and branch.
More vertical detail: WhatsApp appointment system for barbershops and salons.
Auto repair shop
- 4 servicesTuning, Brakes, Suspension, Electrical Diagnostics.
- 1 locationMain workshop.
- 4 service providers (mechanics): Juan (tuning + brakes), Pedro (suspension + brakes), Andrés (electrician), Roberto (tuning + electrical diagnostics).
- Assignment: specialized by technical skill.
- Schedule: Mon-Sat 08:00-17:00.
- Simultaneous capacityEach service = 1 (one mechanic per car). If you want 3 cars in parallel, that means 3 service providers working simultaneously in different slots.
Restaurant (reservations)
- 1 "service"Table for N people — duration 90 min.
- 1 locationMain restaurant.
- 3 providersTerrace Area, Lounge Area, Bar Area. Here the "provider" is the physical area, not a person.
- Simultaneous capacity per zoneTerrace: 8 tables, Dining Room: 12 tables, Bar: 6 places. Configured as providers with capacity N.
- Schedule: Tue-Sun 13:00-23:00.
The restaurant trick: the "zones" are providers with a capacity greater than 1. Aurora's engine handles simultaneous capacity per provider, so Terrace with a capacity of 8 accepts 8 parallel reservations in the same slot.
Common mistakes
- Opaque names for the AI agent. "SVC-007" tells the model nothing. It uses natural language, without internal codes.
- Unrealistic service duration. If the appointment actually lasts 45 minutes and you record 30, all subsequent appointments will be delayed. Measure the actual duration a week before setting up.
- Do not define buffer. The client enters and the service provider continues cleaning after the previous client. Define at least a 5-10 minute buffer for physical services (medical, aesthetic, mechanical).
- Time zone incorrectly configured. Especially common in Latin America with Mexico City vs. Ciudad Juárez. Check the time zone for each location.
- Overburden the top provider and leave others empty. If half of the appointments fall to a single provider, the AI agent is auto-selecting incorrectly. Enable "ask the customer" or balance the schedule with more flexible availability for other providers.
- Do not update schedules on holidays. The agent is still offering slots on January 1st. Configure calendar exceptions for non-working days.
Ongoing maintenance
The model moves with the operation. Rules for keeping it clean:
- Add new servicesOnly when they differ from existing services in duration, price, or equipment. Do not duplicate "Men's Haircut" and "Gentleman's Haircut"—it's the same service.
- Absence of service providersIf it's for a single day (vacation, illness), edit the schedule for that specific day—don't remove the provider. If it's permanent, deactivate (don't delete) the provider to preserve the appointment history.
- Temporarily disable a service: marks the service as inactive. The agent stops offering it, but past appointments remain in the history.
- Seasonal schedule changesEdit the provider's work schedule. Aurora applies the change from the edit date; appointments already scheduled remain unchanged.
- Time zone change (Branch relocation between cities): Change the location, don't delete it. The history remains under the original area.
How does Aurora Inbox do it?
The difference compared to alternatives like Calendly: Calendly It does not support true multi-provider with N:N allocation per service and per locationIt forces you to create a calendar per provider and an "event" per service, with no declarative link between them. The AI agent has to guess who to send the appointment to.
Aurora treats the Service + Location + Provider model as first-class entities with explicit relationships. The appointment engine resolves availability by considering: requested service → providers who offer it → at the chosen location → with available business hours → no conflicts with existing appointments or Google Calendar events.
Recommended plan: Aurora IA $179 USD/month ($3,200 MXN) which includes the complete model, agent with bookings plugin and calendar synchronization.
Start your free trial and build your data model in 30-60 minutes.
Frequently Asked Questions
Can a service provider be in 2 locations at the same time?
Not literally—the motor prevents physical conflict. Yes, I can work at two different locations on different days (Mon-Wed in Polanco, Thu-Sat in Condesa). Please specify this in your daily work schedule.
Does the AI agent know how to request the correct service?
Yes, if you named the services correctly. When the customer says "I want a dental cleaning," the agent matches it with the service "Dental Cleaning — 60 min" based on semantic similarity. If you have opaque names ("SVC-001"), the match fails, and the agent asks which service.
What happens if two services use the same physical resource?
Model the resource as a provider. Example: 1 X-ray room used for general practice and dental care. Create a provider "X-ray Room" with a capacity of 1, and assign both services to it. No slot is duplicated.
Does it support couple appointments (2 simultaneous providers)?
Yes, but it requires configuring the service as "requires 2 providers". For couples spa treatments or advanced group sessions, contact support for multi-provider setup.
Do you handle pricing per service?
Yes. The service has a price field (optional). The AI agent mentions it to the client when offering the service. The actual payment is made via a Stripe payment link (coming soon in the native roadmap) or in advance via a manual link.
Does it support custom fields per service?
Partially. The standard fields (name, email, phone, required or not) are ready. For service-specific questions (reason for inquiry, allergies, car model), use the AI agent flow: the agent prompt can include "before confirming, ask the reason for the inquiry and save it in notes."

