Half of a salon's bookings start with “any free slots on Saturday?” in Direct. When Direct lives on the administrator's phone, the conversation is cut off from the CRM: you can't see who the client is, how often they came or whether they cancelled last time. Once connected, Direct messages appear in Chats, and replies from the CRM reach the client in Instagram.
The first setup takes 40–60 minutes and is done on a computer. Most steps happen in Instagram, Facebook and Meta for Developers: these are Meta's requirements, and no CRM gets Direct without them. Below is everything in order, with what exactly to click.
Chats are available on the Salon and Network plans.
What you get
- A Direct message appears in Chats with the Instagram profile name and photo.
- A reply from the CRM reaches the client's Direct within seconds. If Instagram rejects it, the message is marked “Not sent” and can be retried.
- A new person gets a client card with their Instagram name, without a phone yet. If they send a number that already exists in your base, the conversation attaches to that card.
- Notifications. Staff with access to chats get “New chat message” in the bell and on the phone.
- Photos, video and audio from Direct are saved in the chat as they arrive.
A person's first message gets no auto-reply: the default one says “Glad to see you again”, and this person is writing for the first time. Later messages follow the usual auto-reply rules.
Before you start: checklist
- The salon's Instagram account, with its login and password.
- The personal Facebook account of whoever sets this up. It must be an admin of the salon's page.
- The BeeSection Salon or Network plan.
- A computer: Meta for Developers is awkward on a phone.
- A second Instagram account for testing: you'll message the salon from it “as a client”.
Keep a notepad open: along the way you'll copy four values — the App Secret, the page token, the webhook verification word and the webhook address.
Step 1. Professional Instagram account
A personal Instagram account doesn't give messages to third-party software. You need a professional one: Creator or Business.
- In the Instagram app open the salon's profile → menu ☰ → “Settings and activity”.
- “Account type and tools” → “Switch to professional account”.
- Pick a category (for example, “Beauty salon”) and the Business or Creator type.
If the profile already shows “Professional dashboard” or “Insights”, it's already professional — move on.
Step 2. Facebook page and linking Instagram
Direct reaches the CRM through a Facebook page linked to Instagram. We don't have a separate “Instagram-only” login.
- If the salon has no Facebook page, create one: facebook.com → “Pages” → “Create new Page”. A name and category are enough.
- Link Instagram to the page. Easiest on a computer: open the page → “Settings” → “Linked accounts” → Instagram → “Connect account” and sign in to the salon's account.
- Make sure your personal Facebook is a page admin with full access. Without it no page token will be issued.
Facebook renames menu items from time to time. If you can't find “Linked accounts”, search the page settings for “Instagram”, or link it in Meta Business Suite: “Settings” → “Instagram accounts”.
Step 3. Allow message access in Instagram
This is a separate switch and the one most often missed. While it's off, Instagram gives Direct messages to no software at all, even when everything else is set up correctly.
- In the salon's Instagram app: menu ☰ → “Settings and activity” → “Messages and story replies”.
- “Connected tools” (or “Message tools”) → turn on “Allow access to messages”.
Step 4. An app in Meta for Developers
Instagram lets a CRM read messages only through an app registered with Meta. The app is yours: its keys stay with you, and BeeSection gets only the page token.
- Open developers.facebook.com and sign in with the same Facebook that administers the page. If it's your first time, Meta asks you to register as a developer: confirm your phone and email.
- “My Apps” → “Create App”.
- If Meta asks about a use case, choose “Other”. App type — “Business”. Name — anything, e.g. “BeeSection — Easy Peasy”. Business portfolio — yours, if you have one.
- On the app dashboard add the Messenger and Webhooks products (“Set up” next to each).
- Open “App settings” → “Basic”. Click “Show” next to “App Secret” and copy it to the notepad. It's a secret: don't send it in messengers or publish it.
Step 5. A never-expiring page token
The page token is the “key” BeeSection uses to send your replies on behalf of the page. Take a long-lived one: a short token lasts about an hour, and the next day replies stop going out.
- Open Graph API Explorer: developers.facebook.com/tools/explorer.
- On the right, in “Meta App”, pick your app from step 4. In “User or Page” — “Get User Access Token”.
- Add permissions:
pages_show_list,pages_messaging,pages_manage_metadata,instagram_basic,instagram_manage_messages. If the page is in a business portfolio, also addbusiness_management. - Click “Generate Access Token”. Facebook shows a login window: choose the salon's page and the linked Instagram, and allow everything requested.
- Copy the token and open the Access Token Debugger: developers.facebook.com/tools/debug/accesstoken. Paste the token, click “Debug”, then “Extend Access Token” at the bottom. Copy the new, long token.
- Back in Graph API Explorer, paste the long token into the token field and run
me/accounts. Find your page in the response: theaccess_tokennext to it is the page token. Copy it to the notepad. - Check it in the debugger from item 5: “Expires” should say “Never”. If there's a date, you took the wrong token — repeat items 5–6.
A page token obtained this way doesn't expire. But it stops working if the person who issued it changes their Facebook password or removes the app's access. Then repeat this step and paste the new token into BeeSection.
Step 6. Connecting in BeeSection
- “Settings” → “Integrations” → pick Instagram Direct in the catalog. (“Facebook Messenger” and “Meta” sit next to it on the same code; for Direct use Instagram Direct.)
- Fill in the fields:
- Page Access Token (Long-Lived) — the page token from step 5.
- Webhook Verify Token — already filled with a random word. Copy it to the notepad now: after saving it's hidden. You can type your own word instead, just remember it.
- App Secret (for webhook signature verification) — the App Secret from step 4. Required: without it the CRM rejects every message, because it can't confirm they came from Meta.
- Instagram Business Account ID — can be left empty.
- Click “Connect integration”.
The connection check shows the page name and the linked Instagram profile number. If there's no Instagram number, Instagram isn't linked to this page (step 2) and Direct won't arrive.
After connecting, the card shows an “Address for the provider” block — a webhook address like https://api.beesection.com/chats/wh/meta/…. Copy it to the notepad. Don't build it by hand: it contains your company and integration numbers.
Step 7. The webhook in Meta
The webhook is the address Meta sends every new Direct message to.
- In Meta for Developers open your app → Webhooks.
- In the object list choose Instagram and click “Subscribe to this object”.
- “Callback URL” — the address from the BeeSection card. “Verify token” — the word from the Webhook Verify Token field.
- Click “Verify and save”. Meta checks the address right away. If it saved, the word matched and the address is right.
- In the field list find messages and click “Subscribe”. Optionally also
messaging_postbacksandmessaging_referrals.
If Meta says the address couldn't be verified, most often the verification word differs between Meta and BeeSection: check for spaces at the start and end.
Step 8. Subscribe the page to the app
Without this step the webhook check passes but messages never arrive: Meta sends events only for pages subscribed to the app.
In BeeSection, in the Instagram Direct card, open “Additional actions” → “Subscribe page”. You should see “The page is subscribed to the app: messages will arrive in the CRM.”
Step 9. Test with a second account
While the Meta app is in development mode, Instagram sends the CRM messages only from people who have a role in the app. So test with your second account first.
- In Meta for Developers: app → “App roles” → “Roles” → “Add people” → “Instagram Tester” role → enter the second Instagram account's username.
- In the second account's Instagram app accept the invite: “Settings” → “Website permissions” or “Apps and websites” → “Tester invites” → “Accept”.
- From the second account write to the salon's Direct: “Test 1”.
- In BeeSection open Chats: a chat with that account's name, the message “Test 1” and a bell notification should appear. In Clients — a new card without a phone.
- Reply from the chat. The reply should reach Direct within seconds.
- Send a photo from Direct — it should appear in the chat as a photo.
If nothing appears in item 4, see “If it doesn't work” below.
Step 10. So every client gets through: Live and Meta review
While the app is in development mode, clients without a role in the app write to Direct as usual, but those messages don't reach the CRM. To receive everything, switch the app to Live and pass Meta's App Review.
- Business verification. In Meta Business Suite: “Business settings” → “Security Center” → “Business verification”. You'll need the name, address and a document proving activity (statement, invoice). Usually a few days.
- App settings → “Basic”: fill in the privacy policy URL, the data deletion instructions URL, the category and app icon. The privacy policy can live on the salon's website.
- App Review → “Permissions and features”: request Advanced Access for
instagram_manage_messagesandpages_messaging. For each, Meta asks for a short explanation and a screen recording: a client writes to Direct → the message appears in BeeSection Chats → the administrator replies → the reply arrives in Instagram. Review takes from a few days to a few weeks. - Once approved, switch the app to Live with the toggle at the top of the dashboard.
From then on, messages from every client reach the CRM.
How it works day to day
- The 24-hour window. Meta allows replies in Direct within a day of the client's last message. Later, a reply won't go out and is marked “Not sent” — the client has to write again. So answer Direct the same day.
- Who sees it. Staff with access to Chats. New-message notifications go to the bell, the phone and Telegram if linked in the profile.
- Booking. Reply with your online booking link and the client picks a time, see “A booking link in the chat”. If the client gives a phone number, add it to the card so reminders reach them outside Instagram too.
- Attachments. A single photo, video or audio is saved in the chat. “Shared a post”, story mentions and reels arrive as documents.
If it doesn't work
| What happens | Why | What to do |
|---|---|---|
| Meta won't save the webhook, “couldn't be verified” | The verification word differs between Meta and BeeSection | Copy the word again without spaces; if needed, type a new one in BeeSection, save, and repeat in Meta |
| Webhook saved, no messages | “Subscribe page” wasn't clicked | Step 8 |
| Webhook saved, no messages | Message access is off in Instagram | Step 3 |
| Webhook saved, no messages | The app is in development mode and the sender has no role | Step 9 or step 10 |
| Webhook saved, no messages | Subscribed to the Page object instead of Instagram, or the messages field isn't ticked | Step 7, items 2 and 5 |
| Webhook saved, no messages | The App Secret in BeeSection belongs to another app | Copy the secret of the app where the webhook is set up (step 4, item 5) |
| The connection check shows no Instagram | Instagram isn't linked to the page | Step 2 |
| Messages arrive, replies are “Not sent” | More than 24 hours since the client's last message | Wait until the client writes again |
| Everything worked and then stopped | The Facebook password was changed or access removed — the page token is invalid | Step 5, then paste the new token into the integration card |
Limitations
- No “Log in with Facebook” button. The token is pasted manually per step 5.
- The token doesn't renew itself. After a Facebook password change it has to be issued again.
- Replies only within 24 hours of the client's message, per Meta's rules.
- A client card is created for everyone who writes, spam included. Extra cards can be deleted.
- Replying to a specific message isn't linked to the original message in the CRM.
If you get stuck
Write to us via the “Something off? Tell us” button in the CRM and say which step you stopped at. We'll connect it together: all we need is admin access to the Facebook page for the duration of the setup.
Other channels in the same window — Telegram, WhatsApp, email, web chat — are covered in “Chats in one inbox”.
Comments
No comments yet. Ask your question — we answer within a day.