Booking
Let customers book an appointment in the chat, straight into your calendar.
The booking settings could not be read just now.
Cal.com, Calendly or Google Calendar: your assistant offers three open times and books the one the customer picks.
YOUR ACCOUNT
Your assistants, their conversations and your plan live here. Sign in with your email →
AT A GLANCE
CONVERSATIONS
No conversations here yet.
Pick a ticket
Choose one from the list, or press J to open the next one.
You can read this ticket. Replying, assigning and closing need the Support role.
Search everything your assistant has been asked, narrow it down, and take it with you.
Read once each conversation ends. Confidence is how close the assistant's sources were to what was asked.
| Conversation | Channel | Outcome | Language | Messages | Last activity | Download |
|---|
WHAT YOUR ASSISTANT HANDLED
No conversations in these dates.
When visitors write to your assistant, their conversations show up here the same day.
Business adds the languages your visitors write in, every action's calls and your team's response times.
Compare plansEvery conversation of the last 90 days, grouped by what the visitor asked, Arabic and English together, and named in your assistant's language. Drawn again each night.
Choose a topic in the map to read its conversations.
“AI contained” counts conversations your assistant handled without pulling anyone in. It doesn't claim the visitor's problem was solved, only that nobody needed to step in.
When a ticket is closed, the visitor is asked one question in the chat: was it good or bad? They can add a comment. Each conversation is asked once.
WHAT YOUR ASSISTANT KNOWS
Everything your assistant answers from: files, text you paste, questions you answered yourself, Google Sheets and websites. Add a source and your assistant answers from it a minute or two later.
Your role can read the sources. An Owner or a Member adds and removes them.
Add a price list, your opening hours or the questions customers ask most. Your assistant answers only from what it has read.
How well the assistant answers, in each language it speaks. Checked after every change to your knowledge or rules, and once a week.
Every question in the last check was answered well.
Teach the right answer
Your answer becomes a verified answer the assistant uses from now on.
Question
3 to 2,000 characters, in the language the visitor asked in.
Type the answer you expect before you add its question: the check then holds the assistant to your facts.
WHAT YOUR ASSISTANT CAN DO
Everything your assistant can do beyond answering, in one place: ready-made actions from the tools you use, actions you build yourself, and procedures. Test each one before you switch it on; anything that changes something waits for your team.
Your role can see the actions. An Owner or a Member adds and changes them.
Tools your assistant can use in a chat once you set them up. Each card says whether it is on and what it needs.
Let customers book an appointment in the chat, straight into your calendar.
The booking settings could not be read just now.
Cal.com, Calendly or Google Calendar: your assistant offers three open times and books the one the customer picks.
Build an action of your own: a call to your own system, a form that collects details, or a tool on your page.
Start with the one your customers ask about most, such as where their order is.
Lowercase letters, digits and _, for example order_status.
Booking appointments has a ready-made action: set it up from the Booking card on this page.
Your assistant reads this to know when to use the action.
What your assistant asks the customer before it acts. Up to 10.
No inputs: the action runs as it is.
HTTPS only. Put inputs in braces, for example https://shop.example/api/orders/{order_number}
Or put the token in a file at:
A teammate who sees every assistant checks the host once the record or the file is in place.
Only these reach your assistant. Leave it empty to keep the whole answer.
A call that changes something, or reaches full customer data, always waits for your team's approval in the Helpdesk.
Try the call with sample inputs. It is sent with the header X-Bidi-Dry-Run: 1 so your system can tell it apart.
Switch it on and your assistant can use it in conversations from the next message.
Verify the host first, then switch it on.
What your forms collected in conversations, newest first.
Nothing collected yet.
Write the steps your assistant follows for a task, in your own words and your own language. Mark the steps where a person on your team decides.
You can read the procedures here. Owners and members change them.
The procedures could not be read just now.
No procedures yet
A procedure is a task your assistant walks a customer through, step by step: moving a booking, a return, a quote.
Small cards your assistant can show in the chat, such as buttons to tap, an order's status or times to book.
Your role can see this. An Owner or a Member can try cards here.
Your role can see this switch. An Owner or a Member turns it on or off.
See what a card could look like. Describe one in plain words and bidi draws it from its six pieces, with sample data. Nothing here is saved, and your visitors never see it.
For example: a card with the order's status and the day it arrives. 3 to 600 characters.
Drawn as
bidi started from its own example for this kind of card. Describe it again in more detail to change it.
YOUR PLAN
Every workspace has its own plan. An assistant you launch from here goes live in this workspace, and a plan you choose here covers this workspace only.
YOUR TEAM
Just you so far.
Invite a colleague and choose what they can do. Every invite is a link that works once.
Takes its live assistants offline for good, cancels its plan so nothing more is charged, and erases its assistants, knowledge, conversations, leads, contacts and settings. Invoices stay with whoever paid them, as tax law requires.
PARTNER
Every business you manage, its plan and this month's use. Open a client to work in its workspace; its own people see that workspace and nothing else.
No clients yet.
Add your first client. Their assistant, their people and their plan live in a workspace of their own.
One roll-up of what was invoiced in the month, your own workspace and every client's.
SIGN-IN SECURITY
After the code we email you, bidi also asks for a code from an authenticator app on your phone. Someone who gets into your inbox still cannot get into your account.
Each code signs you in once if your phone is not with you. Keep them somewhere safe; bidi shows them only now.
YOUR TEAM
Who changed what in this workspace, newest first, with what it was before and after.
YOUR TEAM
The four roles cover most teams. When they do not, make your own: name it, then switch on exactly what it may do. Billing and managing people stay with the Owner.
ENTERPRISE
Let your team sign in through your company's identity provider (Okta, Microsoft Entra, Google Workspace or any SAML 2.0 provider) instead of an emailed code.
Single sign-on comes with Enterprise. Tell us about your team and we will set it up with you.
Talk to usYOUR TEAM
Set each person's working week in their own time zone. A new ticket goes only to someone who is on shift and Available. A person with no shift is always on the rota.
Shifts could not be loaded. Try again in a moment.
HELPDESK
A rule does the routine work on a ticket. When its conditions hold it assigns, tags, answers with a macro, calls your webhook or tells someone. Rules run from the top, when a ticket opens and each time it changes.
Rules could not be loaded. Try again in a moment.
No rules yet
Start with one: when a ticket is in Arabic, assign it to your Arabic desk.
FOR YOUR DEVELOPERS
A key lets your own code talk to bidi: list your agents, add knowledge, chat, read conversations and leads. Each key is shown once; keep it like a password.
No keys yet. Create one, give it only the scopes its code needs, and paste it where that code reads its secrets.
| Label | Key | Scopes | Created | Last used | Status | Actions |
|---|
DEVELOPERS
A signed POST to your own systems the moment something happens: a new lead, a visitor asking for a person, a conversation closed. A failed delivery is retried for up to 14 hours 36 minutes, and every delivery is logged here.
The receiver recipe and the Zapier note are in the developer docs.
Add the URL of your CRM, a Zapier catch hook or your own server, pick the events, then send a test event to watch the signature land.
FOR YOUR DEVELOPERS
When a customer is signed in on your website, your server can vouch for them. bidi then shows them as a verified contact, and your assistant remembers their earlier conversations.
The full recipe, with code, is in the developer docs.
Verified contacts and memory across visits are part of the Team and Business plans. Change your plan in Settings > Plan to switch them on.
Copy it into your server's secrets now. bidi keeps it encrypted and cannot show it again; rotate it if you lose it.
// On your server. The secret never goes to the browser.
const { createHmac } = require("node:crypto");
function bidiIdentityToken(user) {
const b64 = (value) => Buffer.from(JSON.stringify(value)).toString("base64url");
const now = Math.floor(Date.now() / 1000);
const head = b64({ alg: "HS256", typ: "JWT" });
const body = b64({
sub: String(user.id), // required: your id for this user
email: user.email,
name: user.name,
attributes: { plan: user.plan },
iat: now,
exp: now + 60 * 60, // required: at most 24 hours ahead
});
const signature = createHmac("sha256", process.env.BIDI_IDENTITY_SECRET)
.update(head + "." + body).digest("base64url");
return head + "." + body + "." + signature;
}
const { createHmac } = require("node:crypto");
const userHash = createHmac("sha256", process.env.BIDI_IDENTITY_SECRET)
.update(String(user.id)).digest("hex");
bidi('identify', { token: tokenFromYourServer });
// or: bidi('identify', { user_id: 'u_42', user_hash: userHash, name: 'Sara' });
bidi('identify', null); // they signed out
WHERE YOUR ASSISTANT ANSWERS
HOW YOUR WIDGET LOOKS
Give your assistant a name, a face and your colours. The preview is the real widget: what you see is what your visitors get.
The bidi badge
"Powered by bidi" shows under the chat on your plan. Every paid plan, from Starter up, removes it.
Changes reach your website within a minute of saving. Visitors already in a chat see them on their next page.
HOW YOUR ASSISTANT BEHAVES
Business rules the assistant always follows: prices to quote, policies to mention, things to offer. They shape behaviour but can never widen what the assistant talks about. Applies to new conversations from the moment you save.
Need CRM updates or custom workflows? That's bidi Enterprise →
LANGUAGES
Choose the language your assistant answers in and how it sounds. Saving updates it wherever it chats: your website, your chat page and every channel. Conversations so far are kept as they are.
With both, each visitor is answered in the language they write in.
What it talks about and what it represents come from the setup it went live with and from its knowledge.
Visitors who write in one of these languages get their answer in it, with the same facts and the same limits. Anyone writing in another language is answered in your main language, with one line saying so. Applies to new conversations from the moment you save.
From the latest readiness check. A new check runs after your knowledge changes.
No readiness check with these languages yet.
CONVERSATIONS & YOUR TEAM
When nobody replies within 30 minutes (or you're outside business hours), the assistant collects the visitor's contact details so the lead is never lost.
Tick each day your team works and set its hours. An unticked day is closed. With no day ticked, your team is always available.
Days your team is away whatever the weekly hours say: public holidays, a stocktake, a trip. A visitor who asks for a person on one of them is told when you are back, and leaves their details.
Eid and the other lunar holidays are expected dates: the moon sighting decides. Check them against the official announcement, adjust, then save.
Shorter days for a few weeks. Between these dates the hours below replace your weekly hours; afterwards the weekly hours come back by themselves.
Deleting removes the full conversations (messages, feedback, summaries, page context) permanently, in a nightly sweep. Your leads and the anonymous monthly totals are kept.
Up to five people hear about this assistant by email: when a visitor asks for a person, when a lead comes in, and a summary every morning at 8:00. Each person reads it in their own language.
Handoffs and leads still show in your inbox. Add an address above to get them by email too.
Keep the chat for real customers: slow down anyone who sends too fast, turn away countries you do not serve, and pause visitors who send spam.
Let visitors send a photo or a PDF from the chat: a price tag, a receipt, an error on their screen. Your assistant reads it and answers, and your team sees it with the conversation, in the Inbox and in All conversations.
Photos are stored without their location and camera details, and every file is deleted with its conversation.
WHAT YOUR ASSISTANT COLLECTS
Name, contact and interest are always collected. Add the details your team needs with every lead, such as the emirate or a budget, and your assistant asks for them when a visitor shares how to reach them.
Start with one, for example Emirate with the seven emirates as its options.
ASSISTANT
Pause takes the assistant off your website and stops it answering on every channel. Its settings, knowledge, conversations and leads stay as they are, and it keeps its place on your plan. Resume brings it back.
Remove retires the assistant for good and frees its place on your plan. It cannot be brought back. Its conversations and leads are kept, and you can download them from Overview.
This assistant has a plan of its own that still renews. Cancel that plan first, then remove the assistant.
Only the workspace Owner can remove an assistant.
LIVE ON YOUR WEBSITE
DRAFTS & PREVIEWS
REMOVED
They no longer answer anywhere. Their conversations and leads are kept, and you can download them here.
SAVED FOR LATER
Nothing saved yet. An Enterprise brief saves itself here as you write it, while you're signed in. Write a brief
SUBMITTED
No requests yet. When you send one, such as an Enterprise brief, it shows here with where it stands.
CAPTURED FOR YOUR TEAM
PEOPLE YOU KNOW
Everyone your assistants have met or your team has added: customers your website verified, leads who left their details, and the lists you import. One row per person.
INTEGRATIONS
Every account this assistant is connected to, what it is used for, and Disconnect. A ready-made action is set up on its card in Actions; a handoff tool under Handoffs to your tools.
The accounts could not be read just now.
No accounts connected yet
Connect one from a ready-made action in Actions, or a handoff tool under Handoffs to your tools.
Open ready-made actionsINTEGRATIONS
Find a tool, see whether it is connected for this assistant and which plan it comes with, then open the place where you set it up.
Try another name, or clear the search to see every integration.
INTEGRATIONS
When a visitor asks for a person, bidi can also open a ticket in your helpdesk or post to a Slack channel, with a short summary, the transcript and a link back to the ticket here.
CONNECTED TOOLS
Need a change to an integration? Contact bidi →