Skip to content

Migrate from AWS Pinpoint ​

Still weighing destinations? Start with the vendor-neutral Pinpoint end-of-support decision guide.

AWS Pinpoint's engagement features — campaigns, journeys, segments, message templates, and the analytics dashboard — reach end of support on October 30, 2026. AWS's migration guidance splits the product apart: push and SMS transport move to AWS End User Messaging, email to SES, and campaign orchestration to Amazon Connect, a contact-center suite.

WingBlaze is a like-for-like home for the part that's actually going away: usage-priced campaigns, journeys, segments, and analytics over push, email, SMS, and more — API-first, multi-tenant, with your first 10,000 MAU free and no feature gates. If you're in Southeast Asia, your data stays in-region (asia-southeast1).

Concept map ​

PinpointWingBlaze
ProjectApp
EndpointDevice (a subscriber can hold many)
User (UserId)Subscriber (externalUserId)
User / endpoint attributesTags
SegmentSegment (filter DSL over tags, live preview)
CampaignCampaign (send-now / scheduled / recurring, A/B variants)
JourneyJourney (trigger → wait / send / condition / goal)
Message templateMessage (Liquid personalization, per-language localizations)
Events (PutEvents)Ingest API POST /e
Analytics dashboardLive funnels, conversion outcomes, cohorts, RFM
Transactional SendMessagesPOST /v1/apps/:id/notifications (priority lane)

1. Export your endpoints from Pinpoint ​

Create an export job (console → your project → Settings → Export, or CLI):

bash
aws pinpoint create-export-job \
  --application-id <projectId> \
  --export-job-request "S3UrlPrefix=s3://<bucket>/pinpoint-export/,RoleArn=<export-role-arn>"

Download the resulting part files and concatenate them (they're JSON Lines — one endpoint per line; gzip is fine as-is):

bash
aws s3 cp s3://<bucket>/pinpoint-export/ ./export --recursive
cat export/**/*.jsonl > endpoints.jsonl

A segment export job produces the same format if you only want part of your audience.

2. Import into WingBlaze ​

Create an app in the WingBlaze dashboard (the setup wizard takes your FCM service account and APNs .p8 — the same credentials Pinpoint used), then:

bash
pnpm import-pinpoint --app <appId> --file endpoints.jsonl

What the importer does:

  • Merges endpoints into subscribers. All endpoints sharing a User.UserId become one subscriber with multiple devices — push, email, and SMS stay attached to the same person, so cross-channel journeys and frequency caps work from day one.
  • Maps channels: GCM → FCM, APNS* → APNs, EMAIL → email, SMS → SMS. Pinpoint VOICE endpoints also land as SMS: both are E.164 numbers on the same Twilio account, and an imported number is far more likely to want a text than a call — register it on the voice channel explicitly if you want calls. Baidu/ADM/custom channels are skipped (counts reported).
  • Respects opt-outs. Endpoints with OptOut set are imported as subscribers without that device, so you can't accidentally message them. --include-optout overrides if you've handled consent elsewhere.
  • Carries attributes as tags (endpoint Attributes + UserAttributes), ready for segment filters, Liquid personalization, and journey conditions.
  • Is idempotent for identified users — re-running upserts by externalUserId rather than duplicating. Endpoints with no UserId have nothing to dedupe on, so avoid re-running those files (or split them out).

3. Rebuild segments, campaigns, journeys ​

  • Segments: recreate in the dashboard's segment builder with a live audience preview, or POST /v1/apps/:id/segments with the filter DSL.
  • Recurring campaigns: the composer supports daily/weekly recurrence, per-subscriber-timezone delivery, optimal-time delivery, and throttled rollout.
  • Journeys: the visual editor covers the Pinpoint journey shapes — entry by event trigger, waits, condition branches on tags, goal exits with conversion windows.
  • Event ingestion: point your PutEvents call at POST /e (batched, 1–1000 events per request). Events drive journey triggers, conversion outcomes, funnels, and RFM automatically.

4. Verify before you cut over ​

Send yourself a test campaign from the composer, then check the live funnel (sent → delivered → opened → clicked) on the campaign page. The quickstart walks the whole path in about ten minutes.

Timeline reminder: Pinpoint stops working on October 30, 2026 — export your endpoint data before then; AWS deletes it after the deadline. Import early, run both in parallel, and cut over when the numbers match.

Teknokrat Niaga Sdn Bhd · No. 28-1, Jalan SP 5/2, BSP Business Center, 42610 Bandar Saujana Putra, Selangor, Malaysia · +60 3-5614 3169 · Enquiries: info@teknoniaga.com