Take your audience to Meta and Google ads
Live todayThe audience you built for a campaign can now be downloaded as a file for Meta Custom Audiences or Google Customer Match, so the people you email and the people you advertise to are the same list.
- Two buttons under the audience count, one per platform, each giving you the file that platform's importer expects. No ad account needs connecting to Frontiva.
- Email addresses are turned into hashes before they leave, so the file never contains an address in readable form. Both Meta and Google match on hashes, and this is what they ask for.
- Anyone who unsubscribed is left out. An unsubscribe means stop marketing to this person, and we do not read it as stop emailing while carrying on targeting them somewhere else.
- So is anyone marked do-not-contact, and anyone whose address has bounced or complained. That last check matters here more than anywhere: once a file leaves for an ad platform, nothing we do can take a name back out of it.
- Every export is written to your audit log, with the platform, how many went in, and how many were left out and why.
- Phone numbers are not exported. The permission your customers gave is about email, and handing a number to an advertising platform is a different question we would rather ask you than assume.
See who else is on a conversation before you answer it
Live todayThe inbox now says when a colleague has the same conversation open, and when they are already typing a reply. Two people answering one customer is how a customer gets two different answers.
- A line above the reply box names who else is looking at the thread, and says if they are typing. It is there so you see it before you start, not after you have written the reply.
- It only ever shows you other people. You are never told that you are typing.
- A "typing" notice disappears within a few seconds of the person stopping, because a notice that lingers is a notice you learn to ignore. "Has this open" lasts a little longer, since being told a colleague was just here is useful even a minute later.
- Nothing about this can stop a reply going out. If it cannot work out who is there, it shows nobody, which is exactly what the inbox did before.
Classes and group sessions, with a register
Live todayA service can now hold more than one person. Set the number of places and the booking becomes a class: one slot in your calendar, a list of who is coming, and a reminder to each of them.
- Set "places per session" on a service. Leave it at 1 and nothing changes, which is what every service you already have is set to.
- A class takes one slot in the calendar, not one per person. Your teacher or practitioner is booked once for the hour, which is what is actually true, and nobody else can be booked into that time.
- Everybody on the register gets their own reminder, on their own phone, in their own language. This is the part that made classes worth waiting for: a reminder is addressed to a person, so a class of eight needs eight of them rather than one sent to whoever booked first.
- Add somebody after the class is booked and their reminders are set up then and there. Take somebody off and only their reminders stop - the seven people still coming are untouched.
- Somebody who drops out stays on the register, marked as cancelled, and their place goes back into the count. "She cancelled" and "she was never booked" are different things to know when somebody asks.
- The screen says how many places are left, and stops you overfilling a class rather than letting you find out on the day.
Test two versions of a campaign, repeat it, and see who clicked
Live todayA campaign can now send a second version to a share of your list, repeat itself every week or month, and count who clicked which link. The winner is named only when the clicks can support one, which is the honest answer more often than a letter is.
- Links in a campaign go through Frontiva on their way out, so each campaign says how many people clicked, how many clicks there were altogether, and which of your links they were on. A campaign with three links in it usually has one that worked, and a single total cannot say which.
- People are counted before clicks, because some mail providers open every link in a message to check it before anybody reads it. We do not count the ones that say so, we cannot spot the rest, and one of those cannot inflate the count of people past one. That is why the total can be higher than the number of people, and it is said on the screen rather than left to be discovered.
- Counting is one switch, per campaign. Turn it off and your links go out exactly as you wrote them, and the screen says clicks were not counted rather than showing a zero that reads as nobody.
- Send a second subject or a second message to a share of your list: half, a fifth, a tenth, or one in twenty. The same person always sees the same version, so re-approving a campaign cannot move somebody from one side to the other.
- A winner is named when the gap in clicks is big enough that it would happen by chance less than five times in a hundred, and when there are at least thirty people a side and ten clicks between them. Below that the screen says there is no winner yet and what is missing. On a list of a few hundred, the difference between six clicks and nine is a quiet week rather than a better subject.
- A campaign can repeat every week or every month until a date you choose. Each repeat is its own campaign with its own list, worked out again on the day, so the people who joined since are included and the ones who unsubscribed are not.
Your booking page, your reminders and your texts, in Spanish
Live todayA customer can read your booking page in Spanish and book on it, and from then on what you send them arrives in Spanish too: the reminder, the text back after a missed call, the consent wording and the review request. You can also set it yourself, for one person or for a whole location.
- Your booking page has a link at the bottom that switches between English and Spanish, so somebody who needs Spanish finds it without having to ask anybody. You can also link straight to the Spanish version by putting ?lang=es on the end of your booking link, which is what belongs on the Spanish half of your own website.
- Booking in Spanish is how a customer tells you they want Spanish. It goes on their record at that moment, and from then on their appointment reminders, the text back when they call and nobody picks up, the consent wording and the review request all arrive in Spanish.
- You can also record it yourself. A customer's record has a language on it, so a receptionist who was asked on the phone to write in Spanish can put it there instead of remembering. Leave it alone and that person follows their location, which the screen says in those words rather than showing you an empty box.
- A location has its own language, so a practice with a Miami office and an Orlando one can run the first in Spanish and the second in English. It decides what that site's booking page opens in, and what everybody it writes to gets unless they have a language of their own.
- A person always beats a place. Somebody who booked in Spanish keeps Spanish even at a site that writes in English, because the language on a customer's record is something they told you and the one on a location is only a starting point.
- Nothing is guessed from what somebody writes to you. Working out the language of "ok gracias" is a coin toss, and the cost of getting it wrong is an appointment reminder your patient cannot read. A language is recorded when somebody states it, and never inferred from their words.
- The dates are in Spanish too, which is the part that usually gets missed: su cita es lun 12 oct, rather than a Spanish sentence with an English date sitting in the middle of it.
- STOP and HELP stay in English inside the Spanish messages, because those are the words the phone carriers require and the words our system listens for. Your own custom wording is not translated either: if your practice wrote it, or your lawyer approved it, it goes out exactly as you wrote it.
- A Spanish text message costs two segments where an English one costs one, because the accented letters do not fit in the cheaper encoding every phone network uses. We spell Spanish properly and tell you what it costs, rather than stripping the accents to save money: a reminder that looks wrong is hard to tell from a scam, and that is worse than the cost.
- Your AI agent's language setting now does something. It was a box on the screen that nothing read, and it is now what the agent's own set lines fall back to when a customer has no language recorded.
- The screens your own team works in stay in English, and so does the AI's own answer, which replies in whatever language your knowledge base is written in. This release is about the words your customers receive.
More than one AI agent, and each one says which conversations it answers
Live todayYou can run a different agent per channel, or a quieter one outside opening hours, and the screen shows who picks up what before a customer finds out.
- An agent can be scoped to the channels it answers. Tick nothing and it answers all of them, which is what a single agent wants.
- An agent can be scoped to opening hours: during them, outside them, or at any time. Opening hours come from your location's own hours, the same ones your lead routing and your booking page read.
- The most specific agent wins. A WhatsApp agent takes WhatsApp, an after-hours agent takes the evenings, and one scoped to both takes WhatsApp in the evening, with your general agent keeping everything else.
- A table on the agents screen names who answers each channel in hours and out of hours, and says plainly where nobody does. Those messages wait for a person, as they did before there was an agent.
- Two active agents cannot claim the same thing. Saving one that would tells you which agent already has it, instead of leaving two agents and no way to tell which is answering your customers.
- Switching between agents is a picker at the top of the screen. Before this, the screen could only ever configure one of them.
A customer's record now says what to do next, and what their score means
Live todayOpen anyone in Contacts and you can see the next thing owed to them, when your practice last spoke to them, and the enquiry score with the reason for every point of it.
- Next action is the soonest thing somebody actually committed to: a task with a due date, or a booked appointment. A task that is late is marked late and comes first. Nothing is invented, so a quiet customer reads as quiet rather than as a suggestion nobody chose.
- A task you wrote down without a date is still shown, with no date, instead of being treated as due today.
- Last interaction now moves when your team replies, not only when the customer writes in. A customer you texted this morning no longer reads as last heard from in August.
- The enquiry score is on the customer's record, out of a stated total, with a line for each part: where the enquiry came from, what it is worth, and how soon they need it.
- Every part of the score says why it scored what it did, including why something scored nothing: no service named yet, or an urgency answer the rules do not recognise. A zero with no reason is what makes people stop trusting a score.
- The score is taken when an enquiry arrives and does not move afterwards, which the screen says in those words, so an older enquiry reads as history rather than as a mistake.
- The same explanation is on the Leads board, which used to show the score as three field names and three numbers with nothing to measure them against.
Edit a live automation without your customers seeing the half-finished version
Live todaySaving a change to an automation that is running used to put it live immediately. Now it waits as a draft until you press Publish, every version you publish is kept, and you can put an older one back.
- A live automation you are editing says so: your customers are still getting the version you published, and the screen tells you which one. Publish when you are ready, or discard the draft and nothing you tried is kept.
- Anyone already partway through a sequence finishes on the version they started with. That was already true and stays true: publishing never moves somebody into a step that did not exist when they began.
- Every version you publish is kept, with the date and the number of steps, so you can see what you changed and when.
- Put an older version back in one click. It arrives as a draft so you can look at it first, or goes straight live if what is running needs stopping now. Either way it is published as a new version, so the record of what was live and when stays intact.
- A revert brings the trigger back with the steps. Restoring the messages while leaving a newer trigger in place would change who gets enrolled, which is not what anybody means by putting it back.
- Renaming an automation or changing its description still saves straight away. Only the steps and the trigger, the things a customer can feel, wait for you to publish.
A new enquiry now has a clock on it, and it stops when you close
Live todaySet how quickly a new lead should get its first reply and Frontiva shows you which ones are still waiting. The clock counts your opening hours only, so an enquiry that arrives at nine on a Saturday night is not held against you on Sunday morning.
- Choose a target in minutes, or leave it empty. Empty means Frontiva still tells you how long each reply took, which is a fact, and judges nobody, which is a policy. There is no default target, because a target you did not choose would paint a practice that answers enquiries twice a day, perfectly happily, entirely red.
- The clock runs in your opening hours and nothing else. Nights, weekends, the days you are closed and the holidays you entered on your own settings page all stop it, so a Friday evening enquiry is due shortly after you open on Monday rather than eleven hours before.
- A lead waiting for a reply says when one is due, and one that has had a reply says how long it took. The leads screen also says how many are past the target, which is the number worth acting on.
- A reply from your team and a reply from the AI both stop the clock, because your customer experiences the two the same way. A scheduled reminder and a marketing send do not, because neither is an answer to what somebody asked.
- If a lead's answer came before it existed, or your opening hours are not filled in yet, Frontiva says so rather than showing a breach. A red badge for a target nobody could have met is how a practice learns to ignore badges.
- Each lead also shows the share of your own finished leads that were won from the stage it is in, with the sentence behind the number. Below twenty finished leads it says that instead of showing a percentage, because three closed leads is not a percentage.
Ask your patients what you need to know, before they arrive
Live todayAttach a short form to a service and Frontiva asks it on your booking page, before the customer picks a time. The answers sit on the appointment, with the questions they answered, and whoever opens them is recorded.
- Five kinds of question: short text, long text, choose one, yes or no, and a date. Deliberately five, because a form long enough to need more is a form people abandon half way through, and that costs you the booking as well as the answers.
- The questions appear on your booking page with the service, not after a time is chosen. Somebody who finds three medical questions after picking a slot abandons the booking; somebody who sees them first either answers them or rings you, and both of those are fine.
- Mark a question as needed and the booking cannot be completed without it. The refusal names the question, so a customer can fix it rather than ringing to ask what went wrong.
- Your team sees the answers on the appointment, and can fill a form in themselves for somebody who booked over the phone. Which of the two it was is recorded, because a clinician reading "no allergies" is entitled to know whether the patient said it or somebody wrote it down.
- Reword a question and nothing already answered changes: each set of answers keeps the questions it was an answer to. Delete a form and the answers survive it, with their questions.
- Because these are health details about a named person, opening them is recorded in your audit trail. There is no field type for a card number, and the screen says so.
A cancellation now comes with the name of whoever wanted that slot
Live todayFrontiva keeps a waitlist of people who wanted a time you could not offer. When an appointment is cancelled, the freed slot is matched against that list and you are told who is first in the queue, with the window they gave you and anything they said.
- Add somebody to the list with the service they want, optionally the person they want to see, the dates they could come in, and a note in their words: afternoons only, not Wednesdays.
- When an appointment is cancelled, Frontiva matches the slot against the list and tells you the first three people who fit, oldest request first. Three rather than one, because telling one person and waiting is how a two-hour opening goes unfilled; oldest first, because it is the only order you can defend to the person who did not get it.
- Asking for a particular team member is treated as a requirement once you have said it, so a slot with somebody else does not match. Asking for nobody in particular matches anybody, which makes that person the easiest on the list to help.
- Booking somebody in takes them off the list automatically, so it does not fill up with people you have already seen.
- Nobody is texted or emailed automatically, and this is deliberate. The wording your customers agree to when they book covers messages about an appointment they have, and an opening is about one they do not have yet. So Frontiva tells you who to ring rather than quietly sending something that wording does not cover. The screen says so too.
- Bookings also has a proper set of links now: services, bookable team, waitlist and online booking. Online booking had no link to it at all once a practice had a service and a team member.
Filter the inbox, save the view, and work a whole selection at once
Live todayThe inbox had two ways to narrow it down: the tab along the top and the folder rail. It now filters by channel, priority, tag and how recently a thread moved, any filter can be saved under a name for everyone to use, and you can tick several conversations and act on all of them together.
- Filter by channel, priority, tag, and last activity: threads that moved since Monday, or threads that have gone quiet since Monday, which is usually the more useful question.
- Every filter is now applied by the database rather than to the conversations already on your screen. That sounds like plumbing and is the difference between a filter that works on a quiet day and one that works on a busy one: before this, filtering by tag searched only the fifty most recent threads, so a practice with a real queue could filter for a tag it uses every day and be told there was nothing.
- Mine had the same problem and one worse: in a team it could show you a colleague's queue instead of your own. It now asks the server who you are, so Mine means yours, and it finds all of them.
- Save any filter under a name, and it appears for everyone in your practice. A view that means assigned to me stays personal to whoever opens it, so one saved view called My escalations is correct for each member of your team rather than pointing at one person.
- Tick several conversations and assign them to somebody, add or remove a tag, set a priority, close or reopen them, or snooze them until tomorrow or next week. Frontiva tells you how many changed, how many were already like that, and how many left your list while you were reading, because a message can arrive between choosing and acting.
- Tagging in bulk adds to what each conversation already carries. Nothing is replaced, because a tag somebody added last week is not yours to lose.
- What bulk actions deliberately will not do: reply, escalate, take over from the AI or hand back to it. Each of those either puts words in front of a customer or hands somebody a thread to own, and doing forty at once is how you find out afterwards.
- Still missing, and worth saying: you cannot yet filter by location or by lead status. Both need a decision about the data first rather than a bigger screen.
A text now says whether it arrived, and a bad address is stopped for everyone
Live todayDelivery is a separate step from sending, and Frontiva now records it. A text the carrier refused shows as not delivered with the carrier's reason instead of sitting on "sent". And an address that bounced or complained is refused for every business, so one complaint cannot become everybody's deliverability problem.
- Sending a text and delivering it are two different moments. A carrier can accept a message and then refuse to deliver it minutes later, most often because the number is not registered for business texting. Until now that message would read as sent for ever. Frontiva now listens for the carrier's answer, so a text shows delivered, or not delivered with the carrier's own reason code, in the conversation where you sent it.
- Reminders and campaign emails that a provider refused keep the provider's reason code next to the explanation you already saw, so support can tell one wrong number from a pattern.
- Some addresses should not be contacted by anyone: an email that hard bounced, a number whose owner reported a message as spam, a number reached in error. Frontiva now keeps that list across every business, and a message to one of those addresses is refused before it is sent, with a note telling you to contact support rather than something your account can change. It sits below a customer's own STOP, which you can still see and explain, and above everything else.
- What this needs: a connected text messaging account. Delivery reports arrive from the carrier, so until your Twilio account is connected there are none to show, and the screens say so rather than showing you a zero.
Keep your text messaging registration in Frontiva
Live todayUS carriers filter business texts from an unregistered number, silently. Your A2P 10DLC brand and use cases now live in Frontiva, with the carriers' answer against them, and every number you text from says whether it is covered.
- A new screen under Settings, Compliance shows where your registration stands as four steps rather than one word, because "not registered" covers four different situations and what you do next differs in each: your business details, what you send, each number joined to a use case, and the carriers' approval.
- Enter your legal business name, EIN and registered address once. The commonest reason a registration is rejected is a legal name that does not match the EIN on file, so the form says so beside the field rather than after the rejection.
- Describe what you send, and the sample messages the carriers read start as your own reminder and reply wording, with your practice name in them and the STOP line the carriers look for. Edit them if they are not what you send: a sample that does not resemble your real texts is the other common rejection.
- Join each of your numbers to a use case. A number joined to nothing, or to a use case still in draft, reads as not registered rather than borrowing the status of something else.
- A rejection shows the carriers' reason word for word, because a paraphrase costs you a second rejection. Correcting the form puts it back to draft for another attempt.
- Your Overview now lists a text number the carriers would filter, and your Integrations screen labels each number with its registration, so the one thing that silently stops texts arriving is visible in the places you already look.
- What this does not do: submit the registration for you. It happens in your own Twilio account, because those are your credentials and your carrier charges. Send us the references Twilio gives you and we record what the carriers decided, with their reference against it, so the status you read is theirs and not a guess.
Undo a change to your knowledge base, and book straight from a message
Live todayEvery FAQ and fact now keeps its history, so you can see what it said before and put it back. Websites can re-read themselves on a schedule. And you can book an appointment without leaving the conversation.
- Every change to an FAQ or a fact is kept with its words, so you can see what it said last week and who changed it. Deleting one is no longer final: the history keeps the wording and one button puts it back, with everything that pointed at it still pointing at it.
- Rolling back adds to the history rather than rewriting it, so if you roll back by mistake you can roll forward again.
- A website you have connected can re-read itself on a schedule you choose, from every day to every three months. It is off unless you turn it on, because it means fetching your site on a timer.
- Campaign results now tell you WHY, not just how many: the reasons recipients were skipped or failed, grouped and worst first, plus how many people replied, opted out or booked in the fortnight after. Delivery confirmations, link clicks and revenue are not there yet, and the page says so rather than showing you a zero.
- Book an appointment straight from a conversation in your inbox. The times offered are your real openings, and the booking remembers which conversation it came from.
A chat bubble you can actually install, and prices you can read
Live todayThe website chat widget is now one script tag, copied from your Integrations screen. Pricing is published. The blog has a feed, and every page tells search engines when it last changed.
- Website chat: paste one script tag before the closing body tag of your site and a chat bubble appears bottom right. Visitors are answered from your approved knowledge, every chat lands in the shared inbox as a contact and a lead on their first message, and no cookie is set so it needs no consent banner of its own. Allowed origins keep your key to your own pages.
- Pricing: the plans and what each includes are on the pricing page, per location per month, with a free 14 day trial and no card to start. The per-unit rate past each included amount is under it, the same on every paid tier. Until billing goes live nothing is charged and nothing stops; we tell you at 80% and at 100%.
- Pick your plan from the pricing page: each tier has its own button now, and the one you choose is recorded with your account. Every account still starts on the same free trial, and we will talk to you before anything is charged.
- Your trial now tells you when it is ending, three days before and again on the day, and says plainly that nothing gets switched off.
- The blog has a feed at /rss.xml, and every page on this site now tells search engines when it last changed.
See what the AI based its answer on, before you send it
Live todayEvery AI reply now shows which of your own answers it came from and how well the question matched, so approving one is a decision rather than a guess.
- A draft waiting for your approval now says where it came from: "From your FAQ: Do you take walk-ins?". You can tell at a glance whether that answer actually fits the question your customer asked.
- It also says how close the match was. A weak match is the one worth reading twice, and it used to look exactly like a perfect one.
- The same line appears under replies that have already gone out, because "why did we tell them that" is a question people ask afterwards far more often.
- Questions answered from an entry that barely matched now appear in your Gaps list alongside the ones nobody could answer, and the list says which is which. A question nobody answered already alerted somebody. One answered badly did not, until now.
- None of this changes what your customers receive. The AI answers exactly the same questions it did before; the difference is that you can see how sure it was.
- We show a word, not a percentage. The match score measures how much a question and your stored answer have in common, which is not the same as the odds the answer is correct, and a number would invite you to read it that way.
Decide how long Frontiva keeps your conversations
Live todaySet a retention policy for your message history, see exactly what it would remove before you save it, and read what we will never delete on a timer.
- Choose how long a conversation is kept after it goes quiet, and Frontiva deletes it and its messages once it passes that. The clock runs from the last message, not from when the thread started, so a customer you have talked to for years is never treated as old.
- Before you save anything, press "Show me what goes" and Frontiva tells you how many conversations that window would remove and how far back they reach. We will not let you save a policy you have not seen the consequence of.
- It cannot be undone, so the screen says so plainly and points you at the data export first.
- The page also lists what is never deleted on a schedule, with the reason for each: your contacts, your appointments, your invoices, and the audit log. Deleting a person is a decision about that person, not a timer.
- The shortest window is 90 days, and every change is recorded in your audit log with who made it.
- Off unless you turn it on. Nothing was deleted by this update.
How much time the front desk got back, on your own numbers
Live todayTell Frontiva what a conversation usually costs your front desk, and the AI page turns that into an estimate you can export.
- You set one figure: the minutes a conversation normally takes somebody at your desk. Frontiva multiplies it by the replies the AI actually sent, and shows the assumption next to the answer so nobody can quote the total without also seeing what it rests on.
- Until you set it, there is no number. We will not guess what your staff's time is worth and then present the result as a finding.
- It is saved for your whole practice, so your colleagues read the same total you do, and it is in the CSV export alongside everything else on that page.
- Only replies that actually went out are counted. A draft still waiting for someone to approve it is not time anybody got back.
- And it is labelled as an estimate everywhere it appears, because that is what it is. The conversation count is ours; the minutes are yours.
Frontiva tells you when a channel stops working
Live todayYou no longer have to be looking at the screen. If messages stop moving on a channel, the people who can reconnect it are told.
- The problem with a status screen is that nobody is looking at it. A mailbox password changes on a Tuesday and you find out on Friday, from a customer ringing to ask why nobody answered their email. Frontiva now checks every fifteen minutes and tells you.
- You are told once, when the answer changes, not every fifteen minutes until it is fixed. An alert that repeats all day is one you learn to ignore, and then it is worth nothing on the morning something else breaks.
- You are also told when it starts working again. Being told SMS was failing and then hearing nothing leaves you either worrying or doubting the next alert.
- A quiet channel is never reported as a fault. A fortnight without an Instagram message might be perfectly normal for your practice, and we will not guess: that stays a date on the screen for you to judge.
- It only reaches the people who could actually fix it, which means whoever has permission to connect channels. Telling five people about something four of them cannot act on is how a team learns to ignore a notification.
- It arrives in Frontiva by default. Email is a switch in your notification settings, off until you turn it on.
See at a glance whether each channel is actually working
Live todayThe integrations screen now says when each channel last carried a message, how many failed recently, and what went wrong.
- Every channel is listed, including the ones you have not connected, because “Instagram is not set up” is usually what somebody came to that screen to find out.
- For the ones you have connected: when a message last came in, when one last went out, and how many failed to send in the last 24 hours.
- A channel that has gone quiet for over a week says so, and says it is worth checking, rather than being painted as an error. We cannot know whether a quiet fortnight on Instagram is a problem for your practice. You can, instantly, once the date is on the screen.
- When a channel is failing, the provider's own words are shown next to it. Knowing what went wrong is the first half of fixing it yourself.
- This is separate from the credential check that was already there, and the difference matters: a password can be perfectly valid for a month after the phone number it belongs to was released. Only one of the two would notice.
The AI stops repeating itself, and you decide what it may read
Live todayA question it has already answered goes to a person, and a new setting says how much of a customer's history it is allowed to look at.
- Somebody who asks a question, gets an answer and then asks the same thing again has told you the answer did not work. Repeating it is the worst thing to do, so the AI now hands that conversation to a person instead.
- You choose how much it may read: only the message it is answering, this conversation, or this customer's earlier conversations as well. It starts on this conversation, which is nothing the customer is not already looking at on their own screen.
- The narrowest setting genuinely reads nothing, and the screen says what that costs you: it will answer the same question again however many times somebody asks.
- The widest setting is bounded. You say how far back it may reach and how many messages it may read, and nothing is unlimited.
- It writes nothing down about your customers to do any of this. It reads the messages they have already sent you, within the limit you set.
Put your customer's name in a campaign, and decide what everyone else reads
Live todayEmail campaigns can use a first name, and the screen tells you before you send how many of your customers have one.
- Write {{first_name}} in the subject or the message and each person gets their own. Nobody is addressed as {{first_name}}: a field we cannot fill in stops the campaign at approval and tells you which one it was.
- The part that usually goes wrong is the people with no name on file, and on most lists that is a lot of them: somebody who first messaged you from a phone number is a phone number. They read “Hi there” rather than “Hi ,”, and you can choose your own word with {{first_name|neighbour}}.
- Before you send, the editor shows how many will see their own name, how many will not, and the exact sentence the second group will read. Read it back: if it only works with a name in it, that is the moment to fix it rather than after 380 people have it.
- A test send to yourself now uses your own first name, so what you are checking is what a real customer gets.
Save who you mean, undo a bad merge, and decide who gets a new lead
Live todaySaved segments, a day to take back a contact merge, routing rules for new leads, and a pipeline stage that cannot be deleted out from under the leads in it.
- Save the people you keep coming back to as a named segment: lapsed customers, anybody tagged implant, everyone added since September. It is a saved question, not a saved list, so it is always current. The contacts screen filters by it, and it shows two numbers next to it: how many are in it and how many of those can be emailed.
- A campaign can start from a segment, which fills in the audience for you. It takes a copy, deliberately: editing a segment next month must not change who last month's campaign went to.
- Merging two contacts can now be undone for a day. Everything the merge moved goes back, and anything that arrived afterwards stays where it is, so a conversation that came in this morning is not handed to the wrong record on the way back. Two things are never undone: a do-not-contact flag stays set, because somebody who asked not to be contacted should not have to ask twice, and a customer's texting permission is left exactly as they last left it.
- Fixing that also fixed two quieter things. A merged customer's mailing history and their review-request history used to be lost, and losing the second one meant they could be asked for a review again straight away, however recently they had been asked.
- New leads can be routed by rules you write: this service to this person, anything arriving out of hours to whoever is on call, everything else shared out between the team. They are an ordered list and the first match wins, so you can always tell which rule sent a lead where. Leads that match nothing are left for somebody to claim, as they are today.
- Deleting a pipeline stage now asks where its leads should go instead of taking them with it. Moving them that way does not mark anybody won or lost and does not set off automations that watch for a stage change, so tidying up your pipeline cannot message your customers or invent a month of sales.
- The AI now says something when it hands a conversation to a person. Somebody who asks to speak to a human used to watch the thread go quiet while the message sat in your inbox. You can write your own wording, or switch it off.
- And the AI cannot be set to answer customers on its own until it has passed the readiness check. Until it has, it still drafts every reply for someone to send, which is where most practices are happy to leave it.
Ask for a review after a visit, and only once
Live todayReview requests are live, by email, with a throttle so a regular customer is never nagged.
- Mark an appointment complete and the customer is asked for a review a few hours later: long enough that they are home, short enough that the visit is still what they would write about. You choose one hour, three, the next day, or two days.
- One person is asked at most once in the window you set, three months by default. A patient on a six-month recall who also comes in for a filling is not asked twice in a fortnight, which is how a practice earns a reputation for nagging rather than a rating.
- Review links are set per location, because a Google listing is per location. A practice with two surgeries sends each set of patients to the listing they actually visited, instead of leaving one branch with no reviews.
- One link per email, not three. An email offering Google, Facebook and Yelp side by side gets none of them, because a customer who has to choose mostly chooses not to.
- You can also ask one person by hand, or add it as a step in an automation. Asking by hand is refused with the reason if that person was asked recently, rather than quietly doing nothing.
- Every ask is recorded, including the ones that were not sent: no email address, unsubscribed, no review link set up yet. A list of requests that only showed the successes could not answer why somebody was never contacted.
- There is no rating gate, and there never will be. Sending happy customers to Google and unhappy ones to a private form is what the FTC has fined businesses for, and Google forbids it. Everybody gets the same link.
- What this does not do yet: show you the reviews. Reading them back needs access to the Google Business Profile API, and replying needs permission to write to your listing. Neither is connected, so Frontiva shows what it asked, not what was written, and does not pretend otherwise with an empty list.
Email your customers, and know who will actually get it
Live todayCampaigns are live. Pick who it goes to, see how many of them are really reachable, and send.
- Choose an audience by lifecycle stage and tags, and two numbers come back as you type: how many people match, and how many of those can be emailed. The gap between them is itemised, so you find out that thirty-two have no address on file before you send rather than after.
- Your business name, postal address and a one-click unsubscribe go on every message automatically. You do not write them, and you cannot leave them off: a campaign with no address on file will not send at all.
- Approving is what sends it. There is no second button to forget, and the moment you approve, the list of who it goes to is written down and frozen.
- Anybody who unsubscribes between your approving it and their own email going out still does not receive it. The list is frozen so the number you approved is the number you agreed to, and every person is checked again in the instant before their message goes.
- Afterwards there is a row per person: sent, failed, or not sent with the reason in plain words. When somebody says they never got it, that is the answer.
- Email only, and not because it is unfinished. A marketing text needs express written consent, and the consent box customers tick when booking covers appointment messages only. Using it for marketing would be using permission for something it was never given for, so we refuse rather than leave it to you to get right.
Smaller things, mostly about getting started
Live todayA password you can check before you submit it, and a booking form that says what is missing.
- Every password box on sign in, sign up and password reset now has an eye you can press to read what you typed. It always starts hidden, and goes back to hidden when the page does, so a password cannot be left on screen at a reception desk.
- Booking your first appointment used to be a dead end. A practice that had not added services yet got an empty Service list, no times, and a Book it button that stayed grey with nothing on screen explaining why. It now says which of services and team members you are missing, with a button to go and add them.
- When there are no free times, the advice used to send you to check working hours. The likeliest cause is actually that nobody is marked as performing that service, so it says that first.
Your numbers, emailed to you, without opening the app
Live todayA weekly or monthly summary of the period that has just finished, to the colleagues you choose.
- Analytics has always had the numbers. The problem was that seeing them meant remembering to go and look, which is a thing people do in week one and not in week nine.
- Pick weekly or monthly, tick the colleagues who should get it, and it arrives at 7am in your own timezone. Not at midnight, and not at 7am somewhere else: a report that lands in the middle of the night is one nobody reads.
- It always covers the period that has just finished. A Monday email is about last week, complete, so the figures in it cannot change after you have read them and two emails side by side are comparing like with like.
- You tick people, not email addresses. That means your practice's numbers cannot be sent to an address somebody mistyped, and somebody who leaves stops receiving them without anyone having to remember this screen exists.
- A figure we could not work out is left out rather than shown as a zero, because a zero in an email reads as 'we looked and found none' about something nobody looked at.
- This was listed as blocked on an email provider for months. It had not been since the 18th, when our own mail started going out; the note was simply out of date.
You hear about a plan limit before you reach it
Live todayA warning at 80 percent and again at 100, to the people who can actually do something about it.
- Your plan's monthly limits were always shown on the billing screen. The catch was that you had to go and look, and nobody opens a billing screen on a Tuesday, so the first you knew about a limit was the month it mattered.
- Now you are told: once when a limit is 80 percent used, and once more when it is fully used. Two separate notices, because reaching a limit is a different thing from approaching one, and somebody who read the first is entitled to hear the second.
- Only people who can change the plan get them. A hygienist cannot upgrade your subscription, and a notification they can do nothing about is the one that teaches everybody to ignore the bell.
- The 100 percent notice says plainly that nothing has been switched off, because nothing has. We are not going to stop your front desk replying to a patient over a billing threshold.
- Said once each per month, not every hour until you deal with it. You can turn either one off, per person, in your notification settings.
Teach the AI from what you have already written
Live todayUpload your price list or policies, or point us at your website, and see what we read out of it before any of it can be said to a customer.
- A Sources tab in Knowledge takes a PDF, a Word document, a text file or a CSV, up to 5 MB. Most practices already have the answers written down somewhere, and retyping them into a form is the reason the knowledge base stays half empty.
- Nothing an upload says goes live. We read the file, propose what looks like a service, a price, an opening time, a policy or a question and answer, and every one of them waits in a Review tab until somebody here agrees to it. That is the whole point of the feature, and it is the part we will not be quietly changing later.
- Each proposal shows the part of the document it came from, so you can check it without opening the file again, and you can correct the wording before approving rather than approving something clumsy and fixing it afterwards.
- Upload the same file again after adding two services and you are offered the two, not the thirty. Anything you already answered, or already turned down, is not put in front of you a second time.
- We keep the text and never the file. A price list is worth having; the document sitting on our disk forever is a risk to you with nothing to show for it.
- A CSV with a question and answer column, or a service and price column, is read as a table. A scanned PDF is refused with the reason, because a scan holds pictures of words rather than words, and an import that silently found nothing is worse than one that says so.
- You can also point us at your website. We read the pages, follow your sitemap if you have one, and respect your robots.txt; the same review step applies, so nothing a page says reaches a customer until you have agreed to it.
- A crawl never leaves the site you name, and you can narrow it further: one step of links or three, only addresses containing /services, never any containing /blog. Read it again whenever you like, and pages that have not changed since last time are skipped.
- The address is checked when you save it and again, against the machine it actually resolves to, immediately before every single request. That is not paperwork: a form that fetches whatever address you type is the most direct way there is into the inside of a hosting provider, and we would rather explain the check than have to explain the breach.
Connect Frontiva to your own software
Live todayAPI keys your systems can use, and webhooks that tell them the moment something happens here.
- A Developer section in Settings, for Owners and Admins. Handing out a credential that reads your records from anywhere on the internet is a different decision from connecting a channel, so it is not one a manager or a member of staff can make.
- API keys carry exactly the permissions you tick, never more than the person who created them, and never billing, team or these settings. A key that leaks cannot issue itself a replacement.
- The key is shown once and kept only as a fingerprint, so nobody here can read it back to you, or to somebody claiming to be you. Revoke one and it stops on the very next request.
- Webhooks tell your software about new contacts and leads, messages received, missed calls, tags, pipeline moves and the appointment lifecycle. It is the same event list the automation builder offers, so anything you can build a sequence from is something you can be told about.
- Every request is signed, so your end can prove it came from us. We send identifiers rather than names or message text, and you fetch the record with your key: it means one wrong character in the address you typed costs you a failed delivery instead of a patient's details.
- Send a test from the screen and see what your server answered. Failed deliveries retry for about seven hours, and an address that stays broken is switched off with a reason rather than retried forever behind everything else.
- There is no way yet for another system to push events to us. This is the outbound direction only, and the screen does not pretend otherwise.
A status page that actually checks something
Live todayWhether Frontiva is working right now, read from the running system rather than typed in by us.
- The status page used to say there was nothing to show, because nothing measured it and a green badge with nothing behind it is worse than no badge. It now reads the running system every thirty seconds and reports each part separately.
- Background work has its own line, because that is the failure you would otherwise struggle to describe: every screen loads, nothing looks broken, and replies and reminders quietly stop going out.
- Anything we have not built yet stays on the list marked as not available, so the page can never read as though everything works.
- There is still no uptime percentage and no incident history. Both need measuring from outside our own machine, and a figure the thing being measured worked out about itself is not one you should believe.
- It is served from the same machine as the product, so a total outage takes the page with it. The page says so, and says where to write instead.
A screen for the calls you missed
Live todayWho rang while nobody was there, whether they got a text back, and why a text did not go out.
- A Calls screen in the sidebar, opening on the calls nobody answered, because that is the question you have at nine in the morning rather than a list of the ones you handled.
- Every call shows whether the automatic text went out and when, so "did anyone get back to them?" has an answer you can read rather than one you have to remember.
- A caller already in your contacts links straight to them. One who is not says so, rather than looking the same as one we could not match.
- A call too short to be a real customer is shown and marked as such, instead of being hidden. If somebody asks why a caller got no text, you can find the call and see the reason.
- There is no button to call anybody back. Your own phones do that, and a button here would either repeat what your browser already offers or put the call on your bill.
- None of this can show you anything yet: it needs a Frontiva phone number answering for you, and that is still waiting on our carrier registration. The screen says so plainly rather than showing you an empty list that reads as a quiet week.
Smaller things that were quietly wrong
Live todayThree fixes where the product was refusing, hiding or mislabelling something it should not have been.
- Phone number fields no longer discard a number the browser disagrees with. A new area code, or any number our checker had not caught up with, used to vanish without a word on sign-up. Your number is kept and it is our server that decides, which is the rule that was always meant to apply.
- The compliance screen can now look back 90 days or a year, not only 30. It also stays on screen when the period is empty, which it did not before, so a quiet month no longer removes the only control that could look further back.
- A message in your inbox now says when it was sent automatically. A reminder, a reply to HELP and an automation step all used to look identical to a message a colleague typed.
Billing you can see
Live todayYour invoices, your receipts, and a plain answer about where your card details go.
- Invoices appear on your Billing screen with the amount, the period they cover, and a link to the PDF.
- Payments appear beside them, showing the card brand and last four digits so you can tell two cards apart.
- Checkout happens on pages hosted by Stripe. Your card number never reaches Frontiva, and we store no part of it beyond the brand and last four.
- One-off payment requests, for things a plan does not cover such as a setup fee, arrive by email saying the amount and what it is for before the button.
- The Billing screen now names which thing is missing when a plan cannot be changed, rather than saying only that it cannot.
- Billing is not switched on yet, so there is nothing on your screen to look at today. This is the part that has to exist before there can be.
Email in the inbox
Live todayAnswer email where you answer everything else, from your own mailbox.
- Connect your mailbox with its IMAP and SMTP details: Hostinger, Google Workspace and Microsoft 365 are filled in for you.
- Choose which folder is read, so a rule can send only customer mail to the inbox and leave the rest alone.
- Replies go out from your address, keep the subject, and land in the same thread in your customer's mail client.
- Attachments are listed by name and size; the files stay in your mailbox.
- Out-of-office replies, bounces and your own sent copies are left out, so a thread never answers itself.
- Folders by topic: sales, support, billing, legal, security, privacy, partnerships and abuse reports, filed from the address a customer wrote to or the form they used, and movable by hand.
- Website form submissions open a thread too, so a demo request is answered like any other message, and your team is told when one arrives.
- A newly connected mailbox starts from the moment you connect it, so years of old mail are not replayed into your inbox.
- A Test connection button that signs in to both IMAP and SMTP and says which one refused, and a plain reason on the Integrations screen if a working mailbox later stops.
Businesses in your contacts
Live todayKeep the companies your customers work for, not just the people.
- Add a business as a contact, with its website, industry, city, state and country.
- Link people to the business they work for, with their job title, and see everyone at a business on its record.
- Duplicate checks now also find two records for one business: the same website, or the same name in the same city.
- Filter contacts to people or businesses, and search by website or city.
- CSV import and export include job title, website, industry and location, and exported cells can no longer run as spreadsheet formulas.
Unified inbox groundwork
Live todayConversations became something a team can actually work, not just a table of messages.
- Assign a conversation to a teammate, tag it, set its priority, snooze it, or close and reopen it.
- Internal notes live in the conversation thread but are never sent to the customer.
- A filterable inbox view: open, assigned to you, unassigned, or closed.
- AI drafts awaiting approval appear inline, so a teammate can approve, edit, or reject before anything sends.
Contacts and leads
Live todayOne customer record across every channel, and a pipeline to work them through.
- The same phone number on SMS and WhatsApp resolves to one contact with one timeline - no duplicate records.
- Contact timeline merges messages with what your team did: notes, tags, lifecycle changes, lead activity.
- Merge duplicate contacts, with likely duplicates surfaced automatically.
- Pipelines and stages, lead scoring with a visible breakdown (not one opaque number), assignment, and follow-up tasks.
- CSV import with column mapping and a preview that is guaranteed to match what actually gets imported, plus CSV export.
AI agents and knowledge
Live todayAn AI front desk that answers from your approved knowledge, or defers - never invents.
- Agent builder: tone, instructions, goals, escalation keywords, and per-action modes (autonomous, approval, off).
- Answers are grounded in your structured facts and approved FAQs, with the source shown.
- Guardrails catch prompt-injection attempts and sensitive-domain questions before any answer is attempted, and hand off to a human.
- A readiness suite scores the agent against scripted scenarios before you let it talk to customers.
- Questions the AI couldn't answer are logged as knowledge gaps instead of guessed at.
- A playground for testing against your real configuration without touching your live inbox.
Accounts, teams, and permissions
Live todayMulti-user, multi-organization access with real role-based permissions.
- Sign up, invite teammates, and switch between organizations.
- Five roles (owner, admin, manager, agent, viewer) with permissions enforced on every endpoint.
- An audit log recording every write by a person or the AI.