Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.

Page updated May 3, 2024

Use existing AWS resources

To use existing Amazon Pinpoint resources with your Amplify backend or frontend application, use the addOutput method to surface backend resource outputs to the amplify_outputs.json file:

amplify/backend.ts
import { defineBackend } from "@aws-amplify/backend"
const backend = defineBackend({})
backend.addOutput({
analytics: {
amazon_pinpoint: {
aws_region: "<your-aws-region>",
app_id: "<your-pinpoint-app-id>",
},
},
})

Configuring client library directly

Alternatively, you can configure the client library directly using Amplify.configure(). This manual setup enables you to use your existing Amazon Pinpoint resource in your app.

src/main.ts
import { Amplify } from 'aws-amplify';
Amplify.configure({
...Amplify.getConfig(),
Analytics: {
...Amplify.getConfig().Analytics,
Pinpoint: {
// REQUIRED - Amazon Pinpoint App Client ID
appId: 'XXXXXXXXXXabcdefghij1234567890ab',
// REQUIRED - Amazon service region
region: 'us-east-1',
// OPTIONAL - How many events can be buffered at once.
bufferSize: 1000,
// OPTIONAL - How many events will be flushed from the buffer per batch.
flushSize: 100,
// OPTIONAL - The interval in milliseconds to perform a buffer check and flush if necessary.
flushInterval: 5000, // 5s
// OPTIONAL - The limit for failed recording retries.
resendLimit: 5
}
}
});

Update your IAM Policy

Amazon Pinpoint requires an AWS Identity and Access Management (IAM) policy in order to use the record and identifyUser APIs:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["mobiletargeting:UpdateEndpoint", "mobiletargeting:PutEvents"],
"Resource": ["arn:aws:mobiletargeting:*:<your-account-id>:apps/<your-pinpoint-app-id>*"]
}
]
}