Odoo is counting correctly. Messages that contain Arabic or other non-Latin characters are sent with Unicode encoding, which allows fewer characters per SMS unit than plain Latin text. A message that is longer than one unit is split into several units, and each unit uses credits.
- Open the SMS mailing and look at the indicator under the message body; it shows the character count and the number of SMS units per recipient.
- Shorten the text until it fits in one unit, using short phrases and removing extra spaces and line breaks.
- Keep links short; Odoo's link tracking shortens URLs, but the link still counts towards the length.
- Avoid mixing languages in one message if the goal is to save units; mixed text is still sent as Unicode.
- Send a test SMS to a few internal numbers before the campaign to confirm the final length.
Planning the text with the unit counter in view is the simplest way to control cost. Also check the recipient list for duplicate or invalid numbers, as every attempt consumes credits.