How to migrate from Attentive to Vonage
A developer's guide to moving from Attentive's event-triggered marketing APIs to Vonage's communications APIs — channel changes, request-format mapping, and a step-by-step migration checklist.
Attentive is an AI-powered SMS, MMS, RCS, email, and push marketing platform for consumer brands; its REST and GraphQL APIs handle subscriber management and event-triggered messaging rather than direct message sends. Vonage, part of Ericsson, provides communications APIs for SMS, voice, video, and messaging. On the messaging.dev Score, Attentive rates 40/100 and Vonage 89/100 — but the two platforms solve different problems, so this migration is as much a re-architecture as a re-pointing of code.
Channels you gain and lose
Both platforms carry SMS, MMS, and RCS. Moving to Vonage adds WhatsApp, Viber, Facebook Messenger, and voice. The one channel you lose is email, which Attentive supports and Vonage does not. Neither offers Telegram or Apple Messages for Business, so nothing changes there.
Compliance, residency, pricing, and tooling
Both are GDPR- and SOC 2-aligned. Vonage adds ISO 27001 and HIPAA, so you gain certifications rather than lose any. Data residency is a larger difference: Attentive runs US servers only, with no EU option and no region choice, while Vonage offers US and EU servers plus APAC and Australia, with data-residency choice.
On pricing, Attentive is custom-quoted and usage-based, with no self-serve signup and no published rates. Vonage is pay-as-you-go (approx. $0.0072 per US SMS segment, plus carrier fees), signup is self-service, and new accounts include €2 free trial credit. Both provide a sandbox. Vonage’s docs rate “high” against Attentive’s “med”, and coverage jumps from 20 to 200 countries.
SDK coverage shifts focus: Attentive ships mobile SDKs (iOS/Swift, Android/Kotlin, React Native), whereas Vonage ships server-side SDKs (Node.js, Python, PHP, Java, C#, Ruby, Kotlin). Note also that Attentive exposes REST and GraphQL; Vonage is REST-only.
How the request format differs
Attentive (source):
curl -X POST 'https://api.attentivemobile.com/v1/events/custom' \
-H 'Authorization: Bearer <API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"type": "Order Shipped",
"user": { "phone": "+13115552368" },
"properties": { "Order Id": "54321" }
}'
Vonage (target):
curl -X POST 'https://rest.nexmo.com/sms/json' \
-d 'api_key=YOUR_API_KEY' \
-d 'api_secret=YOUR_API_SECRET' \
-d 'from=Vonage' \
-d 'to=15551234567' \
-d 'text=Hello from Vonage'
Three things change. Endpoint: you move from api.attentivemobile.com/v1/events/custom to rest.nexmo.com/sms/json (legacy SMS API) or api.nexmo.com/v1/messages (Messages API). Auth: Attentive uses a Bearer API key in the Authorization header; Vonage’s SMS API takes api_key + api_secret as body parameters, while the Messages API uses JWT. Payload: Attentive posts a JSON event — the recipient is nested in user.phone, there is no sender field, and no literal message body (the text is chosen by a journey). Vonage posts a flat, form-encoded direct message: recipient to, sender from, and the message text in text. You are mapping an event into an explicit message.
Migration checklist
- Create a Vonage account (self-serve, €2 credit) and copy your API Key + API Secret, or provision a JWT application for the Messages API. See how to start with Vonage.
- Map your fields: recipient
user.phone→to, add an explicitfromsender, and supply thetextbody that Attentive’s journeys previously generated. - Re-point sending code from the Attentive base URL to the Vonage endpoint, switching from a JSON event body to form-encoded parameters.
- Re-test against Vonage’s sandbox before sending live traffic.
- Update delivery webhooks/callbacks to consume Vonage’s status format instead of Attentive’s.
- Run both providers in parallel and reconcile delivery.
- Cut over once volumes and delivery rates match.
Watch out for
- Email goes away. Vonage has no email channel, so those flows must be re-homed elsewhere.
- No GraphQL and no marketing layer. You lose Attentive’s subscriber management and journey-based triggering — with Vonage you own message content and send timing directly.
- No mobile SDKs. Vonage’s SDKs are all server-side; any in-app subscriber collection built on Attentive’s iOS/Android/React Native SDKs must be rebuilt.
- Credentials in the body. The legacy SMS API sends
api_secretas a POST parameter; use the Messages API with JWT if you prefer token-based auth.
For the full field-by-field breakdown, see the Attentive vs Vonage comparison.