Pinpoint
๐ง What Is Amazon Pinpoint?¶
Amazon Pinpoint is a scalable user engagement platform that enables businesses to send targeted messages to users across multiple channels:
-
๐ฉ Email
-
๐ฑ SMS
-
๐ Push notifications
-
๐ Voice messages
-
๐ฒ In-app messaging
โ Ideal for marketing campaigns, transactional messaging, and user analytics.
๐ Use Cases¶
| Use Case | Description |
|---|---|
| Marketing Campaigns | Send newsletters, promotions to user segments |
| Transactional Messaging | OTPs, confirmations, password resets |
| Customer Journeys | Multistep flows: onboarding, re-engagement |
| Push Notifications | Mobile app alerts or activity prompts |
| User Analytics & Engagement | Track user behavior and optimize campaigns |
๐งฑ Core Components¶
| Component | Purpose |
|---|---|
| Projects | Containers for all messaging activities |
| Channels | Mediums: Email, SMS, Push, Voice, In-App |
| Segments | Groups of users filtered by attributes/behavior |
| Campaigns | Targeted messaging to a segment |
| Journeys | Multistep engagement workflows |
| Events | Track user actions (clicks, app opens, etc.) |
| Analytics | Real-time campaign metrics and user event reports |
๐ Supported Channels¶
| Channel | Features |
|---|---|
| Verified identity via SES (uses SES under the hood) | |
| SMS | Global SMS support, short/long codes, opt-out management |
| Push | Mobile app notifications (iOS, Android, Amazon) |
| In-App | Rendered inside your mobile app via SDK |
| Voice | Text-to-speech calls using Amazon Polly |
๐ Identity Verification (SES-Backed)¶
For Email and SMS, Pinpoint uses SES and SNS respectively. You must:
-
Verify sender identities (email/domain via SES)
-
Request SMS production access for higher throughput
-
Manage opt-in/opt-out requirements to remain compliant
๐ Analytics & Metrics¶
| Metric | Description |
|---|---|
| Open/Click Rate | For email and push |
| Delivery Rate | For all channels |
| Bounce/Complaint Rate | From SES |
| Custom Events | User actions tracked in-app (via SDK/API) |
| Journey analytics | Step-by-step conversion or drop-off stats |
โ๏ธ Example: Sending an Email via API (Python Boto3)¶
import boto3
client = boto3.client('pinpoint')
response = client.send_messages(
ApplicationId='your-project-id',
MessageRequest={
'Addresses': {
'user@example.com': {'ChannelType': 'EMAIL'}
},
'MessageConfiguration': {
'EmailMessage': {
'SimpleEmail': {
'Subject': {'Data': 'Hello from Pinpoint'},
'HtmlPart': {'Data': '<h1>This is a test</h1>'},
'TextPart': {'Data': 'This is a test email'}
}
}
}
}
)
๐งช Campaigns vs Journeys¶
| Feature | Campaigns | Journeys |
|---|---|---|
| Type | One-time or recurring message | Multistep flow with decision logic |
| Trigger | Scheduled or event-based | Event-based, segment-based |
| Personalization | โ Template-based | โ Based on user journey progress |
| Automation | Basic | Advanced automation and branching |
๐งฉ Integration Options¶
| Service | Purpose |
|---|---|
| Lambda | Trigger messages programmatically |
| Kinesis | Stream event data for analytics |
| Cognito | Sync user data and segments |
| SNS/SES | Underlying services for SMS/email delivery |
๐ง Terraform Example (Pinpoint Project)¶
resource "aws_pinpoint_app" "myapp" {
name = "MyPinpointApp"
}
resource "aws_pinpoint_sms_channel" "sms" {
application_id = aws_pinpoint_app.myapp.application_id
enabled = true
sender_id = "MyBrand"
short_code = "12345"
}
๐ฐ Pricing (as of 2024)¶
| Channel | Pricing (approx.) |
|---|---|
| $0.10 per 1,000 messages via SES | |
| SMS | Varies by region, ~$0.00645 per message |
| Push | Free |
| Voice | $0.02โ$0.05 per minute |
| In-App | Free |
Plus data charges for events or Kinesis integration.
โ TL;DR Summary¶
| Feature | Amazon Pinpoint |
|---|---|
| Engagement Types | Email, SMS, Push, Voice, In-App |
| Targeting | Segments, Events, Attributes |
| Automation | Campaigns + Multistep Journeys |
| SDK/API Available | โ Yes (iOS, Android, Web, Python, etc.) |
| Monitoring & Analytics | โ Real-time stats, segmentation, and events |
| Compliance | Opt-out, bounce, complaint tracking |