{"id":101,"date":"2026-10-10T16:27:47","date_gmt":"2026-10-10T13:27:47","guid":{"rendered":"https:\/\/dukamaps.co.ke\/help\/?page_id=101"},"modified":"2026-10-10T20:33:29","modified_gmt":"2026-10-10T17:33:29","slug":"composing-and-sending-customer-sms","status":"publish","type":"page","link":"https:\/\/dukamaps.co.ke\/help\/composing-and-sending-customer-sms\/","title":{"rendered":"Composing and Sending Customer SMS"},"content":{"rendered":"\n<div class=\"embed-responsive embed-responsive-1by1\">\n  <iframe class=\"embed-responsive-item\" src=\"https:\/\/www.youtube.com\/embed\/uibJVAycarA\" allowfullscreen=\"\"><\/iframe>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Log in to Duka Maps, select your duka, then open <strong>SMS<\/strong> from the Admin Menu. Confirm the duka name before taking action. Each duka has separate SMS settings, credits and records.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Open <strong>Send SMS<\/strong>. You need <strong>Send SMS<\/strong> and <strong>Manage Customers<\/strong> permissions, a saved duka contact number and an active main subscription. Sending pauses when the main subscription expires, including when using your own provider.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use this page for staff-composed messages. Debt reminders use their defined wording and are sent from <strong>Customer Balances<\/strong>. Account-entry notifications are selected on Customer Debts &amp; Credits.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Follow the section for your sending account. The sender ID near the top of the page is the name customers see as the message sender.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Using the DukaMaps Account<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This account uses the <strong>DukaMaps<\/strong> sender ID and credits purchased through <strong>Buy SMS<\/strong>. SMS costs <strong>KSh 0.30 per unit<\/strong> and is purchased separately from the main subscription. Purchased credits never expire.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Only <strong>service notifications to individual customers<\/strong> are allowed on Send SMS. Staff-composed group messages and marketing messages require an activated own HostPinnacle account and approved sender ID.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Select the Customer and Message Purpose<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Find <strong>one customer<\/strong> through the shared customer search. Confirm their name and primary phone number. Alternative phone numbers are not included.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use <strong>Service notification<\/strong> for information about the customer&#8217;s service, order or account. For example: <strong>Your repaired phone is ready for collection.<\/strong> Marketing is not allowed through the DukaMaps account. Do not label a promotion as a service notification to bypass this restriction.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Message Body<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Enter only the body in plain text. Duka Maps adds the duka name, greeting and contact footer:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Example Duka<br>Hi Jane! Your repaired phone is ready for collection.<br>For Questions, Contact: 0712345678<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Do not repeat the header or footer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Keep the Complete Message Within Three SMS Units<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The complete personalised message must fit <strong>three SMS units<\/strong>, including the duka name, greeting and contact footer. Watch the live counter as you type; it warns or prevents further input when the limit is exceeded.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Changing the recipient can change the available body space because their first name is included in the greeting. Shorten the body if the new customer&#8217;s message exceeds the limit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use ordinary text or emojis to ensure that you message is delivered.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Preview and Confirm<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Click <strong>Preview messages and recipients<\/strong>. Review the customer, phone number, complete message, SMS-unit count and DukaMaps cost. If the customer is excluded, read the reason and correct the issue before trying again.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use <strong>Edit selection<\/strong> to change the customer or wording. A preview expires after <strong>10 minutes<\/strong>, so preview again if asked. Previewing alone does not send anything.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Click <strong>Confirm and queue messages<\/strong> after checking the preview. The message enters the queue; its DukaMaps credits are reserved while processing. Sending finalises the deduction. A failed or cancelled message releases its reservation; an Unknown outcome needs administrator verification before retrying.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The queue normally runs every minute during the sending window from <strong>8 am until before 9 pm Kenyan time<\/strong>. A message queued outside that window waits. Larger batches can take several runs; confirmation does not mean every recipient has already been sent a message.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The system rechecks permissions, subscription, provider settings and recipient details before sending. Changes may cancel an affected message instead of sending it using outdated information.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Debt reminders started manually from Customer Balances and selected account-entry\/deletion notifications are attempted immediately through their respective workflows. They do not wait for the composed-message queue window.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Common Questions<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Why is the Send SMS tab or customer search unavailable?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Ask the owner to check your Send SMS and Manage Customers permissions.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Can I send to alternative customer numbers?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">No. Sending uses the primary customer phone number only. Update that number in Duka Customers when necessary.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Will ordinary composed messages include payment instructions?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">No. Enter any necessary payment information in the body yourself. The automatic additions are the duka name, greeting and contact footer.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Why has my message not been sent immediately?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Composed messages are queued. Check SMS history for progress, the subscription status and any reason shown. Do not submit the same batch again while it is waiting.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Can I edit a confirmed batch here?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Edit selection is available before confirmation. After confirmation, this page does not offer a batch-edit or cancel control. Check history or contact support if a confirmed message needs attention.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Using Your Own HostPinnacle Account<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A DukaMaps administrator must first verify and activate your HostPinnacle SMS account and approved sender ID. The administrator enters the account&#8217;s <strong>user ID and password<\/strong>. Ordinary staff do not change provider accounts through Settings.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This setup applies across the duka&#8217;s customer SMS functions, not just Send SMS. Maintain your SMS balance directly with HostPinnacle. <strong>DukaMaps does not deduct its SMS credits<\/strong> for own-account messages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Existing DukaMaps credits remain if you switch to your own account and can be used if you switch back. Own-account sending does not automatically fall back to DukaMaps credits when the provider balance runs out.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Select Recipients<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>Send to<\/strong> field offers:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Option<\/th><th>Recipients<\/th><\/tr><\/thead><tbody><tr><td>Individual customer<\/td><td>One customer found through the shared search.<\/td><\/tr><tr><td>Customer categories<\/td><td>Customers assigned directly to one or more selected categories.<\/td><\/tr><tr><td>All customers<\/td><td>Customers in this duka, subject to message eligibility.<\/td><\/tr><tr><td>All except selected categories<\/td><td>Customers outside the selected categories, including those without a category.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Selecting a parent category does not automatically include its subcategories. Select the actual assigned categories you need.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All messages use the <strong>primary phone number only<\/strong>. Alternative numbers are not included. Duplicate phone numbers are excluded within a batch so a shared number receives only one message.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Choose the Message Purpose<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Choose <strong>Service notification<\/strong> for information about a customer&#8217;s service, order or account. Choose <strong>Marketing<\/strong> for promotions or offers. Marketing includes only customers subscribed to marketing SMS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do not label promotional messages as service notifications to bypass customer preferences. Marketing opt-outs do not stop legitimate service notifications.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Message Body<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Enter only the body in plain text. Duka Maps adds the duka name, greeting and contact footer:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Example Duka<br>Hi Jane! Your repaired phone is ready for collection.<br>For Questions, Contact: 0712345678<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Do not repeat the header or footer. Do not add placeholders such as <strong>{first_name}<\/strong> or <strong>{balance}<\/strong> to a composed body; they remain literal text rather than being replaced.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The system detects the message&#8217;s character type automatically. You do not need to choose Text or Unicode.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Keep the Message Body Within Two SMS Units<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The staff-composed <strong>body<\/strong> must fit <strong>two SMS units<\/strong>, for both individual and group messages. The complete message may use more units after the duka name, personalised greeting and contact footer are added. HostPinnacle charges for all units in the complete message.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Watch the live counter while typing. For ordinary basic text, the two-unit body limit is <strong>306 encoding spaces<\/strong>. For Unicode it is <strong>134<\/strong>. Some symbols use more than one encoding space, so rely on the counter rather than a visible-character count.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ordinary text usually has more space than messages containing emojis, curly quotation marks or other Unicode characters. Some symbols take more than one encoding space. Longer messages use part of each unit to join their parts together. Rely on the live counter and preview rather than counting visible characters yourself.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Debt reminders and account-entry notifications retain their separate <strong>three-unit complete-message limit<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Preview the Messages and Recipients<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Click <strong>Preview messages and recipients<\/strong>. Review the actual recipients, complete message samples and total SMS units. The preview shows <strong>No DukaMaps charge<\/strong>; maintain sufficient balance with HostPinnacle for the full messages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a group, up to <strong>three sample messages<\/strong> are displayed. Recipient and SMS-unit totals include all messages to be sent, not just the samples. Different customer-name lengths can produce different unit counts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Excluded recipients are listed with reasons, such as an invalid primary number, a duplicate phone number or a marketing opt-out. When customers share a phone number, check that the sample greeting is appropriate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Use <strong>Edit selection<\/strong> to change recipients or wording. A preview expires after <strong>10 minutes<\/strong>, so preview again if asked. Previewing alone does not send anything.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Confirm and Queue<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Click <strong>Confirm and queue messages<\/strong> only after reviewing the preview. Composed messages enter the queue rather than being delivered immediately. DukaMaps does not reserve or deduct its credits for these messages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The queue normally runs every minute during the sending window from <strong>8 am until before 9 pm Kenyan time<\/strong>. A message queued outside that window waits. Larger batches can take several runs; confirmation does not mean every recipient has already been sent a message.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The system rechecks permissions, subscription, provider settings and recipient details before sending. Changes may cancel an affected message instead of sending it using outdated information.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Debt reminders started manually from Customer Balances and selected account-entry\/deletion notifications are attempted immediately through their respective workflows. They do not wait for the composed-message queue window.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Common Questions<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Why is the Send SMS tab or customer search unavailable?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Ask the owner to check your Send SMS and Manage Customers permissions.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Can I send to alternative customer numbers?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">No. Sending uses the primary customer phone number only. Update that number in Duka Customers when necessary.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Will ordinary composed messages include payment instructions?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">No. Enter any necessary payment information in the body yourself. The automatic additions are the duka name, greeting and contact footer.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Why has my message not been sent immediately?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Composed messages are queued. Check SMS history for progress, the subscription status and any reason shown. Do not submit the same batch again while it is waiting.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Can I edit a confirmed batch here?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Edit selection is available before confirmation. After confirmation, this page does not offer a batch-edit or cancel control. Check history or contact support if a confirmed message needs attention.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Why did fewer customers receive messages than I selected?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Check excluded recipients and SMS history. Invalid numbers, duplicate phones, marketing opt-outs or eligibility changes can reduce the sent total. Some queued messages may still be waiting.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">What happens if my own HostPinnacle balance runs out?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Top up your own HostPinnacle account and check the message history before attempting to send again. The system does not automatically use your DukaMaps credits instead.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Log in to Duka Maps, select your duka, then open SMS from the Admin Menu. Confirm the duka name before taking action. Each duka has separate SMS settings, credits and records. Open Send SMS. You need Send SMS and Manage Customers permissions, a saved duka contact number and an active main subscription. Sending pauses when [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-101","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/dukamaps.co.ke\/help\/wp-json\/wp\/v2\/pages\/101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dukamaps.co.ke\/help\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dukamaps.co.ke\/help\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dukamaps.co.ke\/help\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dukamaps.co.ke\/help\/wp-json\/wp\/v2\/comments?post=101"}],"version-history":[{"count":2,"href":"https:\/\/dukamaps.co.ke\/help\/wp-json\/wp\/v2\/pages\/101\/revisions"}],"predecessor-version":[{"id":110,"href":"https:\/\/dukamaps.co.ke\/help\/wp-json\/wp\/v2\/pages\/101\/revisions\/110"}],"wp:attachment":[{"href":"https:\/\/dukamaps.co.ke\/help\/wp-json\/wp\/v2\/media?parent=101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}