Skip to content

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
Email 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.)
Email $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