Automation · Customer service and scheduling
Book optometry appointments over WhatsApp with Softix
An AI agent books optometry appointments over WhatsApp with Softix: it finds the patient, offers open times by location and creates the booking.
How can patients book an optometry appointment over WhatsApp at the right location?
A Met connected to Softix asks for the document number, finds the patient and only registers a new one when no record exists. It then asks for the location, date and whether morning or afternoon works best. Availability does not come from a list written into chat: it crosses the appointments booked in Softix with the opening hours and optometrist identifiers configured for that location. The Met offers only those slots, confirms the date, time, location and appointment type in one message, waits for the patient's approval and creates the booking with the internal identifier of the practitioner who was free. What gets booked is an optometry appointment; Softix does not give the Met access to clinical records or exam results.
Where it applies: Colombia. Patient creation in this connector stores country CO and takes a ten digit Colombian mobile number without the 57 prefix. This automation describes that implementation.
What starts it
When the customer writes
It starts when somebody writes over WhatsApp to ask for an optometry appointment, ask what times are open or move an existing booking. There is no message trigger to configure: the Met assigned to the line runs the procedure inside that conversation.
Nothing to set up. The Met assigned to that channel picks up the conversation and runs the procedure inside it.
Who runs it
Optical practice reception Met
Customer service team
This is not a named, seeded Met. It is the Met that already answers the practice's line, with Softix connected. Its work ends when the right patient is booked at the location and time that Softix accepted, with the appointment identifier retained so it can be moved or cancelled later.
Channels: WhatsApp
What you need connected
- Softix Sell and serve
6 steps · 7 tools
The procedure, step by step
Each step shows the tool that runs. They belong to the real connector: if one of them stopped existing, this page would not build.
- 1
Find the patient before creating another one
The Met asks for the document number and searches Softix with it. If the patient already exists, it uses that record. If nothing comes back, it asks for the four fields creation requires: document number, first name, last name and a ten digit mobile number without the 57 prefix. Email and birth date are optional and are never made up to fill a field. The lookup comes first because two records for the same person split the schedule from their Softix file.
- 2
Offer only slots from the configured location
The person picks a location, date and part of the day. The query crosses that day's booked calendar with the slot length, opening hours and optometrist identifiers configured for the location. A time appears when at least one of those practitioners is free, and arrives in 12-hour format for display together with an internal userId. The Met offers those values exactly as returned: it does not calculate times, expose practitioner names, or offer times in the past or less than thirty minutes away.
- 3
Confirm the four fields that make the appointment real
Before writing, the Met puts the date, time, location and appointment type into one message and waits for explicit approval. It then creates the booking with local time and no offset, the document number as clientId, the chosen location and the userId that arrived with the open slot. The requested type stays in the message for the optometrist and any plan mentioned by the patient stays in the observation. None of it is guessed. Softix can send its booking notification, but that does not schedule a reminder for another day.
- 4
Verify the real time and retain the identifier
Creation attempts to return the appointment just stored, including its consultationId. If that match is unavailable, the Met reads the schedule for the date and finds it by patient and time. That listing has two dates that must not be confused: consultationDate is when the appointment happens, while schedulingDate is when somebody registered it. The identifier comes from this response, never from a guessed number, and is the only key for later changes.
- 5
Move it only onto another open slot
When the person needs a change, the Met calculates availability again for the new location and date, offers the slots that remain open and confirms the selected alternative. Only then does it send the original consultationId, the new local time, the document number, location and the userId of the new slot. Rescheduling can change location and practitioner, but never starts from a time recalled from chat or a practitioner name that Softix cannot list.
- 6
Cancel the right appointment after confirmation
To cancel, the Met reads the schedule for the date, distinguishes the appointment by consultationDate, patient and location, and presents those details before touching it. With the person's approval it sends the consultationId to Softix and waits for the cancellation acknowledgement. The tool never takes a name or approximate time; it takes the identifier. If Softix cannot find the booking or returns an error, the Met says so and offers reception.
Before you start
What you need ready
The Met solves none of these for you. If one is missing, the automation stops there.
-
Softix username and password
The same credentials the practice uses to sign into Softix. Meteor obtains a five minute token, caches it for four and signs in once more after a 401; nobody copies or renews that token by hand.
-
Opening hours and optometrists configured per location
The Softix skill receives JSON with the slot length, each branchId, the location name, its optometrist userIds and the opening ranges for weekdays, Saturday and Sunday. Softix exposes the booked calendar, but not these base hours or a practitioner listing, so without this configuration there are no open slots to offer.
-
A WhatsApp line with the Met assigned
The practice connects its WhatsApp Business API line and assigns the Met that answers patients. The appointment is handled inside that conversation; Softix remains the patient and scheduling system.
The limits
What this automation does NOT solve
Better said here than discovered halfway through the rollout.
-
It does not perform the eye exam or interpret its result. It only books, moves and cancels the appointment; clinical records and exam results are not exposed by these tools.
-
It does not charge or invoice for the visit. None of the seven tools in this procedure touches payments, the register, electronic invoices or plans beyond storing a written observation.
-
It does not discover opening hours on its own. If a location, practitioner or range is absent from availability_config, the Met cannot offer it even if it appeared in an earlier chat.
-
It does not list optometrists or let patients pick them by name. Softix only looks up a user by ID, and this procedure uses the opaque userId returned by availability for the chosen slot.
-
It does not schedule future reminders with Softix. Creation can ask Softix for an immediate booking notification; reminders twenty four or two hours ahead need a separate CRM automation.
-
It does not guarantee availability for a location with more than five hundred appointments in one day. The tool reads at most five pages of one hundred; above that volume the connector must be extended before relying on the resulting open slots.
FAQ
Questions about this automation
They book an optometry appointment. The Met can leave the requested type in the message for the optometrist, but it does not perform the exam, open the clinical record or read results. That boundary is why the title says appointment rather than visual diagnosis.
Yes. Each location has its branchId, hours and practitioner identifiers. Availability is computed inside that location and creation keeps the same branchId. Moving to another location requires checking the new location's open times first.
The location configuration contains the allowed userIds. For each time, availability returns the identifier of the first free practitioner, and that same value is copied into creation. The patient sees the time and location, not a name the Met inferred.
Their record is reused. The document lookup happens before asking for the fields needed for a new record. softix_create_customer only runs when the search confirms they do not exist; it is not a step executed for everybody.
Not with these tools. Creation can enable the Softix message that announces the booking, but it does not schedule a reminder for the day before. If the practice needs reminders, they are set up separately through Meteor CRM and its WhatsApp template policy.
Because an open range is not enough: an appointment may occupy the only practitioner available. The tool crosses base hours with the day's schedule and returns only times where at least one configured userId is free. If a time is absent, the Met does not offer it.
Keep going
Other automations built on the same tools
Customer service and scheduling
Book a Cal.com meeting on the right calendar
How do I make sure a meeting booked from chat lands on the right person's calendar?
Customer service
- Starts:
- when the customer writes
- Steps:
- 6, with 6 real tools
- Needs:
- Cal.com
Customer service and scheduling
Book, remind and reschedule appointments over WhatsApp
How do I let customers book over WhatsApp without double-booking anyone?
Customer service
- Starts:
- when the customer writes
- Steps:
- 5, with 10 real tools
- Needs:
- Meteor Scheduling · Meteor CRM
Customer service and scheduling
Reserve a vehicle over WhatsApp with HQ Rental
How do I reserve a vehicle over WhatsApp using live HQ Rental availability?
Customer service
- Starts:
- when the customer writes
- Steps:
- 5, with 5 real tools
- Needs:
- HQ Rental Software
Customer service and scheduling
Answer "where is my order?" for Mercado Libre sales over WhatsApp
How do I answer the status of a Mercado Libre order without opening the seller panel?
Customer service
- Starts:
- when the customer writes
- Steps:
- 5, with 10 real tools
- Needs:
- Mercado Libre · Meteor CRM
Want this automation running on your own data?
We will show it to you with your accounts connected, not with a canned demo.