Skip to main content

MessageBird SMS Gateway

Purpose​

MessageBird SMS Gateway activates the MessageBird SMS configuration supplied by SMS Gateway & API Routing. It updates that existing gateway record and uses the base module's request, routing and status code. It adds no standalone menu, sending wizard, callback controller or access role.

This guide describes the Odoo 19 source configuration. Adapter data was compared with 17, 18 and 20; no SMS, callback, provider-account change or runtime test was performed.

Before you start​

Install eis_sms_apis and corvus_messagebird_gateway for the same Odoo major version. The dependency uses Odoo SMS and declares no Enterprise-only requirement. Your hosting must permit custom addons. Provider account credentials and an authorised sender are separate prerequisites.

The wrapper sets its existing gateway to Active, leaves it unarchived, and sets Priority 170, even though credentials and sender values are placeholders. Installation is not proof that the provider connection is usable. Review the route in a controlled database before allowing live SMS traffic.

Access and setup​

A Settings administrator opens SMS Gateways under the phone/SMS configuration menu and selects MessageBird SMS. The base gateway and status models grant access to Settings administrators; this adapter adds no permissions for ordinary senders.

The supplied configuration is:

SettingSource configuration
RequestPOST JSON to https://rest.messagebird.com/messages
AuthenticationToken rendered as Authorization: AccessKey {token}
HeaderAccept: application/json
Bodyrecipients as a typed phone array, literal originator, and message body
RecipientsMultiple-recipient mode enabled; configured text separator is comma
Response rulesHTTP 201 or text containing "id"; capture id

Put the access key in Token, preserve the AccessKey {token} header, and replace [Your Sender ID] in the body's originator. Keep __phones_list__ as a typed JSON token if the intended payload is an array. Changing it to {phones} produces a joined string instead.

Workflow​

  1. Open the existing gateway and inspect API Settings, Authentication, and JSON Body or Parameters. If preparing an unfinished route, use Toggle State from Active to Disabled and ensure Settings does not still select it as the default gateway.
  2. Replace the relevant placeholders with approved configuration values. Review Request Preview as a visual template; it does not validate credentials, resolve every placeholder or contact the provider.
  3. Review Country Prefix, Priority, and the default SMS Gateway in Settings. The base engine selects the first matching active prefix route by priority, then the configured default, then the first active gateway. A configured default is selected without checking its state or archive flag: disabling or archiving it does not reliably remove it from routing. Remove it from the default selection while preparing it. This wrapper does not specify a country-prefix rule. Use IAP bypasses custom routing; Fallback to IAP? applies when no gateway was selected, not after a failed provider send.
  4. Activate only after the configuration and route have been approved for use. Any connectivity test must be a separately authorised SMS send using the provider's permitted test arrangement. Saving or previewing a configuration is not a delivery test.
  5. After an authorised send, inspect Total SMS, Sent SMS, Failed SMS and the Status tab. The engine accepts configured HTTP success or a matching success substring, unless an explicit Error Key matches. Review provider errors separately before equating a recorded success with delivery.

Practice scenario​

In an authorised training database, inspect MessageBird SMS, identify its credential and sender placeholders, and compare its Priority 170 with another fictional route. Keep the training configuration disabled and unselected as default. Inspect the body/parameter structure without sending. This source-derived exercise has not been executed.

Troubleshooting and limitations​

Multiple-recipient mode groups recipients into one request. The base engine uses the first recipient UUID as the request reference and can store the same provider ID for multiple status records. The callback fallback finds only one matching status record by provider ID. Do not assume an aggregate provider callback updates every recipient; verify a supported per-recipient correlation scheme before relying on delivery reporting.

Delivery callbacks, when required, are configured in the base module's Delivery Callbacks tab. This adapter does not enable them or supply provider-specific payload mappings. The base endpoint uses its secret callback token and requires correlation with an existing SMS tracker. HTTP acceptance and a callback returning OK do not independently prove delivery.

Catalogue-qualified adapter versions are Odoo 17, 18, 19 and 20. Their provider XML and imports are identical in the reviewed comparison. The operational walkthrough is based on 19.0; the base engine's framework-specific differences still apply, so use matching packages. The adapter's XML is update data and can reapply supplied values when upgraded; review credentials, sender, state and routing after a module update.

Read SMS Gateway & API Routing for routing, permissions and callback setup. Use the Corvus apps catalogue to purchase the exact version. The live catalogue was checked; no provider-backed demo or message delivery was launched.

Open the Odoo 19 demo selector for this catalogue-qualified adapter. Catalogue qualification does not establish a working provider connection. No demo or SMS send was launched.