SMS & WhatsApp
When a visitor asks for a person, you can alert your team by SMS and WhatsApp as well as email. Alerts go out from your own SMS provider account and your company's WhatsApp Business line; charges go to your account. The settings are in Admin Panel → Publishing → SMS & WhatsApp (formerly Business WhatsApp). You choose which channels each team uses in Widget Settings, and people's phone numbers on the Users screen.
Which one should I use?
| Channel | Good when | What you need |
|---|---|---|
| SMS | Quickest to set up; reaches any phone. | An SMS provider account and an approved sender ID. In Turkey, Netgsm, İleti Merkezi or Verimor: the subscription is approved via e-Devlet and the sender ID within 1–3 business days. |
| Easy to read if your team uses WhatsApp. | A Meta business account, a number that isn't on WhatsApp yet and a template approved by Meta; setup can take a few days. | |
| The default when neither is set up. | Nothing. Email is also the fallback when SMS or WhatsApp can't get through. |
Setup order
- Open an account with the provider; get the SMS sender ID or the WhatsApp template approved using the steps below.
- On the SMS & WhatsApp screen pick the provider, enter the details and click Save.
- Verify connection: checks the account and the SMS sender ID or WhatsApp number without sending anything.
- Test: send a test message to your own number.
- In Widget Settings choose the channels for teams and for unassigned handoffs; on Users enter people's mobile numbers with the country code.
An alert never disappears. If none of the chosen channels gets through (no number, no line set up, the provider refused), the same alert goes out by email. Removing a channel's provider while the channel is selected is refused too.
WhatsApp Business line
Alerts go out from your company's WhatsApp Business number with an approved template. The agent's WhatsApp (connected by QR) isn't used for this.
What is an approved template?
WhatsApp only delivers business-initiated messages through a template approved by Meta: if your agent hasn't written to your business number in the last 24 hours, free text never arrives. A template is fixed text with a single variable; in every alert SemAgent fills the variable with who is waiting, why, and the conversation link. You create and approve the template once in your provider's panel (steps above) with the body below; every alert then reuses it.
Suggested body (Utility category, one variable):
SemAgent live chat alert: {{1}} You are receiving this because your number is registered for handoff alerts in your company's SemAgent account. Sign in to the SemAgent panel to reply.
Sample value (asked for the variable when you submit the template):
Acme Ltd: Ayşe wants to talk to a person (refund request). Conversation: https://acme.semagent.ai/settings/conversations?c=12345
Category: Utility. The name uses only lowercase letters, digits and _ (e.g. semagent_bildirim); the language code must match the field here (tr, en_US). The variable can't start or end the body, and every variable needs a sample value. Approval takes from a few minutes to 24 hours. After approval, check the category is still Utility: if Meta considers the content marketing, it moves the template to the more expensive Marketing category instead of rejecting it.
Meta — WhatsApp Cloud API
- Create a business portfolio at business.facebook.com under your company's legal name; a live HTTPS website makes approval easier.
- At developers.facebook.com create an app and add the WhatsApp product; Meta sets up a test number and a WhatsApp Business account (WABA).
- On the app's WhatsApp › API Setup page add your real number. It must not be on WhatsApp already (delete that account first) and must receive SMS or voice calls; lines behind a phone menu (IVR) can't receive the code.
- Copy the Phone number ID (the digits under the number) from the same page.
- In Business Settings › Users › System users › Add, create a system user and assign it the app and the WhatsApp account with Full control.
- Generate new token: pick the app, set expiry to Never and grant whatsapp_business_messaging, whatsapp_business_management and business_management. Copy the token.
- WhatsApp Manager › Message templates › Create template: category Utility, name semagent_bildirim, language English (en_US) or Turkish (tr). Paste the suggested body below, add the sample value and submit.
- Add a payment method to the WhatsApp account; otherwise messages fail with error 131042.
- Enter the Phone number ID, token, template name and language here and save; check with Verify connection, then send a test message.
Cost: Meta charges per delivered template message by country and category; the current Utility rate is in Meta's rate card. No middleman fee; Meta bills you directly.
Watch out: An unverified business can start conversations with 250 different people per 24 hours, which is plenty for team alerts. A personal user token expires within hours: always use a system user token. The display name must match the brand name on your website.
360dialog
- Create an account at hub.360dialog.com. You must be the owner or an admin of your business portfolio, and your website must be live over HTTPS.
- Hub › Add channel: choose a pricing plan and payment method and enter your number (it must not be on WhatsApp already).
- In the Meta window that opens, pick or create your business portfolio and WhatsApp account, then confirm the 6-digit code by SMS or voice call.
- Hub › Channels › your number › API Settings › Generate new API Key: the key is shown only once, copy it right away.
- Hub › Channels › Templates › New template: category Utility, name semagent_bildirim, language en_US or tr; paste the suggested body below and submit it with the sample value.
- Enter the API key, template name and language here, save, then send a test message.
Cost: 360dialog charges a monthly fee per number (the Regular plan starts at €49 / $59); Meta's message fees come out of the prepaid channel balance.
Watch out: Generating a new API key cancels the old one immediately; if you do, enter it here too, or alerts fail with 401. The 360dialog sandbox only works with its own ready-made templates, so your template can't be tested there.
Twilio
- Create an account at twilio.com and upgrade it; WhatsApp senders aren't available on trial accounts.
- Console › Messaging › Senders › WhatsApp Senders: log in with Facebook, pick your business portfolio and WhatsApp account, and verify your number by SMS or voice call (it must not be on WhatsApp already).
- Messaging › Content Template Builder: create a template with the suggested body below, add a sample value for the variable and click Save and submit for WhatsApp approval. Copy the Content SID that starts with HX.
- Copy the Account SID (AC…) and Auth Token from Account Info on the Console home page.
- Enter the Account SID, Auth Token, sender WhatsApp number and Content SID here and save; check with Verify connection, then send a test message.
Cost: $0.005 per message plus Meta's WhatsApp fee; $0.001 per failed message (Twilio pricing page, September 2026).
Watch out: Twilio's WhatsApp sandbox only works with its own ready-made templates. Template approval usually takes an hour, at most one business day.
Infobip
- Create an account at infobip.com. The trial lasts 60 days and only sends to your verified number from Infobip's shared sender; add funds for real use.
- Channels and Numbers › Channels › WhatsApp › Register sender: log in with Facebook, pick your business portfolio and WhatsApp account, and verify your number (short codes and toll-free numbers aren't accepted).
- Senders › ⋯ › Manage templates › Register template: category Utility, name semagent_bildirim, language en or tr; enter the suggested body below and the sample value.
- Developer Tools › API Keys: create an API key with the whatsapp:message:send scope.
- Your personal API address (xxxxx.api.infobip.com) is shown in Infobip's API documentation while you're logged in.
- Enter the address, key, the sender number the template is registered under, the template name and language here and save; verify, then send a test message.
Cost: Charged per message; Infobip's price depends on your contract (no public price list).
Watch out: The sender must be the number the template is registered under. Businesses without a website are more likely to be banned by Meta.
SMS provider
Enter the API details of your own SMS account; charges go to your account. Turkey: Netgsm, İleti Merkezi, Verimor · International: Twilio, Vonage, Infobip, Plivo · Anything else: Custom HTTP. At most 60 alert texts go out per hour.
Sending to Turkish numbers through an international provider: a registered sender ID is required (takes 2–4 weeks); operators block texts with links, so SemAgent removes the link and writes “Open the panel to reply”; trial accounts can't send real alerts.
Netgsm
- Apply online at netgsm.com.tr. Approve the contract via e-Devlet (an NFC phone and a chip ID card) or the Netgsm mobile app, upload the documents and pay. Sole proprietors: application form and tax certificate; limited companies: form, signature circular and trade registry certificate.
- Apply for an SMS sender ID: Abonelik İşlemleri › Online Başvurular › Gönderici Adı Başvurusu. 3–11 characters, related to your company name or brand; documents go by KEP (registered e-mail).
- Abonelik İşlemleri › API İşlemleri › API Erişimini Aktifleştir (enable API access).
- Abonelik İşlemleri › Alt Kullanıcı Hesapları › Yeni Kayıt: create and activate a sub-user of type API Kullanıcısı with SMS permission.
- Here, enter your subscriber number as the username (850xxxxxxx, without the leading 0), the API sub-user's password (NOT your portal login password) and your approved sender ID.
- Verify connection checks the credentials and that the sender ID is on the account without sending an SMS. Then send a test text to your own number.
Cost: Prepaid packages: 10,000 texts for 899 TRY, 25,000 for 2,229 TRY (VAT and communication tax included, valid one year; Netgsm price page, September 2026).
Watch out: Error 30: wrong username or API password, API access off, or IP restriction on (if you enabled it, ask our support team for SemAgent's outbound IP addresses and add them). Error 40: the sender ID isn't on the account.
İleti Merkezi
- Open a free account at iletimerkezi.com. It comes with 100 welcome texts; until your subscription is complete it only sends to your registered test number with the APITEST sender.
- Subscription: Ayarlar › Hesap Bilgileri › Abonelik Başvurusu, then approve it in e-Devlet under BTK e-Kayıt Başvurusu Onay İşlemleri (operator: EMARKA). Send the documents by KEP: for a company the signatory's ID, signature circular and trade registry record; for an individual an ID and residence certificate.
- Sender ID: Ayarlar › SMS › Başlıklar. Up to 11 characters, no Turkish letters; approval takes 1–2 business days.
- Ayarlar › Güvenlik › Erişim İzinleri: turn on API kullanımına izin ver (allow API use).
- Ayarlar › Güvenlik › API Erişimi: copy the API key and API Hash. Enter the hash exactly as shown; don't generate it yourself.
- Enter the API key, API Hash and approved sender ID here and save; check with Verify connection, then send a test text.
Cost: VAT and communication tax included: 1,000 texts for 359 TRY; 10,000 for 879 TRY (first purchase). Packages last one year and undelivered texts aren't charged (İleti Merkezi price page, September 2026).
Watch out: Error 401: API use off, wrong key or hash, or the IP isn't allowed. Error 450: the sender ID isn't approved. Sending the same text to the same number again shortly is refused with 451.
Verimor
- Apply at oim.verimor.com.tr/abonelik-basvurusu and approve the contract in e-Devlet (e-Kayıt Başvurusu Onay İşlemleri › Verimor) or with a wet signature. Company documents: signatory's ID, signature circular, tax certificate and residence certificate.
- Apply for an SMS sender ID: up to 11 characters, documents required, approval in 1–3 business days. Verimor gives sender IDs to businesses registered in İYS.
- OİM › SMS Ayarlarım: set an API password and add SemAgent's outbound IP addresses as allowed IPs (ask our support team for them). Without an allowed IP every request returns 401.
- Here, enter your 12-digit account number starting with 90 as the username (e.g. 908501234567), the API password and the sender ID, then save; check with Verify connection, then send a test text.
Cost: The SMS API itself is free; ask Verimor for package prices.
Watch out: The same text isn't sent to the same number twice on the same day (duplicate protection), so SemAgent adds a short code to test messages.
Twilio
- Create an account at twilio.com (email and phone verification) and upgrade it (ID, address, tax details, starting balance). A trial account only sends Twilio's ready-made texts to verified numbers.
- Console › Messaging › Settings › Geo Permissions: enable the countries you'll send to (e.g. Turkey).
- Register a sender ID for Turkey: Phone Numbers › Alphanumeric Sender ID › Add a new Sender ID. Up to 11 characters with at least one letter; company documents and authorization letters are required, and it takes about 2 weeks. From 18 November 2026 unregistered senders are blocked.
- Console › Account Info: copy the Account SID (AC…) and Auth Token.
- Enter the Account SID, Auth Token and your registered sender ID (or your Twilio number, or a Messaging Service SID starting with MG) here and save; verify, then send a test text.
Cost: $0.0305 per text to Turkey (Twilio pricing page, September 2026).
Watch out: Error 21408: the country is off in Geo Permissions. A trial account can't send real alerts.
Vonage (Nexmo)
- Create a Vonage API (Communications APIs) account. Demo mode only sends to your registered number and 4 verified test numbers and adds a demo note to every text.
- Add funds to leave demo mode.
- A sender ID registration is mandatory for Turkey: Dashboard › Phone Numbers › Global Sender ID (accounts without an account manager contact Vonage support). The name must contain your brand and is case-sensitive; generic names such as INFO or SMS aren't accepted.
- Copy the API key from API Settings. Existing API secrets are no longer shown: if you didn't save yours, create a new secret.
- Enter the API key, API secret and the sender ID exactly as registered, then save; verify, then send a test text.
Cost: You can see the current price for Turkey in the Vonage dashboard.
Watch out: Error 29: a demo account only sends to test numbers. Error 15: the sender ID isn't registered.
Infobip
- Create an account at infobip.com (email and SMS verification). The trial lasts 60 days and only sends to your verified number with Infobip's test sender.
- Add funds.
- Sender for Turkey: if you have a Turkish legal entity and a Compatel contract, request a brand sender under Channels and Numbers › SMS › Request Sender; otherwise buy a virtual long number (informational messages only).
- Developer Tools › API Keys: create a key with the sms:message:send scope; add account-management:manage too if you want Verify connection to read your balance.
- Copy your personal API address (xxxxx.api.infobip.com).
- Enter the address, key and approved sender here and save; verify, then send a test text.
Cost: Per-network prices are in the Infobip portal.
Watch out: Even with a 200 response a message can come back REJECTED (e.g. not enough credit); SemAgent shows it as an error.
Plivo
- Create an account at plivo.com with a work email (addresses like Gmail aren't accepted; don't use a VPN while signing up); Plivo reviews every account.
- Add credit.
- A sender ID registration is mandatory for Turkey: Messaging › Sender IDs › Register Sender ID (6–11 characters, 3–4 weeks, paid). Operators add a 4-digit code to the end of each text.
- Copy the Auth ID and Auth Token from the top of the Console home page.
- Enter the Auth ID, Auth Token and registered sender ID here and save; verify, then send a test text.
Cost: About $0.029 per text to Turkey (Plivo pricing page, September 2026).
Watch out: A trial (developer) account only sends to verified numbers.
Custom HTTP
- Find your provider's send-a-single-SMS API address (https) and request format in its documentation.
- Choose POST (JSON) and write the body template: put the placeholders below, in quotes, into the recipient, text and sender fields.
- Put the credentials in an Authorization header and enter the secret value in the secret field below; use it in the header with its placeholder. Don't put the secret in the address (it ends up in logs).
- Save and send a test text to your own number. A 2xx response counts as accepted.
Cost: Your provider's price applies.
Watch out: Some providers return errors with a 200 too; if the test text doesn't arrive, check the report in the provider's panel. This option has no no-send connection check.
Verify connection and test
| Provider | What Verify connection checks |
|---|---|
| Netgsm | The credentials, and that the sender ID is on the account. |
| İleti Merkezi | The API key and hash; the sender ID list. |
| Verimor | Username, API password, allowed IP; the sender ID list. |
| Twilio | That the account is active, and whether it is a trial account. |
| Vonage | The API key and secret (the balance is read). |
| Infobip | The API key (if it can't read the balance, the key still counts as valid). |
| Plivo | Auth ID, token and account type. |
| Meta (WhatsApp) | The access token and Phone number ID: the number, verified name and quality rating. |
| Twilio · Infobip (WhatsApp) | The account and key. |
| 360dialog · Custom HTTP | No no-send check; send a test message. |
- Test message sends a real message to a number with the saved settings (at most 5 in 10 minutes). It ends with a short code, because some providers won't send the same text to the same number twice in a short time.
- “Accepted” means the provider took the message; the delivery report is in the provider's panel.
- Verify connection can be run at most 10 times in 10 minutes.
Common errors
| Error shown | Meaning | What to do |
|---|---|---|
| Netgsm code 30 | Authentication failed | Is the username your subscriber number (850…), is the password the API sub-user's, is API access on? If IP restriction is on, add SemAgent's IPs. |
| Netgsm code 40 | The sender ID isn't on the account | Type the approved sender ID exactly. |
| İleti Merkezi 401 | Authentication failed | Is “allow API use” on, was the hash entered exactly as shown, is the IP allowed? |
| İleti Merkezi 450 · 460 | The sender ID can't be used or breaks the rules | An approved sender ID, up to 11 characters, no Turkish letters. |
| Verimor 401 | Password or allowed IP | Check the API password and allowed IPs in SMS Ayarlarım. |
| Verimor INSUFFICIENT_CREDITS | No balance | Buy a package. |
| Twilio #21408 | The country is off | Enable it in Messaging › Settings › Geo Permissions. |
| Vonage 29 | Demo account | Add funds. |
| Infobip REJECTED | The message was refused (e.g. balance, sender) | See the reason in the error text. |
| Meta #190 | The token is invalid or expired | Generate a permanent system user token. |
| Meta #131042 | Payment method problem | Add a payment method to the WhatsApp account. |
| Meta #132000 · #132001 | The template doesn't match or doesn't exist | The template needs exactly one variable; its name and language code must match the ones here, and it must be approved. |
| 360dialog 401 | The API key was regenerated | Enter the new key. |
Security and limits
- Passwords and keys are stored encrypted and never sent back to the panel; leave a field empty to keep the saved value. They don't appear in error texts either.
- At most 60 alert texts and 60 WhatsApp template messages go out per hour per account, so a loop can't drain your credit.
- The alert is short: who is waiting, why, and the conversation link. Texts sent to Turkish numbers through an international provider carry no link.
- Team alerts are informational messages; SemAgent sends them with Turkey's İYS consent filter off. Don't use this channel for campaigns or marketing; the sending business is responsible for the classification.
- Verimor, and Netgsm / İleti Merkezi accounts with IP restriction on, need SemAgent's outbound IP addresses; ask our support team for them.
SemAgent