Amazon SNS Component
Manage topics, subscriptions, and messages in Amazon SNS.
Component key: aws-sns
Description
Amazon SNS (Simple Notification Service) is a fully managed messaging service from Amazon Web Services (AWS) for both application-to-application (A2A) and application-to-person (A2P) communication. This component allows you to publish messages to topics, manage subscriptions, create and configure topics, and send SMS messages through the SNS service.
API Documentation
This component is built using the AWS SNS API.
Connections
AWS SNS Access Key and Secret
An AWS IAM access key pair is required to interact with Amazon SNS. Ensure the key pair generated in AWS has proper permissions to the SNS resources to access. Read about Amazon SNS IAM policies in the AWS docs.
Prerequisites
- An active AWS account
- IAM permissions to create access keys
Setup Steps
To create an IAM access key pair:
- Sign in to the AWS Console and navigate to Identity and Access Management (IAM)
- Select Users from the left sidebar
- Choose an existing user or create a new one by selecting Create User
- If creating a new user, provide a username and configure console access if needed
- Navigate to the Security credentials tab for the selected user
- Under Access Keys, select Create access key
- Choose the use case (select Third-party service or Application running outside AWS as appropriate)
- Add an optional description tag for the key
- Select Create access key
- Copy both the Access Key ID and Secret Access Key values
The Secret Access Key is only shown once during creation. Store it securely as it cannot be retrieved later. If lost, a new access key pair must be generated.
Configure the Connection
- Enter the Access Key ID into the corresponding field in the connection configuration
- Enter the Secret Access Key into the corresponding field in the connection configuration
Required Permissions
The IAM user or role associated with the access key pair must have appropriate permissions for Amazon SNS operations.
Common required permissions include:
sns:Publish- Send messages to topicssns:Subscribe- Subscribe endpoints to topicssns:CreateTopic- Create new SNS topicssns:DeleteTopic- Delete SNS topicssns:ListTopics- List available topicssns:GetTopicAttributes- Retrieve topic detailssns:SetTopicAttributes- Modify topic settings
Refer to the Amazon SNS IAM policy documentation for detailed permission information and policy examples.
| Input | Notes | Example |
|---|---|---|
| Access Key ID | An AWS IAM Access Key ID for authenticating with Amazon SNS. Learn more | AKIAIOSFODNN7EXAMPLE |
| Secret Access Key | An AWS IAM Secret Access Key corresponding to the Access Key ID. Learn more | wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY |
AWS Role ARN
AWS IAM role assumption enables secure, temporary access to Amazon SNS resources without embedding long-term credentials. This authentication method uses an IAM user's access key pair to assume an IAM role with specific SNS permissions.
Prerequisites
- An active AWS account
- IAM permissions to create users, access keys, and roles
Create IAM User and Access Key
- Sign in to the AWS Console and navigate to Identity and Access Management (IAM)
- Select Users from the left sidebar
- Select Create User
- Provide a User name and optionally enable AWS Management Console access
- Complete the user creation process
- From the user list, select the newly created user
- Copy the ARN (Amazon Resource Name) from the summary section - this will be needed for the role trust policy
- Navigate to the Security credentials tab
- Under Access Keys, select Create access key
- Select Third-party service as the access key type
- Select Next, add an optional description tag, then select Create access key
- Copy both the Access Key ID and Secret Access Key for later use
The Secret Access Key is only shown once during creation. Store it securely as it cannot be retrieved later.
Create IAM Role with Trust Policy
- In the IAM console, select Roles from the left sidebar
- Select Create Role
- For Trusted entity type, select Custom trust policy
- Replace the default policy with the following trust policy statement, substituting the actual user ARN copied from the previous section:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:user/YourUserName"
},
"Action": "sts:AssumeRole"
}
]
}
- Select Next to proceed to permissions
- Under Permissions policies, search for and attach AmazonSNSFullAccess or create a custom policy with specific SNS permissions
- Select Next and provide a Role name and optional description
- Review the configuration and select Create Role
- From the roles list, select the newly created role
- Copy the Role ARN from the summary section
Configure the Connection
- Enter the Access Key ID from the IAM user into the connection configuration
- Enter the Secret Access Key from the IAM user into the connection configuration
- Enter the Role ARN from the IAM role into the connection configuration
The connection will use the IAM user credentials to assume the specified role when accessing Amazon SNS resources.
Required Permissions
The IAM role must have appropriate Amazon SNS permissions attached via IAM policies.
Common required permissions include:
sns:Publish- Send messages to topicssns:Subscribe- Subscribe endpoints to topicssns:CreateTopic- Create new SNS topicssns:DeleteTopic- Delete SNS topicssns:ListTopics- List available topicssns:GetTopicAttributes- Retrieve topic detailssns:SetTopicAttributes- Modify topic settings
For production use, consider creating a custom IAM policy with least-privilege permissions instead of using AmazonSNSFullAccess.
Refer to the Amazon SNS IAM policy documentation for detailed permission information and policy examples.
| Input | Notes | Example |
|---|---|---|
| Access Key ID | An AWS IAM Access Key ID | AKIAIOSFODNN7EXAMPLE |
| External ID | Provides enhanced security measures to the connection. Optional, but recommended. Please check AWS docs for more information. | shared-common-secret |
| Role ARN | An AWS IAM Role ARN | arn:aws:iam::OtherAccount-ID:role/assumed-role-name |
| Secret Access Key | An AWS IAM Secret Access Key | wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY |
Triggers
Manual Subscription
Receive and validate webhook requests from SNS for manually configured webhook subscriptions. | key: subscriptionTrigger
| Input | Notes | Example |
|---|---|---|
| Parse Message | When enabled, the message from SNS will be parsed as JSON and returned. When disabled, it will be passed as received. | false |
This trigger receives and validates webhook notifications from Amazon SNS. The trigger is designed for manually configured SNS subscriptions where the subscription is created and managed through the AWS console or other external tools, rather than being automatically managed by the integration.
For more information on SNS HTTP/HTTPS subscriptions, see Amazon SNS HTTP/HTTPS notifications.
Configuration
To configure this trigger:
- Deploy the integration instance and note the webhook URL for the flow using this trigger
- In the AWS SNS console, subscribe the webhook URL to an SNS topic
- Optionally enable the Parse Message input to automatically parse JSON message payloads
Once the subscription is created in SNS, messages sent to the topic will be delivered to the integration via the webhook URL.
Subscription Confirmation
When a subscription is first created in SNS, Amazon sends a SubscriptionConfirmation message to the webhook URL. This trigger automatically handles the subscription confirmation process by making an HTTP GET request to the SubscribeURL provided in the confirmation message. This confirms to Amazon SNS that the endpoint is ready to receive notifications.
Similarly, if an unsubscribe request is initiated, the trigger automatically handles UnsubscribeConfirmation messages.
Message Verification
All messages received from SNS are automatically verified using SNS message signature verification. The trigger validates the cryptographic signature on each incoming message to ensure it originated from Amazon and has not been tampered with.
Branches
This trigger uses branches to route different message types:
- Notification: Triggered when SNS sends a notification message to the webhook. This branch receives the actual message content from the SNS topic.
- Subscribe: Triggered when SNS sends a subscription confirmation. The confirmation is automatically handled, and this branch can be used for additional actions (such as logging or sending alerts).
- Unsubscribe: Triggered when SNS sends an unsubscribe confirmation. The unsubscribe event is automatically handled, and this branch can be used for additional actions.
The Subscribe and Unsubscribe branches can be left empty if no additional processing is needed. Most integrations will only implement logic in the Notification branch.
Parse Message Option
When Parse Message is enabled and a Notification message is received:
- If the message body is valid JSON, it will be automatically parsed into an object
- If the message body is not valid JSON, the trigger will throw an error
- This option only applies to messages in the Notification branch
- Raw delivery messages are always parsed when this option is enabled
Leave Parse Message disabled if the SNS topic sends non-JSON content or if JSON parsing should be handled in subsequent integration steps.
Returned Data
The trigger returns an object with the following structure:
Example Notification Message
{
"Type": "Notification",
"MessageId": "da41e39f-ea4d-435a-b922-c6aae3915ebe",
"TopicArn": "arn:aws:sns:us-west-2:123456789012:MyTopic",
"Subject": "test",
"Message": "test message",
"Timestamp": "2012-04-25T21:49:25.719Z",
"SignatureVersion": "1",
"Signature": "EXAMPLElDMXvB8r9R83tGoNn0ecwd5UjllzsvSvbItzfaMpN2nk5HVSw7XnOn/49IkxDKz8YrlH2qJXj2iZB0Zo2O71c4qQk1fMUDi3LGpij7RCW7AW9vYYsSqIKRnFS94ilu7NFhUzLiieYr4BKHpdTmdD6c0esKEYBpabxDSc=",
"SigningCertURL": "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem",
"UnsubscribeURL": "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55"
}
Example Subscription Confirmation Message
{
"Type": "SubscriptionConfirmation",
"MessageId": "165545c9-2a5c-472c-8df2-7ff2be2b3b1b",
"Token": "2336412f37f...",
"TopicArn": "arn:aws:sns:us-west-2:123456789012:MyTopic",
"Message": "You have chosen to subscribe to the topic...",
"SubscribeURL": "https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:123456789012:MyTopic&Token=2336412f37f...",
"Timestamp": "2012-04-26T20:45:04.751Z",
"SignatureVersion": "1",
"Signature": "EXAMPLEpH+...",
"SigningCertURL": "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem"
}
Example Unsubscribe Confirmation Message
{
"Type": "UnsubscribeConfirmation",
"MessageId": "47138184-6831-46b8-8f7c-afc488602d7d",
"Token": "2336412f37f...",
"TopicArn": "arn:aws:sns:us-west-2:123456789012:MyTopic",
"Message": "You have chosen to deactivate subscription arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55.\nTo cancel this operation and restore the subscription, visit the SubscribeURL included in this message.",
"SubscribeURL": "https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:123456789012:MyTopic&Token=2336412f37f...",
"Timestamp": "2012-04-26T20:06:41.581Z",
"SignatureVersion": "1",
"Signature": "EXAMPLEHXgJ...",
"SigningCertURL": "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem"
}
{
"payload": {
"headers": {
"x-amz-sns-message-type": "Notification",
"x-amz-sns-message-id": "da41e39f-ea4d-435a-b922-c6aae3915ebe",
"x-amz-sns-topic-arn": "arn:aws:sns:us-west-2:123456789012:MyTopic",
"x-amz-sns-subscription-arn": "arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55",
"Content-Length": "761",
"Content-Type": "text/plain; charset=UTF-8",
"Host": "ec2-50-17-44-49.compute-1.amazonaws.com",
"Connection": "Keep-Alive",
"User-Agent": "Amazon Simple Notification Service Agent"
},
"queryParameters": {},
"rawBody": {
"data": {}
},
"webhookUrls": {},
"webhookApiKeys": {},
"customer": {
"externalId": "abc-123",
"name": "Example Corp",
"id": "exampleId"
},
"body": {
"data": {
"Type": "Notification",
"MessageId": "da41e39f-ea4d-435a-b922-c6aae3915ebe",
"TopicArn": "arn:aws:sns:us-west-2:123456789012:MyTopic",
"Subject": "test",
"Message": "test message",
"Timestamp": "2012-04-25T21:49:25.719Z",
"SignatureVersion": "1",
"Signature": "EXAMPLElDMXvB8r9R83tGoNn0ecwd5UjllzsvSvbItzfaMpN2nk5HVSw7XnOn/49IkxDKz8YrlH2qJXj2iZB0Zo2O71c4qQk1fMUDi3LGpij7RCW7AW9vYYsSqIKRnFS94ilu7NFhUzLiieYr4BKHpdTmdD6c0esKEYBpabxDSc=",
"SigningCertURL": "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem",
"UnsubscribeURL": "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55"
}
},
"executionId": "",
"instance": {
"id": "example",
"name": "exampleName"
},
"pathFragment": "example",
"invokeUrl": "Url",
"user": {
"email": "email@email.test",
"externalId": "externalId",
"id": "123",
"name": "name"
},
"flow": {
"id": "flowId",
"name": "flowName"
},
"integration": {
"id": "integrationId",
"name": "integrationName",
"externalVersion": "1.0.0",
"versionSequenceId": "1"
},
"startedAt": "2012-04-25T21:49:25.719Z",
"globalDebug": false
},
"branch": "Notification"
}
Topic Webhook
Receive notifications from an SNS topic. Automatically creates and manages a topic subscription when the instance is deployed, and removes the subscription when the instance is deleted. | key: webhookLifecycleTrigger
| Input | Notes | Example |
|---|---|---|
| Connection | The Amazon SNS connection to use. | |
| AWS Region | AWS provides services in multiple regions, like us-west-2 or eu-west-1. | us-east-1 |
| Parse Message | When enabled, the message from SNS will be parsed as JSON and returned. When disabled, it will be passed as received. | false |
| Topic ARN | The Amazon Resource Name (ARN) of the SNS topic. Learn more | arn:aws:sns:us-east-1:123456789012:MyExampleTopic |
This trigger automatically creates and manages SNS webhook subscriptions for the instance. When an instance is deployed, the trigger subscribes the integration's webhook URL to the specified SNS topic. When the instance is deleted, the subscription is automatically removed.
For more information on SNS HTTP/HTTPS subscriptions, see Amazon SNS HTTP/HTTPS notifications.
Configuration
To configure this trigger:
- Select an AWS Connection with permissions to create and delete SNS subscriptions (requires
sns:Subscribeandsns:Unsubscribepermissions) - Choose the AWS Region where the SNS topic is located
- Provide the Topic ARN of the SNS topic to subscribe to
- Optionally enable Parse Message to automatically parse JSON message payloads
Automatic Subscription Management
On Instance Deploy:
- The trigger automatically creates an HTTPS subscription to the specified SNS topic
- The integration's webhook URL is registered as the subscription endpoint
- The subscription is created with
RawMessageDeliveryset tofalse(messages include SNS metadata) - The subscription ARN is stored in integration state for later reference
- If a subscription already exists for the flow, creation is skipped
On Instance Delete:
- The trigger automatically unsubscribes from the SNS topic
- The stored subscription ARN is used to remove the subscription
- The subscription state is cleared from integration state
Subscription Confirmation
When the subscription is first created, SNS sends a SubscriptionConfirmation message to the webhook URL. This trigger automatically handles the confirmation process by making an HTTP GET request to the SubscribeURL provided in the confirmation message. This confirms to Amazon SNS that the endpoint is ready to receive notifications.
Message Verification
All messages received from SNS are automatically verified using SNS message signature verification. This ensures that messages originated from Amazon and have not been tampered with.
Branches
This trigger uses branches to route different message types:
- Notification: Triggered when SNS sends a notification message to the webhook. This branch receives the actual message content from the SNS topic.
- Subscribe: Triggered when SNS sends a subscription confirmation. The confirmation is automatically handled, and this branch can be used for additional actions (such as logging or notifications).
- Unsubscribe: Triggered when SNS sends an unsubscribe confirmation. The unsubscribe event is automatically handled, and this branch can be used for additional actions.
Most integrations will only implement logic in the Notification branch, as the subscribe and unsubscribe events are handled automatically.
Parse Message Option
When Parse Message is enabled and a Notification message is received:
- If the message body is valid JSON, it will be automatically parsed into an object
- If the message body is not valid JSON, the trigger will throw an error
- This option only applies to messages in the Notification branch
- Raw delivery messages are always parsed when this option is enabled
Leave Parse Message disabled if the SNS topic sends non JSON content or if JSON parsing should be handled in subsequent integration steps.
Returned Data
The trigger returns an object with the following structure:
Example Returned Data
{
"Type": "Notification",
"MessageId": "da41e39f-ea4d-435a-b922-c6aae3915ebe",
"TopicArn": "arn:aws:sns:us-west-2:123456789012:MyTopic",
"Subject": "test",
"Message": "test message",
"Timestamp": "2012-04-25T21:49:25.719Z",
"SignatureVersion": "1",
"Signature": "EXAMPLElDMXvB8r9R83tGoNn0ecwd5UjllzsvSvbItzfaMpN2nk5HVSw7XnOn/49IkxDKz8YrlH2qJXj2iZB0Zo2O71c4qQk1fMUDi3LGpij7RCW7AW9vYYsSqIKRnFS94ilu7NFhUzLiieYr4BKHpdTmdD6c0esKEYBpabxDSc=",
"SigningCertURL": "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem",
"UnsubscribeURL": "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55"
}
{
"payload": {
"headers": {
"x-amz-sns-message-type": "Notification",
"x-amz-sns-message-id": "da41e39f-ea4d-435a-b922-c6aae3915ebe",
"x-amz-sns-topic-arn": "arn:aws:sns:us-west-2:123456789012:MyTopic",
"x-amz-sns-subscription-arn": "arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55",
"Content-Length": "761",
"Content-Type": "text/plain; charset=UTF-8",
"Host": "ec2-50-17-44-49.compute-1.amazonaws.com",
"Connection": "Keep-Alive",
"User-Agent": "Amazon Simple Notification Service Agent"
},
"queryParameters": {},
"rawBody": {
"data": {}
},
"webhookUrls": {},
"webhookApiKeys": {},
"customer": {
"externalId": "abc-123",
"name": "Example Corp",
"id": "exampleId"
},
"body": {
"data": {
"Type": "Notification",
"MessageId": "da41e39f-ea4d-435a-b922-c6aae3915ebe",
"TopicArn": "arn:aws:sns:us-west-2:123456789012:MyTopic",
"Subject": "test",
"Message": "test message",
"Timestamp": "2012-04-25T21:49:25.719Z",
"SignatureVersion": "1",
"Signature": "EXAMPLElDMXvB8r9R83tGoNn0ecwd5UjllzsvSvbItzfaMpN2nk5HVSw7XnOn/49IkxDKz8YrlH2qJXj2iZB0Zo2O71c4qQk1fMUDi3LGpij7RCW7AW9vYYsSqIKRnFS94ilu7NFhUzLiieYr4BKHpdTmdD6c0esKEYBpabxDSc=",
"SigningCertURL": "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem",
"UnsubscribeURL": "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:123456789012:MyTopic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55"
}
},
"executionId": "",
"instance": {
"id": "example",
"name": "exampleName"
},
"pathFragment": "example",
"invokeUrl": "Url",
"user": {
"email": "email@email.test",
"externalId": "externalId",
"id": "123",
"name": "name"
},
"flow": {
"id": "flowId",
"name": "flowName"
},
"integration": {
"id": "integrationId",
"name": "integrationName",
"externalVersion": "1.0.0",
"versionSequenceId": "1"
},
"startedAt": "2012-04-25T21:49:25.719Z",
"globalDebug": false
},
"branch": "Notification"
}
Data Sources
Select AWS Region
Select an AWS region | key: selectRegion | type: picklist
Select Subscription
Select a subscription from the list of subscriptions | key: selectSubscription | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The Amazon SNS connection to use. | |
| AWS Region | AWS provides services in multiple regions, like us-west-2 or eu-west-1. | us-east-1 |
| Topic ARN | The Amazon Resource Name (ARN) of the SNS topic. Learn more | arn:aws:sns:us-east-1:123456789012:MyExampleTopic |
Select Topic
Select a topic from the list of topics | key: selectTopic | type: picklist
| Input | Notes | Example |
|---|---|---|
| Connection | The Amazon SNS connection to use. | |
| AWS Region | AWS provides services in multiple regions, like us-west-2 or eu-west-1. | us-east-1 |
Actions
Create Topic
Create an Amazon SNS Topic | key: createTopic
| Input | Notes | Example |
|---|---|---|
| Connection | The Amazon SNS connection to use. | |
| AWS Region | AWS provides services in multiple regions, like us-west-2 or eu-west-1. | us-east-1 |
| Name | The name of the SNS topic to create. | MyExampleTopic |
{
"data": {
"TopicArn": "arn:aws:sns:us-east-1:123456789012:MyExampleTopic"
}
}
Delete Topic
Delete an Amazon SNS Topic | key: deleteTopic
| Input | Notes | Example |
|---|---|---|
| Connection | The Amazon SNS connection to use. | |
| AWS Region | AWS provides services in multiple regions, like us-west-2 or eu-west-1. | us-east-1 |
| Topic ARN | The Amazon Resource Name (ARN) of the SNS topic. Learn more | arn:aws:sns:us-east-1:123456789012:MyExampleTopic |
{
"data": {}
}
Get Topic Attributes
Retrieves the attributes of an Amazon SNS Topic. | key: getTopicAttributes
| Input | Notes | Example |
|---|---|---|
| Connection | The Amazon SNS connection to use. | |
| AWS Region | AWS provides services in multiple regions, like us-west-2 or eu-west-1. | us-east-1 |
| Topic ARN | The Amazon Resource Name (ARN) of the SNS topic. Learn more | arn:aws:sns:us-east-1:123456789012:MyExampleTopic |
{
"data": {
"Attributes": {
"TopicArn": "arn:aws:sns:us-east-1:123456789012:MyExampleTopic",
"Owner": "123456789012",
"Policy": "{\"Version\":\"2012-10-17\",\"Id\":\"__default_policy_ID\",\"Statement\":[{\"Sid\":\"__default_statement_ID\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Action\":[\"SNS:GetTopicAttributes\",\"SNS:SetTopicAttributes\",\"SNS:AddPermission\",\"SNS:RemovePermission\",\"SNS:DeleteTopic\",\"SNS:Subscribe\",\"SNS:ListSubscriptionsByTopic\",\"SNS:Publish\"],\"Resource\":\"arn:aws:sns:us-east-1:123456789012:MyExampleTopic\",\"Condition\":{\"StringEquals\":{\"AWS:SourceOwner\":\"123456789012\"}}}]}",
"DisplayName": "My Example Topic",
"SubscriptionsPending": "0",
"SubscriptionsConfirmed": "3",
"SubscriptionsDeleted": "0",
"DeliveryPolicy": "{\"http\":{\"defaultHealthyRetryPolicy\":{\"minDelayTarget\":20,\"maxDelayTarget\":20,\"numRetries\":3,\"numMaxDelayRetries\":0,\"numNoDelayRetries\":0,\"numMinDelayRetries\":0,\"backoffFunction\":\"linear\"},\"disableSubscriptionOverrides\":false}}",
"EffectiveDeliveryPolicy": "{\"http\":{\"defaultHealthyRetryPolicy\":{\"minDelayTarget\":20,\"maxDelayTarget\":20,\"numRetries\":3,\"numMaxDelayRetries\":0,\"numNoDelayRetries\":0,\"numMinDelayRetries\":0,\"backoffFunction\":\"linear\"},\"disableSubscriptionOverrides\":false}}",
"TracingConfig": "PassThrough",
"ContentBasedDeduplication": "false",
"FifoTopic": "false"
}
}
}
List Opt Out Numbers
List all opt out numbers | key: listOptOutNumbers
| Input | Notes | Example |
|---|---|---|
| Connection | The Amazon SNS connection to use. | |
| AWS Region | AWS provides services in multiple regions, like us-west-2 or eu-west-1. | us-east-1 |
| Next Token | The pagination token returned by a previous request to retrieve the next page of results. | lslTXFcbLQKkb0vP9Kgh5hy0Y0OnC7Z9ZPHPwPmMnxSk3eiDRMkct7D8E |
{
"data": {
"phoneNumbers": [
"+12125551001",
"+12125551002",
"+12125551003"
],
"nextToken": "AAEBAf/8v+7MSvN8MkD9xZHCrFKL6RQ7UHJ9PJhWOH5Yqvf1H8EXAMPLE"
}
}
List Subscriptions
Retrieve the subscriptions of an Amazon SNS Topic | key: listSubscriptions
| Input | Notes | Example |
|---|---|---|
| Connection | The Amazon SNS connection to use. | |
| AWS Region | AWS provides services in multiple regions, like us-west-2 or eu-west-1. | us-east-1 |
| Fetch All | When set to true, fetches all paginated subscriptions. When false, only 100 subscriptions will be returned. | false |
| Next Token | The pagination token returned by a previous request to retrieve the next page of results. | lslTXFcbLQKkb0vP9Kgh5hy0Y0OnC7Z9ZPHPwPmMnxSk3eiDRMkct7D8E |
| Topic ARN | The Amazon Resource Name (ARN) of the SNS topic. Learn more | arn:aws:sns:us-east-1:123456789012:MyExampleTopic |
{
"data": {
"Subscriptions": [
{
"SubscriptionArn": "arn:aws:sns:us-east-1:123456789012:MyExampleTopic:a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"Owner": "123456789012",
"Protocol": "https",
"Endpoint": "https://example.com/webhook",
"TopicArn": "arn:aws:sns:us-east-1:123456789012:MyExampleTopic"
},
{
"SubscriptionArn": "arn:aws:sns:us-east-1:123456789012:MyExampleTopic:b2c3d4e5-f6a7-8901-bcde-f12345678901",
"Owner": "123456789012",
"Protocol": "sqs",
"Endpoint": "arn:aws:sqs:us-east-1:123456789012:MyQueue",
"TopicArn": "arn:aws:sns:us-east-1:123456789012:MyExampleTopic"
},
{
"SubscriptionArn": "PendingConfirmation",
"Owner": "123456789012",
"Protocol": "email",
"Endpoint": "admin@example.com",
"TopicArn": "arn:aws:sns:us-east-1:123456789012:MyExampleTopic"
},
{
"SubscriptionArn": "PendingConfirmation",
"Owner": "123456789012",
"Protocol": "sms",
"Endpoint": "+12125551234",
"TopicArn": "arn:aws:sns:us-east-1:123456789012:MyExampleTopic"
}
],
"NextToken": "AAEBAf/8v+7MSvN8MkD9xZHCrFKL6RQ7UHJ9PJhWOH5Yqvf1H8EXAMPLE"
}
}
List Topics
List available Amazon SNS Topics | key: listTopics
| Input | Notes | Example |
|---|---|---|
| Connection | The Amazon SNS connection to use. | |
| AWS Region | AWS provides services in multiple regions, like us-west-2 or eu-west-1. | us-east-1 |
| Fetch All | When set to true, fetches all paginated topics. When false, only 100 topics will be returned. | false |
| Next Token | The pagination token returned by a previous request to retrieve the next page of results. | lslTXFcbLQKkb0vP9Kgh5hy0Y0OnC7Z9ZPHPwPmMnxSk3eiDRMkct7D8E |
{
"data": {
"Topics": [
{
"TopicArn": "arn:aws:sns:us-east-1:123456789012:MyExampleTopic"
},
{
"TopicArn": "arn:aws:sns:us-east-1:123456789012:AnotherTopic"
},
{
"TopicArn": "arn:aws:sns:us-east-1:123456789012:ProductionAlerts"
}
],
"NextToken": "AAEBAf/8v+7MSvN8MkD9xZHCrFKL6RQ7UHJ9PJhWOH5Yqvf1H8EXAMPLE"
}
}
Publish Batch Messages
Publishes up to ten messages to the specified Amazon SNS Topic | key: publishBatchMessages
| Input | Notes | Example |
|---|---|---|
| Connection | The Amazon SNS connection to use. | |
| AWS Region | AWS provides services in multiple regions, like us-west-2 or eu-west-1. | us-east-1 |
| Message Entries | An array of message entries to publish in batch. Each entry must include an Id and Message. For binary messages, add a Template Field containing a Buffer to the BinaryValue attribute. Learn more | |
| Topic ARN | The Amazon Resource Name (ARN) of the SNS topic. Learn more | arn:aws:sns:us-east-1:123456789012:MyExampleTopic |
{
"data": {
"$metadata": {
"httpStatusCode": 200,
"requestId": "3df5ab1c-8e8a-426f-a2d1-bd7a39ef8651",
"attempts": 1,
"totalRetryDelay": 0
},
"Successful": [
{
"Id": "msg-1",
"MessageId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"SequenceNumber": "10000000000000001001"
},
{
"Id": "msg-2",
"MessageId": "d4e5f6a7-b8c9-0123-def1-234567890123",
"SequenceNumber": "10000000000000001002"
}
],
"Failed": [
{
"Id": "msg-3",
"Code": "InvalidParameter",
"Message": "Invalid message structure",
"SenderFault": true
}
]
}
}
Publish Message
Publish a message to an Amazon SNS Topic | key: publishMessage
| Input | Notes | Example |
|---|---|---|
| Connection | The Amazon SNS connection to use. | |
| AWS Region | AWS provides services in multiple regions, like us-west-2 or eu-west-1. | us-east-1 |
| Message | The message content to send to the topic or endpoint. Learn more | Your order has been shipped! |
| Message Attributes | Optional message attributes as key-value pairs. The value will be automatically typed (String, Number, String.Array, or Binary for Buffer). For binary data, provide a Buffer from a previous step. Learn more | {"name": "John Doe", "age": "30"} |
| Topic ARN | The Amazon Resource Name (ARN) of the SNS topic. Learn more | arn:aws:sns:us-east-1:123456789012:MyExampleTopic |
{
"data": {
"MessageId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"SequenceNumber": "10000000000000001000"
}
}
Publish SMS
Publish an SMS message to an Amazon SNS Topic | key: publishSms
| Input | Notes | Example |
|---|---|---|
| Connection | The Amazon SNS connection to use. | |
| AWS Region | AWS provides services in multiple regions, like us-west-2 or eu-west-1. | us-east-1 |
| Message | The message content to send to the topic or endpoint. Learn more | Your order has been shipped! |
| Phone Number | The phone number in E.164 format (e.g., +12065551234) to receive SMS messages. Learn more | +12065551234 |
{
"data": {
"MessageId": "b2c3d4e5-f6a7-8901-bcde-f12345678901"
}
}
Subscribe to Topic
Subscribe to an Amazon SNS Topic | key: subscribe
| Input | Notes | Example |
|---|---|---|
| Connection | The Amazon SNS connection to use. | |
| AWS Region | AWS provides services in multiple regions, like us-west-2 or eu-west-1. | us-east-1 |
| Endpoint | The endpoint to receive notifications. Format depends on protocol: email address (email@example.com), URL (https://example.com), phone number (+12065551234), or ARN (arn:aws:sqs:us-east-1:123456789012:MyQueue). Learn more | https://example.com/webhook |
| Protocol | The protocol to use for delivering messages to the endpoint (application, email, email-json, firehose, http, https, lambda, sms, or sqs). Learn more | https |
| Topic ARN | The Amazon Resource Name (ARN) of the SNS topic. Learn more | arn:aws:sns:us-east-1:123456789012:MyExampleTopic |
{
"data": {
"SubscriptionArn": "arn:aws:sns:us-east-1:123456789012:MyExampleTopic:a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}
Unsubscribe from a Topic
Unsubscribe from an Amazon SNS Topic | key: unsubscribe
| Input | Notes | Example |
|---|---|---|
| Connection | The Amazon SNS connection to use. | |
| AWS Region | AWS provides services in multiple regions, like us-west-2 or eu-west-1. | us-east-1 |
| Subscription ARN | The Amazon Resource Name (ARN) of the subscription. Learn more | arn:aws:sns:us-east-1:123456789012:MyExampleTopic:12345678-1234-1234-1234-123456789012 |
{
"data": {}
}
Changelog
2025-12-02
Added a Topic Webhook trigger that automatically creates and manages webhook subscriptions for SNS topics
2025-06-05
Added inline data sources for topics and subscriptions to enhance data selection capabilities