Name:
interface
Value:
Extend your Amplify Gen 2 app with AWS Blocks — self-contained backend capabilities you compose into your existing backend.
Gen1 DocsLegacy

Page updated Jul 29, 2026

Migrate from Pinpoint-backed features

Amazon Pinpoint will reach end of support on October 30, 2026. The Pinpoint-backed features in the Amplify libraries are in maintenance mode until that date and will stop functioning afterward. This guide walks you through migrating each affected capability to its replacement.

The affected capabilities are:

  • Analytics: user identification, event and metrics recording backed by Pinpoint
  • Push Notifications: device registration, campaigns, and message handling backed by Pinpoint

Migration paths at a glance

Pinpoint-backed capabilityReplacement
User identification (identifyUser)Amazon Connect Customer Profiles
Push device registration and campaignsAmazon Connect Customer Profiles and Amazon Connect outbound campaigns
Analytics event recordingAmazon Kinesis Data Streams or Amazon Data Firehose

Migrate user identification and push notifications to Amazon Connect Customer Profiles

The Amplify libraries now support Amazon Connect Customer Profiles as the backend for identifying users and registering devices for push notifications. The migration has two parts: deploy the new backend, then update your app code. You do not need to move any data to get started. As your users sign in and open your app, their profiles are created in Customer Profiles and their devices are registered automatically.

1. Add the notifications backend

Add the notifications resource to your Amplify backend. This provisions an Amazon Connect Customer Profiles domain and the API your app communicates with.

Terminal
npm add @aws-amplify/backend-notifications
amplify/backend.ts
import { defineBackend } from '@aws-amplify/backend';
import { defineNotifications } from '@aws-amplify/backend-notifications';
import { auth } from './auth/resource';
defineBackend({
auth,
notifications: defineNotifications()
});

Deploy your backend. The generated amplify_outputs.json now contains a notifications section that the Amplify libraries read automatically. No manual client configuration is required.

2. Update your application code

The Customer Profiles provider exposes three APIs: identifyUser to associate profile attributes with the current user, registerDevice to register the device push token, and removeDevice to deregister it (for example, on sign-out).

Update your identifyUser calls to the new provider. User attributes now live on the profile as customAttributes, and device details are handled by the library.

// Before (Pinpoint provider)
import { identifyUser } from 'aws-amplify/push-notifications';
await identifyUser({
userId: 'user-123',
userProfile: { email: 'user@example.com' },
options: {
userAttributes: { interests: ['food'] }
}
});
// After (Customer Profiles provider)
import { identifyUser } from 'aws-amplify/push-notifications/customer-profiles';
await identifyUser({
userProfile: {
email: 'user@example.com',
customAttributes: { interests: 'food' }
}
});

A few things to note:

  • You no longer pass a userId. The backend derives the caller's identity from the request, for both signed-in and guest users.
  • Device registration requires no code change beyond switching the import for initializePushNotifications. The token registration that previously updated a Pinpoint endpoint now registers a device with Customer Profiles. You can also call registerDevice directly if you manage tokens yourself.
  • Call removeDevice on sign-out if you want the device to stop receiving push notifications for that user.

The Amplify Swift, Android, and Flutter libraries expose the same three APIs through their Connect client packages.

3. Let your user profiles repopulate

Once the updated app version is released, profiles build back up on their own: each time a user signs in and your app calls identifyUser, their profile is created or updated in Customer Profiles, and their device is registered the next time the app receives a push token. Ship the backend change first, then the app update, and your active users carry over as they use the app.

Migrate analytics event recording

Moving existing Pinpoint endpoint data

For most applications, no bulk data migration is needed: profiles repopulate organically as described above, and inactive endpoints age out with your Pinpoint project. If you need to carry over attributes for users before they next open your app, you can export your Pinpoint endpoints and write the relevant attributes to Customer Profiles using the Amazon Connect Customer Profiles APIs. Detailed guidance for this workflow will be added to this page.