Send SMS notifications to customers: connect your SMS provider, choose from 14 message types, write the text, send automatically or by hand, and check delivery.
Where to find it: Settings → Customer Notifs → SMS — Open in OTO ↗
SMS is the channel nobody has to install, nobody has to be logged into, and everybody reads. For a delivery message that has to arrive within the minute, it is still the most reliable thing available.
SMS is configured at Settings → Customer Notifs → SMS, across three tabs: SMS Settings, SMS Providers and Connected SMS Providers.Settings begin with a brand, because a brand is what a customer sees as the sender. Then a provider and a Status — the product’s own words: “Turn SMS notifications ON or OFF for this brand.” Beneath that sits every message type as a card, each with a description of exactly when it fires, an edit pencil and its own switch.
Fig. 1 — A phone mock-up on the right renders the message as it will arrive, sender name and all — so the thing being edited is the thing the customer gets.
Each carries a category, a plain-language name and the trigger that fires it.
Category
Message
Triggered when
Shipment Tracking
Shipment in Transit
the shipment is moving to the delivery address.
Delayed Dispatch
shipment dispatch is delayed beyond the expected time.
Delivery Updates
Order Confirmation
the order is successfully confirmed.
Delivery Attempt Failed
the courier couldn’t complete the delivery.
Delivery Rescheduled
after a failed delivery, to request a new delivery time.
Address Verification
Verify Delivery Address
the address needs confirmation before delivery.
Delivery Slot Notifications
Delivery Slot Confirmation
a shipment is created, to schedule a slot.
Delivery OTP
Delivery OTP Code
a one-time password is required to complete delivery.
Click & Collect
Click & Collect Updates
an order is prepared for in-store pickup.
Customers Feedback
Rate Your Delivery Experience
after successful delivery, to collect feedback.
Returns
Return Request Created
the receiver initiates a return request.
Return Request Approved
the customer’s return request is accepted.
Return Request Rejected
the customer’s return request is declined.
Manual Notifications
Manual SMS
a person sends one, as a custom message.
Fig. 2 — Every card says when it fires. Switching one off is one tap, and it applies to this brand only.
Delayed Dispatch is the one to turn on firstMost of these tell a customer about something that has happened. Delayed Dispatch tells them about something that has not — the parcel that should have left and did not.That is the silence customers fill with a support ticket, and it is the only message here that can pre-empt a complaint rather than respond to one.
Fig. 3 — Two things decide what is sent: who it goes to, and what it says. A character counter tracks the SMS segment as you type.
This message will be sent to
A list of destination countries. The same message type can carry different text for different markets.
Message Body
The text, with merge fields in — order number, tracking link and the rest — and a live character counter against the 160-character SMS segment.
Per-country text is not a nicetyAn Arabic message and an English one of the same length do not cost the same to send: non-Latin characters use a shorter segment, so wording that fits in one message in English can silently become two or three in Arabic.Writing the text per destination — and watching the counter while you do — is how a notification programme stays predictable in cost as it crosses borders. It is also how the message ends up in the language the recipient actually reads.
Before going live, Send Test SMS delivers the real message to a number of your choosing.
The link is the messageAn SMS has one job: get the customer onto the page. Everything that matters — the status, the map, the form, your branding — lives there, where there is room for it and no per-character cost.Which is why a message type with no branded page behind it is a wasted send: it arrives as text that tells the customer something without letting them do anything about it.
OTO does not send the messages itself; it connects to your SMS provider. The SMS Providers tab is a catalogue of pre-integrated ones — “Easily integrate your preferred SMS provider to send order updates, delivery notifications, and more instantly.”
Fig. 4 — Regional carriers and global platforms side by side, each a Connect away.
The list runs well beyond the usual names: STC, Mobily, Zain, Unifonic and Unifonic Cloud, Msegat, Taqnyat, 4jawaly, Hi SMS, Bevatel, Mrasel, Mshastra, Gateway, iMissive, BabSMS, GoInfinito, TurkeySMS and Twilio, among others.Connecting one takes a Connection Name, a Sender Name — what appears as the sender on the customer’s phone — a Token from the provider, and a Status switch. Connected SMS Providers then lists what you have, each with its own switch and menu, so a provider can be disabled without being deleted.
Why the regional depth mattersA global platform will deliver an SMS to Riyadh, but sender-name registration, local delivery rates and per-message price are all better through a local carrier — and in some markets an unregistered sender name simply does not arrive.Having STC, Mobily, Zain, Taqnyat and the rest pre-integrated means that is a choice from a list rather than an integration project. Multiple providers can be connected at once.
Most of these fire on their own: a tracking SMS when the shipment moves, a failed-delivery SMS on a failed attempt, a feedback SMS after delivery. Order Confirmation can be targeted rather than universal — sent by city or by order status, so the confirmation step applies where cash orders actually go wrong rather than to everyone.For everything else there is Notify, on the Shipments screen: select an order, choose Send SMS, pick the type, send. It uses the same configured templates, so a manual send still looks like the rest of your communication. SMS is the only channel that can be sent to several orders at once this way.Click & Collect deserves a note of its own: the ready-for-collection message carries the collection point and, where you use one, the Delivery Confirmation Code the customer quotes at handover. See Order fulfillment.
Settings → Logs → Notification Logs carries SMS Logs and Email Logs. Each SMS row holds the OTO Order ID, Sender Name, Phone Number, the Message Text as it was actually sent, Message Time, Message Type, Provider, the provider’s raw Gateway Response and a Status.
Read the message text, not just the statusA Success status means the provider accepted the message, and the Gateway Response carries their own reference, segment count and cost. Both are useful.But the column worth scanning is Message Text, because it shows what the customer actually received — after every dynamic field was substituted. A template that looks right in the editor and wrong on the phone is only visible here.
Fig. 5 — One row per send, with the message as the customer received it and the provider’s own verdict beside it.
A failure is explicit and explained: a Failed chip, with the reason carried in the Gateway Response — a duplicate send, a rejected number, an unregistered sender name.
Two rows for one order is normalAn order that triggers both a tracking message and an address-verification message produces a row for each, at the same minute and against the same order ID. That is the system working, not a duplicate.What is worth investigating is the reverse — an order with fewer rows than the configured message types would predict.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OTO Docs","description":"Product documentation for OTO, the ecommerce operations platform and shipping gateway for merchants in Saudi Arabia, the UAE and Türkiye.","colors":{"primary":"#506EFE","light":"#3D5FFF","dark":"#506EFE"},"logo":{"light":"https://mintcdn.com/oto/50MvmFcOsjmCy_H4/images/docs-logo.png?fit=max\u0026auto=format\u0026n=50MvmFcOsjmCy_H4\u0026q=85\u0026s=e77cede9643d5290bd5ff9ef3cd62084","dark":"https://mintcdn.com/oto/CC-n0HhbZXZkyIOY/images/docs-logo-dark.png?fit=max\u0026auto=format\u0026n=CC-n0HhbZXZkyIOY\u0026q=85\u0026s=0eaa761eda10edc1248ec73a7a464915"},"favicon":{"light":"https://mintcdn.com/oto/jqSnxa8fmU8MbKy9/images/oto-logo-51232.png?fit=max\u0026auto=format\u0026n=jqSnxa8fmU8MbKy9\u0026q=85\u0026s=40c563a4988902b756905551f7dfa08e","dark":"https://mintcdn.com/oto/jqSnxa8fmU8MbKy9/images/oto-logo-51232.png?fit=max\u0026auto=format\u0026n=jqSnxa8fmU8MbKy9\u0026q=85\u0026s=40c563a4988902b756905551f7dfa08e"},"background":{"color":{"light":"#F5F7F9","dark":"#111111"}},"navbar":{"links":[{"href":"https://tryoto.com","label":"Home"},{"href":"https://support.tryoto.com","label":"Help center"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.tryoto.com"}},"seo":{"organization":{"id":"https://tryoto.com/#organization","name":"OTO","url":"https://tryoto.com","logo":"https://docs.tryoto.com/images/oto-logo-51232.png","sameAs":["https://www.linkedin.com/company/tryotocom","https://x.com/tryotocom","https://www.instagram.com/tryotocom","https://www.facebook.com/tryotocom","https://www.youtube.com/@tryotocom"]}},"fonts":{"family":"Ping ARLT Regular","source":"https://storage.googleapis.com/tryoto-public/public/assets/fonts/PingARLT-Regular.woff2","format":"woff2"},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","href":""},{"language":"ar","navbar":{"links":[{"href":"https://tryoto.com","label":"الرئيسية"},{"href":"https://support.tryoto.com/ar","label":"مركز المساعدة"}],"primary":{"type":"button","label":"لوحة التحكم","href":"https://app.tryoto.com"}},"href":"ar"},{"language":"tr","navbar":{"links":[{"href":"https://tryoto.com","label":"Anasayfa"},{"href":"https://support.tryoto.com/tr","label":"Yardım Merkezi"}],"primary":{"type":"button","label":"Gösterge Paneli","href":"https://app.tryoto.com"}},"href":"tr"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"oto","hasAudioNarration":false,"actualSubdomain":"oto","customDomains":["docs.tryoto.com"],"gitSource":{"type":"github","owner":"otoglobal","repo":"oto-docs","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","_id":"6ad8ce8fad82cbcc460c882d"},"chroma":{"latestBuiltDeploymentHistoryId":"6addbb84b128bc39b5e5b942","collectionId":"d72dffa9-51ec-43cf-8cd6-cc0c06f5df60","liveDeploymentHistoryId":"6addbb84b128bc39b5e5b942","schemaVersion":"v3"},"feedback":{"thumbs":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6addbb84b128bc39b5e5b942","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"ar","tag":"الأنظمة","count":43},{"language":"en","tag":"Modules","count":43},{"language":"tr","tag":"Modüller","count":43},{"language":"ar","tag":"عمليات الربط","count":8},{"language":"en","tag":"Integrations","count":8},{"language":"tr","tag":"Entegrasyonlar","count":8},{"language":"ar","tag":"المطورون","count":6},{"language":"ar","tag":"البدء","count":6},{"language":"ar","tag":"إشعارات العملاء","count":6},{"language":"ar","tag":"إدارة المخزون","count":6},{"language":"ar","tag":"OMS متعدد القنوات","count":6},{"language":"en","tag":"Developers","count":6},{"language":"en","tag":"Get started","count":6},{"language":"en","tag":"Customer Notification","count":6},{"language":"en","tag":"Inventory Management","count":6},{"language":"en","tag":"Omnichannel OMS","count":6},{"language":"tr","tag":"Geliştiriciler","count":6},{"language":"tr","tag":"Başlarken","count":6},{"language":"tr","tag":"Müşteri Bildirimleri","count":6},{"language":"tr","tag":"Envanter Yönetimi","count":6},{"language":"tr","tag":"Omnichannel OMS","count":6},{"language":"ar","tag":"OTO FLEX","count":5},{"language":"ar","tag":"إدارة الشحن","count":5},{"language":"ar","tag":"إدارة المستودعات","count":5},{"language":"en","tag":"OTO FLEX","count":5},{"language":"en","tag":"Shipping Management","count":5},{"language":"en","tag":"Warehouse Management","count":5},{"language":"tr","tag":"OTO FLEX","count":5},{"language":"tr","tag":"Kargo Yönetimi","count":5},{"language":"tr","tag":"Depo Yönetimi","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"rtl.css","content":":is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #navbar button.lg\\:hidden>div+div,:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) :is(#content-area, #page-title, #header, #table-of-contents, #sidebar-content, #mobile-nav, #pagination, #footer),:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) [role=menu]{direction:rtl;text-align:right}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area ul{padding-left:0;padding-right:0}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area ul>li{padding-left:0;padding-right:2rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area ul>li::before{left:auto;right:.5rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area blockquote{border-left:0;border-right:.25rem solid currentColor;padding-left:0;padding-right:1em}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area :is(table, th, td){text-align:right}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area :is(pre, code, .code-block, .code-group, .frame svg, [data-badge]){direction:ltr;unicode-bidi:isolate;text-align:left}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #mobile-nav #localization-select-trigger svg,:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #page-context-menu.ml-auto,:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #pagination [data-component-part=pagination-next]{margin-left:0;margin-right:auto}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #page-context-menu-button{border-radius:0 var(--radius-xl, 0.75rem) var(--radius-xl, 0.75rem) 0;border-left-width:0;border-right-width:1px}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #page-context-menu-button+button{border-radius:var(--radius-xl, 0.75rem) 0 0 var(--radius-xl, 0.75rem)}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #navbar button.lg\\:hidden>div+div svg,:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) [role=menuitem] .font-medium>svg{scale:-1 1}@media (min-width:1024px){:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]):has(#page-context-menu button[aria-expanded=true]) [role=menu][data-align=end]{translate:calc(100% - var(--anchor-width, 0px)) 0;transform-origin:0 -4px}}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area em{unicode-bidi:plaintext}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area :is(h1, h2, h3, h4, h5, h6)>.absolute>a{display:none}@media (min-width:1024px){:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area :is(h1, h2, h3, h4, h5, h6)>.absolute>a{display:flex;margin-left:0;translate:2.5rem 0}}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #sidebar-content>div{padding-right:0;padding-left:2rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) :is(#sidebar-content, #mobile-nav) .sidebar-group-header{padding-left:0;padding-right:1rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) :is(#sidebar-content, #mobile-nav) :is(a, button)[style*=padding-left]{padding-left:.75rem!important;text-align:right}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) :is(#sidebar-content, #mobile-nav) :is(a, button):is([style*=\"padding-left:1rem\"], [style*=\"padding-left: 1rem\"]){padding-right:1rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) :is(#sidebar-content, #mobile-nav) :is(a, button):is([style*=\"padding-left:1.75rem\"], [style*=\"padding-left: 1.75rem\"]){padding-right:1.75rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) :is(#sidebar-content, #mobile-nav) :is(a, button):is([style*=\"padding-left:2.5rem\"], [style*=\"padding-left: 2.5rem\"]){padding-right:2.5rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) :is(#sidebar-content, #mobile-nav) button[aria-expanded]:not([aria-haspopup]) svg{margin-right:0;margin-left:-.125rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) :is(#sidebar-content, #mobile-nav) button[aria-expanded=false]:not([aria-haspopup]) svg{scale:-1 1}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #table-of-contents a{padding-left:0;padding-right:calc(var(--toc-padding-left, 0rem) + var(--toc-focus-padding, 0rem))}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #pagination [data-component-part=pagination-prev] svg{rotate:180deg}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #pagination [data-component-part=pagination-next] svg{rotate:none}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) [role=dialog]:has(#topbar-cta-button){direction:rtl;text-align:right}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) [role=dialog]:has(#topbar-cta-button)>button{right:auto;left:.375rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) [role=dialog]:has(#topbar-cta-button) li:first-child>a{padding-left:30px;padding-right:.75rem}@media (min-width:1024px){:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #navbar{direction:rtl}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #topbar-cta-button svg{scale:-1 1}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) div:has(>#sidebar){flex-direction:row-reverse}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-container>div:has(>#content-area){flex-direction:row}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #content-area{padding-left:.25rem;padding-right:5.7rem;margin-left:0;margin-right:-3rem}:is(html[data-current-path=\"/ar\"], html[data-current-path^=\"/ar/\"]) #table-of-contents-layout{padding-left:0;padding-right:2.5rem}}"}],"page":{"pagePath":"modules/customer-notification/sms","slug":"/modules/customer-notification/sms","pageMetadata":{"title":"SMS notifications","sidebarTitle":"SMS","description":"Send SMS notifications to customers: connect your SMS provider, choose from 14 message types, write the text, send automatically or by hand, and check delivery.","href":"/modules/customer-notification/sms"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Send SMS notifications to customers: connect your SMS provider, choose from 14 message types, write the text, send automatically or by hand, and check delivery.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,em:`em`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Frame,Heading,Info,Note,OptimizedImage,Table,Tip}=_components;if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Where to find it:`}),` Settings → Customer Notifs → SMS — `,_jsx(_components.a,{href:`https://app.tryoto.com/sms-setup`,children:`Open in OTO ↗`})]})}),`\n`,_jsx(_components.p,{children:`SMS is the channel nobody has to install, nobody has to be logged into, and everybody reads. For a delivery message that has to arrive within the minute, it is still the most reliable thing available.`}),`\n`,_jsx(Heading,{level:`2`,id:`one-screen-one-brand-at-a-time`,children:`One screen, one brand at a time`}),`\n`,_jsxs(_components.p,{children:[`SMS is configured at `,_jsx(_components.strong,{children:`Settings → Customer Notifs → SMS`}),`, across three tabs: `,_jsx(_components.strong,{children:`SMS Settings`}),`, `,_jsx(_components.strong,{children:`SMS Providers`}),` and `,_jsx(_components.strong,{children:`Connected SMS Providers`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Settings begin with a brand, because a brand is what a customer sees as the sender. Then a `,_jsx(_components.strong,{children:`provider`}),` and a `,_jsx(_components.strong,{children:`Status`}),` — the product’s own words: `,_jsx(_components.em,{children:`“Turn SMS notifications ON or OFF for this brand.”`}),` Beneath that sits every message type as a card, each with a description of exactly when it fires, an `,_jsx(_components.strong,{children:`edit`}),` pencil and its own switch.`]}),`\n`,_jsx(Frame,{caption:`Fig. 1 — A phone mock-up on the right renders the message as it will arrive, sender name and all — so the thing being edited is the thing the customer gets.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/cn-8-sms.png?fit=max\u0026auto=format\u0026n=YkJay8Y-1RDv8ciw\u0026q=85\u0026s=3a0990aaab0d18265fd4e0249c36d051`,alt:`The SMS Settings screen`,\"data-og-width\":`1140`,width:`1140`,\"data-og-height\":`465`,height:`465`,\"data-path\":`images/cn-8-sms.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/cn-8-sms.png?w=280\u0026fit=max\u0026auto=format\u0026n=YkJay8Y-1RDv8ciw\u0026q=85\u0026s=b0938793300493d8425b334170bc7c7a 280w, https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/cn-8-sms.png?w=560\u0026fit=max\u0026auto=format\u0026n=YkJay8Y-1RDv8ciw\u0026q=85\u0026s=9541675d491474155aa7ed0d145e702a 560w, https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/cn-8-sms.png?w=840\u0026fit=max\u0026auto=format\u0026n=YkJay8Y-1RDv8ciw\u0026q=85\u0026s=08de0da38af6bc8debf5bcce5e6f7e4f 840w, https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/cn-8-sms.png?w=1100\u0026fit=max\u0026auto=format\u0026n=YkJay8Y-1RDv8ciw\u0026q=85\u0026s=b4090a190b53340c8a9c2534d9a99823 1100w, https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/cn-8-sms.png?w=1650\u0026fit=max\u0026auto=format\u0026n=YkJay8Y-1RDv8ciw\u0026q=85\u0026s=ec484e71f5ec6a64372fed23242522fa 1650w, https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/cn-8-sms.png?w=2500\u0026fit=max\u0026auto=format\u0026n=YkJay8Y-1RDv8ciw\u0026q=85\u0026s=5a8062f51bdc948e5ead1e889b0a8f4d 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`fourteen-message-types`,children:`Fourteen message types`}),`\n`,_jsx(_components.p,{children:`Each carries a category, a plain-language name and the trigger that fires it.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Category`}),_jsx(_components.th,{children:`Message`}),_jsx(_components.th,{children:`Triggered when`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Shipment Tracking`})}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Shipment in Transit`})}),_jsx(_components.td,{children:`the shipment is moving to the delivery address.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Delayed Dispatch`})}),_jsx(_components.td,{children:`shipment dispatch is delayed beyond the expected time.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Delivery Updates`})}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Order Confirmation`})}),_jsx(_components.td,{children:`the order is successfully confirmed.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Delivery Attempt Failed`})}),_jsx(_components.td,{children:`the courier couldn’t complete the delivery.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Delivery Rescheduled`})}),_jsx(_components.td,{children:`after a failed delivery, to request a new delivery time.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Address Verification`})}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Verify Delivery Address`})}),_jsx(_components.td,{children:`the address needs confirmation before delivery.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Delivery Slot Notifications`})}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Delivery Slot Confirmation`})}),_jsx(_components.td,{children:`a shipment is created, to schedule a slot.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Delivery OTP`})}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Delivery OTP Code`})}),_jsx(_components.td,{children:`a one-time password is required to complete delivery.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Click \u0026 Collect`})}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Click \u0026 Collect Updates`})}),_jsx(_components.td,{children:`an order is prepared for in-store pickup.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Customers Feedback`})}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Rate Your Delivery Experience`})}),_jsx(_components.td,{children:`after successful delivery, to collect feedback.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Returns`})}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Return Request Created`})}),_jsx(_components.td,{children:`the receiver initiates a return request.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Return Request Approved`})}),_jsx(_components.td,{children:`the customer’s return request is accepted.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Return Request Rejected`})}),_jsx(_components.td,{children:`the customer’s return request is declined.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Manual Notifications`})}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Manual SMS`})}),_jsx(_components.td,{children:`a person sends one, as a custom message.`})]})]})]}),`\n`,_jsx(Frame,{caption:`Fig. 2 — Every card says when it fires. Switching one off is one tap, and it applies to this brand only.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-9-types.png?fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=1ecb64d6c19b474e9ca01231d5e0135c`,alt:`Message types, each with its trigger`,\"data-og-width\":`760`,width:`760`,\"data-og-height\":`492`,height:`492`,\"data-path\":`images/cn-9-types.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-9-types.png?w=280\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=84aaa8c2b31441a2db609340712ab3ca 280w, https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-9-types.png?w=560\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=1e9b460a1769470fdb6231e520142049 560w, https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-9-types.png?w=840\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=bfaca1dcee7eced72322a9a6ad544a4f 840w, https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-9-types.png?w=1100\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=bdf3dfe212308ad8156598f31c2e9585 1100w, https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-9-types.png?w=1650\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=dad1ceff8877f72e6246bf4993b7e512 1650w, https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-9-types.png?w=2500\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=fae3b2607412583e8fb82cff976a2337 2500w`})}),`\n`,_jsxs(Tip,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Delayed Dispatch is the one to turn on first`})}),_jsxs(_components.p,{children:[`Most of these tell a customer about something that has happened. `,_jsx(_components.strong,{children:`Delayed Dispatch`}),` tells them about something that has `,_jsx(_components.em,{children:`not`}),` — the parcel that should have left and did not.`]}),_jsx(_components.p,{children:`That is the silence customers fill with a support ticket, and it is the only message here that can pre-empt a complaint rather than respond to one.`})]}),`\n`,_jsx(Heading,{level:`2`,id:`writing-the-message`,children:`Writing the message`}),`\n`,_jsx(Frame,{caption:`Fig. 3 — Two things decide what is sent: who it goes to, and what it says. A character counter tracks the SMS segment as you type.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-10-edit.png?fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=f425bcd5e233dda3a167aa4edca524de`,alt:`Editing a message`,\"data-og-width\":`1000`,width:`1000`,\"data-og-height\":`437`,height:`437`,\"data-path\":`images/cn-10-edit.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-10-edit.png?w=280\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=49000ba3791477b344d546b09760005c 280w, https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-10-edit.png?w=560\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=6c88ae2bd0b10526260f4c77234ff1ad 560w, https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-10-edit.png?w=840\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=9d63b128c66b9fbae291b842c22b69a9 840w, https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-10-edit.png?w=1100\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=8d15db5e3354660e72d7aa5003214d0f 1100w, https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-10-edit.png?w=1650\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=642cc24dc9ea661eec83317f840dbfa3 1650w, https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-10-edit.png?w=2500\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=a98079cf44b672177ce4eded8b864f66 2500w`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{}),_jsx(_components.th,{})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(`strong`,{children:`This message will be sent to`})}),_jsxs(_components.td,{children:[`A list of `,_jsx(`strong`,{children:`destination countries`}),`. The same message type can carry different text for different markets.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(`strong`,{children:`Message Body`})}),_jsxs(_components.td,{children:[`The text, with merge fields in `,_jsx(`code`,{children:`{{ }}`}),` — order number, tracking link and the rest — and a live `,_jsx(`strong`,{children:`character counter against the 160-character SMS segment`}),`.`]})]})]})]}),`\n`,_jsxs(Tip,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Per-country text is not a nicety`})}),_jsx(_components.p,{children:`An Arabic message and an English one of the same length do not cost the same to send: non-Latin characters use a shorter segment, so wording that fits in one message in English can silently become two or three in Arabic.`}),_jsx(_components.p,{children:`Writing the text per destination — and watching the counter while you do — is how a notification programme stays predictable in cost as it crosses borders. It is also how the message ends up in the language the recipient actually reads.`})]}),`\n`,_jsxs(_components.p,{children:[`Before going live, `,_jsx(_components.strong,{children:`Send Test SMS`}),` delivers the real message to a number of your choosing.`]}),`\n`,_jsxs(Note,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`The link is the message`})}),_jsx(_components.p,{children:`An SMS has one job: get the customer onto the page. Everything that matters — the status, the map, the form, your branding — lives there, where there is room for it and no per-character cost.`}),_jsxs(_components.p,{children:[`Which is why a message type with no `,_jsx(_components.a,{href:`/modules/customer-notification/branded-pages`,children:`branded page`}),` behind it is a wasted send: it arrives as text that tells the customer something without letting them do anything about it.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`providers`,children:`Providers`}),`\n`,_jsxs(_components.p,{children:[`OTO does not send the messages itself; it connects to your SMS provider. The `,_jsx(_components.strong,{children:`SMS Providers`}),` tab is a catalogue of pre-integrated ones — `,_jsx(_components.em,{children:`“Easily integrate your preferred SMS provider to send order updates, delivery notifications, and more instantly.”`})]}),`\n`,_jsx(Frame,{caption:`Fig. 4 — Regional carriers and global platforms side by side, each a Connect away.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/cn-11-providers.png?fit=max\u0026auto=format\u0026n=YkJay8Y-1RDv8ciw\u0026q=85\u0026s=e9fbde5e0d5e05af78a9c87f3d1ce7e0`,alt:`The SMS provider catalogue`,\"data-og-width\":`1140`,width:`1140`,\"data-og-height\":`417`,height:`417`,\"data-path\":`images/cn-11-providers.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/cn-11-providers.png?w=280\u0026fit=max\u0026auto=format\u0026n=YkJay8Y-1RDv8ciw\u0026q=85\u0026s=bad3f958fab27cbaf1ac6f471079e309 280w, https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/cn-11-providers.png?w=560\u0026fit=max\u0026auto=format\u0026n=YkJay8Y-1RDv8ciw\u0026q=85\u0026s=6ce60b3dba8fd6338eb8e01f29c6c688 560w, https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/cn-11-providers.png?w=840\u0026fit=max\u0026auto=format\u0026n=YkJay8Y-1RDv8ciw\u0026q=85\u0026s=55d682e1a0113a47a3c71147dd12096c 840w, https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/cn-11-providers.png?w=1100\u0026fit=max\u0026auto=format\u0026n=YkJay8Y-1RDv8ciw\u0026q=85\u0026s=de28fd9ec0c05a13a26521db99239215 1100w, https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/cn-11-providers.png?w=1650\u0026fit=max\u0026auto=format\u0026n=YkJay8Y-1RDv8ciw\u0026q=85\u0026s=effb278ed15b2b16c082637cf15ce642 1650w, https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/cn-11-providers.png?w=2500\u0026fit=max\u0026auto=format\u0026n=YkJay8Y-1RDv8ciw\u0026q=85\u0026s=95d2486b548925f37950394b1177f333 2500w`})}),`\n`,_jsxs(_components.p,{children:[`The list runs well beyond the usual names: `,_jsx(_components.strong,{children:`STC`}),`, `,_jsx(_components.strong,{children:`Mobily`}),`, `,_jsx(_components.strong,{children:`Zain`}),`, `,_jsx(_components.strong,{children:`Unifonic`}),` and `,_jsx(_components.strong,{children:`Unifonic Cloud`}),`, `,_jsx(_components.strong,{children:`Msegat`}),`, `,_jsx(_components.strong,{children:`Taqnyat`}),`, `,_jsx(_components.strong,{children:`4jawaly`}),`, `,_jsx(_components.strong,{children:`Hi SMS`}),`, `,_jsx(_components.strong,{children:`Bevatel`}),`, `,_jsx(_components.strong,{children:`Mrasel`}),`, `,_jsx(_components.strong,{children:`Mshastra`}),`, `,_jsx(_components.strong,{children:`Gateway`}),`, `,_jsx(_components.strong,{children:`iMissive`}),`, `,_jsx(_components.strong,{children:`BabSMS`}),`, `,_jsx(_components.strong,{children:`GoInfinito`}),`, `,_jsx(_components.strong,{children:`TurkeySMS`}),` and `,_jsx(_components.strong,{children:`Twilio`}),`, among others.`]}),`\n`,_jsxs(_components.p,{children:[`Connecting one takes a `,_jsx(_components.strong,{children:`Connection Name`}),`, a `,_jsx(_components.strong,{children:`Sender Name`}),` — what appears as the sender on the customer’s phone — a `,_jsx(_components.strong,{children:`Token`}),` from the provider, and a `,_jsx(_components.strong,{children:`Status`}),` switch. `,_jsx(_components.strong,{children:`Connected SMS Providers`}),` then lists what you have, each with its own switch and menu, so a provider can be disabled without being deleted.`]}),`\n`,_jsxs(Tip,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Why the regional depth matters`})}),_jsx(_components.p,{children:`A global platform will deliver an SMS to Riyadh, but sender-name registration, local delivery rates and per-message price are all better through a local carrier — and in some markets an unregistered sender name simply does not arrive.`}),_jsx(_components.p,{children:`Having STC, Mobily, Zain, Taqnyat and the rest pre-integrated means that is a choice from a list rather than an integration project. Multiple providers can be connected at once.`})]}),`\n`,_jsx(Heading,{level:`2`,id:`automated-and-manual`,children:`Automated and manual`}),`\n`,_jsxs(_components.p,{children:[`Most of these fire on their own: a tracking SMS when the shipment moves, a failed-delivery SMS on a failed attempt, a feedback SMS after delivery. `,_jsx(_components.strong,{children:`Order Confirmation`}),` can be targeted rather than universal — sent by city or by order status, so the confirmation step applies where cash orders actually go wrong rather than to everyone.`]}),`\n`,_jsxs(_components.p,{children:[`For everything else there is `,_jsx(_components.strong,{children:`Notify`}),`, on the Shipments screen: select an order, choose `,_jsx(_components.strong,{children:`Send SMS`}),`, pick the type, send. It uses the same configured templates, so a manual send still looks like the rest of your communication. SMS is the only channel that can be sent to several orders at once this way.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Click \u0026 Collect`}),` deserves a note of its own: the ready-for-collection message carries the collection point and, where you use one, the `,_jsx(_components.strong,{children:`Delivery Confirmation Code`}),` the customer quotes at handover. See `,_jsx(_components.a,{href:`/modules/omnichannel-oms/order-fulfillment`,children:`Order fulfillment`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`did-it-arrive`,children:`Did it arrive?`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Settings → Logs → Notification Logs`}),` carries `,_jsx(_components.strong,{children:`SMS Logs`}),` and `,_jsx(_components.strong,{children:`Email Logs`}),`. Each SMS row holds the `,_jsx(_components.strong,{children:`OTO Order ID`}),`, `,_jsx(_components.strong,{children:`Sender Name`}),`, `,_jsx(_components.strong,{children:`Phone Number`}),`, the `,_jsx(_components.strong,{children:`Message Text`}),` as it was actually sent, `,_jsx(_components.strong,{children:`Message Time`}),`, `,_jsx(_components.strong,{children:`Message Type`}),`, `,_jsx(_components.strong,{children:`Provider`}),`, the provider’s raw `,_jsx(_components.strong,{children:`Gateway Response`}),` and a `,_jsx(_components.strong,{children:`Status`}),`.`]}),`\n`,_jsxs(Tip,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Read the message text, not just the status`})}),_jsxs(_components.p,{children:[`A `,_jsx(_components.em,{children:`Success`}),` status means the provider accepted the message, and the Gateway Response carries their own reference, segment count and cost. Both are useful.`]}),_jsxs(_components.p,{children:[`But the column worth scanning is `,_jsx(_components.strong,{children:`Message Text`}),`, because it shows what the customer actually received — after every dynamic field was substituted. A template that looks right in the editor and wrong on the phone is only visible here.`]})]}),`\n`,_jsx(Frame,{caption:`Fig. 5 — One row per send, with the message as the customer received it and the provider’s own verdict beside it.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-16-sms-logs.png?fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=dd1e07e9486ae751be7171dfc35b4823`,alt:`Notification Logs on the SMS Logs tab`,\"data-og-width\":`1160`,width:`1160`,\"data-og-height\":`426`,height:`426`,\"data-path\":`images/cn-16-sms-logs.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-16-sms-logs.png?w=280\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=8fc22a8ec4f5d5f24e2efe67cb3e2916 280w, https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-16-sms-logs.png?w=560\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=af84ebe14d7246a851383d9d7de952c4 560w, https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-16-sms-logs.png?w=840\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=7155227d11d4f9c1bda09ed3b9f6fdfa 840w, https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-16-sms-logs.png?w=1100\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=a750a3aa61a26b90cefaa42f7b84e736 1100w, https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-16-sms-logs.png?w=1650\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=7068eadebcdac57a0007462e22b17710 1650w, https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/cn-16-sms-logs.png?w=2500\u0026fit=max\u0026auto=format\u0026n=ft-bRlLvOnJkbVoC\u0026q=85\u0026s=11d8bacf4e47dc0fdb56be3d7f8d1a5e 2500w`})}),`\n`,_jsxs(_components.p,{children:[`A failure is explicit and explained: a `,_jsx(_components.strong,{children:`Failed`}),` chip, with the reason carried in the Gateway Response — a duplicate send, a rejected number, an unregistered sender name.`]}),`\n`,_jsxs(Note,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Two rows for one order is normal`})}),_jsx(_components.p,{children:`An order that triggers both a tracking message and an address-verification message produces a row for each, at the same minute and against the same order ID. That is the system working, not a duplicate.`}),_jsxs(_components.p,{children:[`What is worth investigating is the reverse — an order with `,_jsx(_components.em,{children:`fewer`}),` rows than the configured message types would predict.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/modules/customer-notification/branded-pages`,children:`Branded pages`}),` — what the link opens.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/modules/customer-notification/whatsapp`,children:`WhatsApp`}),` — the same messages on a richer channel.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/modules/return-management/overview`,children:`Return Management`}),` — the three return messages.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"SMS notifications","sidebarTitle":"SMS","description":"Send SMS notifications to customers: connect your SMS provider, choose from 14 message types, write the text, send automatically or by hand, and check delivery.","href":"/modules/customer-notification/sms"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[12184,12216,""]]},"mdxExtracts":{"tableOfContents":[{"title":"One screen, one brand at a time","slug":"one-screen-one-brand-at-a-time","depth":2,"children":[]},{"title":"Fourteen message types","slug":"fourteen-message-types","depth":2,"children":[]},{"title":"Writing the message","slug":"writing-the-message","depth":2,"children":[]},{"title":"Providers","slug":"providers","depth":2,"children":[]},{"title":"Automated and manual","slug":"automated-and-manual","depth":2,"children":[]},{"title":"Did it arrive?","slug":"did-it-arrive","depth":2,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/oto/5e4908087dc78be6/adsping.js"],"subdomain":"oto","siteName":"OTO Docs","title":"SMS notifications - OTO Docs","relatedPagesConfig":{"enabled":true,"limit":3,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/modules/customer-notification/sms","matchLevel":0},"ar":{"href":"/ar/modules/customer-notification/sms","matchLevel":1},"tr":{"href":"/tr/modules/customer-notification/sms","matchLevel":1}}},"lastModified":"2026-10-22T15:40:13.897Z","originalFileLocation":"modules/customer-notification/sms.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Send SMS notifications to customers: connect your SMS provider, choose from 14 message types, write the text, send automatically or by hand, and check delivery.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OTO Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"SMS notifications - OTO Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Send SMS notifications to customers: connect your SMS provider, choose from 14 message types, write the text, send automatically or by hand, and check delivery.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OTO Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.tryoto.com/modules/customer-notification/sms\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://oto.mintlify.app/_mintlify/api/og/v2?division=Customer+Notification\u0026amp;title=SMS+notifications\u0026amp;description=Send+SMS+notifications+to+customers%3A+connect+your+SMS+provider%2C+choose+from+14+message+types%2C+write+the+text%2C+send+automatically+or+by+hand%2C+and+check+delivery.\u0026amp;theme=fb0540dacc0ff6c761581805\u0026amp;signature=d7a548937ccab364bdd6b8439d6a0cbdd2a48a21a77da85dc764213be1158a77\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"SMS notifications - OTO Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Send SMS notifications to customers: connect your SMS provider, choose from 14 message types, write the text, send automatically or by hand, and check delivery.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://oto.mintlify.app/_mintlify/api/og/v2?division=Customer+Notification\u0026amp;title=SMS+notifications\u0026amp;description=Send+SMS+notifications+to+customers%3A+connect+your+SMS+provider%2C+choose+from+14+message+types%2C+write+the+text%2C+send+automatically+or+by+hand%2C+and+check+delivery.\u0026amp;theme=fb0540dacc0ff6c761581805\u0026amp;signature=d7a548937ccab364bdd6b8439d6a0cbdd2a48a21a77da85dc764213be1158a77\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/oto/S_K-Ar2SQPcQI6e_/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OTO Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#506EFE\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.tryoto.com/modules/customer-notification/sms\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/modules/customer-notification/sms.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.tryoto.com/modules/customer-notification/sms\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://docs.tryoto.com/ar/modules/customer-notification/sms\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"tr\" href=\"https://docs.tryoto.com/tr/modules/customer-notification/sms\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.tryoto.com/modules/customer-notification/sms\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://tryoto.com/#organization\",\"name\":\"OTO\",\"url\":\"https://tryoto.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://docs.tryoto.com/images/oto-logo-51232.png\"},\"sameAs\":[\"https://www.linkedin.com/company/tryotocom\",\"https://x.com/tryotocom\",\"https://www.instagram.com/tryotocom\",\"https://www.facebook.com/tryotocom\",\"https://www.youtube.com/@tryotocom\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.tryoto.com#website\",\"name\":\"OTO Docs\",\"url\":\"https://docs.tryoto.com\",\"publisher\":{\"@id\":\"https://tryoto.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.tryoto.com/modules/customer-notification/sms#webpage\",\"url\":\"https://docs.tryoto.com/modules/customer-notification/sms\",\"name\":\"SMS notifications\",\"description\":\"Send SMS notifications to customers: connect your SMS provider, choose from 14 message types, write the text, send automatically or by hand, and check delivery.\",\"dateModified\":\"2026-10-22T15:40:13.897Z\",\"isPartOf\":{\"@id\":\"https://docs.tryoto.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.tryoto.com/modules/customer-notification/sms#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.tryoto.com/modules/customer-notification/sms#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Modules\",\"item\":\"https://docs.tryoto.com/modules/omnichannel-oms/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Customer Notification\",\"item\":\"https://docs.tryoto.com/modules/customer-notification/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SMS notifications\",\"item\":\"https://docs.tryoto.com/modules/customer-notification/sms\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.tryoto.com/modules/customer-notification/sms#article\",\"headline\":\"SMS notifications\",\"name\":\"SMS notifications\",\"description\":\"Send SMS notifications to customers: connect your SMS provider, choose from 14 message types, write the text, send automatically or by hand, and check delivery.\",\"url\":\"https://docs.tryoto.com/modules/customer-notification/sms\",\"mainEntityOfPage\":{\"@id\":\"https://docs.tryoto.com/modules/customer-notification/sms#webpage\"},\"dateModified\":\"2026-10-22T15:40:13.897Z\",\"publisher\":{\"@id\":\"https://tryoto.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.tryoto.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OTO Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OTO Docs","nav":{"global":null,"languages":[{"language":"en","pages":[{"group":"Get started","pages":[{"title":"Ecommerce operations platform and shipping gateway","sidebarTitle":"Home","href":""},{"title":"What is OTO","href":"/get-started/what-is-oto"},{"title":"Core concepts: orders, shipments, stock and hubs","sidebarTitle":"Core concepts","href":"/get-started/core-concepts"},{"title":"Platform architecture","href":"/get-started/architecture"},{"title":"Quick start: ship your first order with OTO","sidebarTitle":"Quick start","href":"/get-started/quickstart"},{"title":"Glossary of OTO terms","sidebarTitle":"Glossary","href":"/get-started/glossary"}]},{"group":"Modules","pages":[{"group":"Omnichannel OMS","pages":[{"title":"Omnichannel OMS","sidebarTitle":"Overview","href":"/modules/omnichannel-oms/overview"},{"title":"Order sync: how orders get into OTO","sidebarTitle":"Order Sync","href":"/modules/omnichannel-oms/order-sync"},{"title":"Order routing across warehouses and stores","sidebarTitle":"Order Routing","href":"/modules/omnichannel-oms/order-routing"},{"title":"Address and data correction","href":"/modules/omnichannel-oms/order-data-correction"},{"title":"Pre-fulfillment checks","href":"/modules/omnichannel-oms/prefulfillment"},{"title":"Order fulfillment in warehouses and stores","sidebarTitle":"Order Fulfillment","href":"/modules/omnichannel-oms/order-fulfillment"}]},{"group":"Sales Channels","pages":[{"title":"Sales Channels","sidebarTitle":"Overview","href":"/modules/sales-channels/overview"},{"title":"Connect and sync a sales channel","sidebarTitle":"Channel sync","href":"/modules/sales-channels/sync"},{"title":"Sync order status and tracking to your store","sidebarTitle":"Status and tracking updates","href":"/modules/sales-channels/updates"},{"title":"Checkout API for live shipping rates","sidebarTitle":"Checkout API","href":"/modules/sales-channels/checkout-api"}]},{"group":"Shipping Management","pages":[{"title":"Shipping Management","sidebarTitle":"Overview","href":"/modules/shipping-management/overview"},{"title":"Carrier integration and configuration","sidebarTitle":"Carrier Integration","href":"/modules/shipping-management/carrier-integration"},{"title":"Create shipments, print labels and track parcels","sidebarTitle":"Shipping \u0026 Tracking","href":"/modules/shipping-management/shipping-and-tracking"},{"title":"Shipping automation and carrier selection rules","sidebarTitle":"Shipping Automation","href":"/modules/shipping-management/shipping-automation"},{"title":"Shipping Invoices Reconciliation","href":"/modules/shipping-management/shipping-invoices-reconciliation"}]},{"group":"Return Management","pages":[{"title":"Return Management","sidebarTitle":"Overview","href":"/modules/return-management/overview"},{"title":"Return portal and customer return requests","sidebarTitle":"Customer returns","href":"/modules/return-management/customer-returns"},{"title":"Receiving and inspecting returns","sidebarTitle":"Returns receiving","href":"/modules/return-management/returns-receiving"},{"title":"Return automation rules","sidebarTitle":"Return automation","href":"/modules/return-management/return-automation"}]},{"group":"Hubs Management","pages":[{"title":"Hubs Management","sidebarTitle":"Overview","href":"/modules/hubs-management/overview"},{"title":"Add and configure warehouses and branches","sidebarTitle":"Hub configuration","href":"/modules/hubs-management/hubs-management"}]},{"group":"Customer Notification","pages":[{"title":"Customer Notification","sidebarTitle":"Overview","href":"/modules/customer-notification/overview"},{"title":"Branded tracking and confirmation pages","sidebarTitle":"Branded pages","description":"Customize the seven pages your customers open, from tracking and delivery slots to address verification and order confirmation, with your brand and ads.","href":"/modules/customer-notification/branded-pages"},{"title":"SMS notifications","sidebarTitle":"SMS","href":"/modules/customer-notification/sms"},{"title":"Email notifications","sidebarTitle":"Email","description":"Send order and delivery emails from your own domain: connect your mail server over SMTP, write the templates, and preview what the customer receives.","href":"/modules/customer-notification/email"},{"title":"WhatsApp notifications","sidebarTitle":"WhatsApp","href":"/modules/customer-notification/whatsapp"},{"title":"Custom notification workflows","sidebarTitle":"Custom workflows","href":"/modules/customer-notification/custom-workflows"}]},{"group":"Warehouse Management","pages":[{"title":"Warehouse Management","sidebarTitle":"Overview","href":"/modules/warehouse-management/overview"},{"title":"OTO PACK mobile app for warehouse staff","sidebarTitle":"The OTO PACK app","href":"/modules/warehouse-management/ops"},{"title":"Warehouse picking methods and waves","sidebarTitle":"Picking methods","href":"/modules/warehouse-management/picking-methods"},{"title":"Packing and dispatch","href":"/modules/warehouse-management/packing-dispatch"},{"title":"Inbound and putaway","href":"/modules/warehouse-management/inbound-putaway"}]},{"group":"Inventory Management","pages":[{"title":"Inventory Management","sidebarTitle":"Overview","href":"/modules/inventory-management/overview"},{"title":"Inventory tracking","href":"/modules/inventory-management/inventory-tracking"},{"title":"Inbound inventory","href":"/modules/inventory-management/inbound-inventory"},{"title":"Sync inventory to your sales channels","sidebarTitle":"Inventory sync","href":"/modules/inventory-management/inventory-sync"},{"title":"Product catalog and SKU configuration","sidebarTitle":"Product configuration","href":"/modules/inventory-management/product-configuration"},{"title":"Inventory counts in the OTO PACK app","sidebarTitle":"Inventory counts","href":"/modules/inventory-management/inventory-count"}]},{"group":"OTO FLEX","pages":[{"title":"OTO FLEX: delivery with your own drivers","sidebarTitle":"Overview","href":"/modules/oto-flex/overview"},{"title":"Driver and fleet management","sidebarTitle":"Fleet Management","href":"/modules/oto-flex/fleet-management"},{"title":"Delivery planning and driver assignment","sidebarTitle":"Planning","href":"/modules/oto-flex/planning"},{"title":"Driver pickup in OTO FLEX","sidebarTitle":"Pickup","href":"/modules/oto-flex/pickup"},{"title":"Last-mile delivery in OTO FLEX","sidebarTitle":"Delivery","href":"/modules/oto-flex/delivery"}]}]},{"group":"Integrations","pages":[{"title":"Integrations overview","href":"/integrations/overview"},{"title":"Sales channel integrations","sidebarTitle":"Sales channels","href":"/integrations/sales-channels"},{"title":"Marketplace integrations","sidebarTitle":"Marketplaces","href":"/integrations/marketplaces"},{"title":"ERP integrations","sidebarTitle":"ERP systems","href":"/integrations/erp-systems"},{"title":"POS integrations","sidebarTitle":"POS systems","href":"/integrations/pos-systems"},{"title":"Carrier integrations","sidebarTitle":"Carriers","href":"/integrations/carriers"},{"title":"SMS, email and WhatsApp providers","sidebarTitle":"Messaging providers","href":"/integrations/messaging-providers"},{"title":"Webhooks for real-time updates","sidebarTitle":"Webhooks","href":"/integrations/webhooks"}]},{"group":"Developers","pages":[{"title":"OTO API overview","sidebarTitle":"Developers overview","href":"/developers/overview"},{"title":"API authentication","sidebarTitle":"Authentication","href":"/developers/authentication"},{"title":"REST API reference","href":"/developers/rest-api-reference"},{"title":"Webhook events and payloads","sidebarTitle":"Webhook events","href":"/developers/webhook-events"},{"title":"OTO API Postman collection","sidebarTitle":"Postman collection","href":"/developers/postman-collection"},{"title":"API errors and rate limits","sidebarTitle":"Errors \u0026 rate limits","href":"/developers/errors-and-rate-limits"}]},{"group":"Platform","pages":[{"title":"Security \u0026 compliance","href":"/platform/security-and-compliance"},{"title":"Users, roles \u0026 permissions","href":"/platform/users-roles-and-permissions"},{"title":"Localization: languages, currency and time zones","sidebarTitle":"Localization","href":"/platform/localization"},{"title":"Collaboration \u0026 notifications","href":"/platform/collaboration-and-notifications"},{"title":"Platform announcements","sidebarTitle":"Announcements","href":"/platform/announcements"}]},{"group":"Pricing","pages":[{"title":"Plans, pricing and add-ons","sidebarTitle":"Plans \u0026 packaging","href":"/pricing/plans-and-packaging"}]}]},{"language":"ar","navbar":{"links":[{"href":"https://tryoto.com","label":"الرئيسية"},{"href":"https://support.tryoto.com/ar","label":"مركز المساعدة"}],"primary":{"type":"button","label":"لوحة التحكم","href":"https://app.tryoto.com"}},"pages":[{"title":"ar","href":"/ar/modules/customer-notification/sms"}]},{"language":"tr","navbar":{"links":[{"href":"https://tryoto.com","label":"Anasayfa"},{"href":"https://support.tryoto.com/tr","label":"Yardım Merkezi"}],"primary":{"type":"button","label":"Gösterge Paneli","href":"https://app.tryoto.com"}},"pages":[{"title":"tr","href":"/tr/modules/customer-notification/sms"}]}]},"title":"SMS notifications - OTO Docs","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-B0bJ23PC.js","DynamicMarkdown-UGQuxDKp.js","zoom-image-lightbox-B0E5HDf_.js","lightbox-handle-r17bVUz3.js"]}