Search all guides

Reference · Tools

AWS SQS integration

Send single or batched messages to Amazon SQS queues, receive and delete messages, purge a queue, read queue attributes, and list, create or delete queues.

Action Communication v1

The AWS SQS node lets you send, receive, and manage messages in Amazon Simple Queue Service queues directly from a BusyBot workflow. You can build async task pipelines where one workflow pushes jobs into a queue and another polls, processes, and deletes them using receipt handles. It handles both Standard and FIFO queues, including batch sends, queue creation, purging, and attribute inspection.

Works as
Action
Tool name
aws_sqs
Parameters
12
Outputs
Output, Error
Credentials
AWS SQS
Official docs
AWS SQS docs docs.aws.amazon.com

What you can build with AWS SQS

  • Send a message to an SQS queue after processing an order.
  • Receive messages from a queue for batch processing.
  • Delete a processed message from the queue using its receipt handle.
  • Purge all messages from a dead-letter queue.
  • List all SQS queues in an AWS account.
  • Create a new FIFO queue for ordered processing.
  • Get queue attributes to check message counts and configuration.

Overview

AWS SQS (Simple Queue Service) is a fully managed message queuing service. This tool supports sending messages (including batch), receiving messages, deleting messages, purging queues, getting queue attributes, listing queues, creating queues, and deleting queues. Supports both Standard and FIFO queues with message attributes, deduplication IDs, and message group IDs.

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires AWS SQS credentials. See the Credentials Guide for setup instructions.

Operations

OperationValueDescription
Send MessagesendMessageSend a message to a queue
Send Message BatchsendMessageBatchSend up to 10 messages in a single batch
Receive MessagereceiveMessageReceive messages from a queue
Delete MessagedeleteMessageDelete a message from a queue
Purge QueuepurgeQueueDelete all messages in a queue
Get Queue AttributesgetQueueAttributesGet attributes of a queue
List QueueslistQueuesList all SQS queues
Create QueuecreateQueueCreate a new SQS queue
Delete QueuedeleteQueueDelete an SQS queue

Parameters

Send Message (sendMessage)

ParameterTypeRequiredDefaultDescription
Queue URLstringYes—The full URL of the SQS queue (e.g. https://sqs.us-east-1.amazonaws.com/123456789012/my-queue). Find in the AWS Console under SQS > Queues. Supports expressions.
Queue TypeoptionsNostandardThe type of queue. FIFO queues require MessageGroupId and optionally MessageDeduplicationId.
Options: standard (best-effort ordering, at-least-once delivery), fifo (exactly-once processing, strict ordering)
Send Input DatabooleanNotrueWhether to send the input item JSON as the message body. When false, use the Message parameter instead.
MessagestringYes—The message body to send to the queue. (shown when Send Input Data is false)
Message Group IDstringYes—Tag that specifies that a message belongs to a specific message group. Required for FIFO queues. (shown when Queue Type is fifo)

Send Message Batch (sendMessageBatch)

ParameterTypeRequiredDefaultDescription
Queue URLstringYes—The full URL of the SQS queue (e.g. https://sqs.us-east-1.amazonaws.com/123456789012/my-queue). Find in the AWS Console under SQS > Queues. Supports expressions.
Queue TypeoptionsNostandardThe type of queue. FIFO queues require MessageGroupId and optionally MessageDeduplicationId.
Options: standard (best-effort ordering, at-least-once delivery), fifo (exactly-once processing, strict ordering)
Message Group IDstringYes—Tag that specifies that a message belongs to a specific message group. Required for FIFO queues. (shown when Queue Type is fifo)

Receive Message (receiveMessage)

ParameterTypeRequiredDefaultDescription
Queue URLstringYes—The full URL of the SQS queue (e.g. https://sqs.us-east-1.amazonaws.com/123456789012/my-queue). Find in the AWS Console under SQS > Queues. Supports expressions.

Delete Message (deleteMessage)

ParameterTypeRequiredDefaultDescription
Queue URLstringYes—The full URL of the SQS queue (e.g. https://sqs.us-east-1.amazonaws.com/123456789012/my-queue). Find in the AWS Console under SQS > Queues. Supports expressions.
Receipt HandlestringYes—The receipt handle of the message to delete. Obtained from a previous ReceiveMessage call.

Purge Queue (purgeQueue)

ParameterTypeRequiredDefaultDescription
Queue URLstringYes—The full URL of the SQS queue (e.g. https://sqs.us-east-1.amazonaws.com/123456789012/my-queue). Find in the AWS Console under SQS > Queues. Supports expressions.

Get Queue Attributes (getQueueAttributes)

ParameterTypeRequiredDefaultDescription
Queue URLstringYes—The full URL of the SQS queue (e.g. https://sqs.us-east-1.amazonaws.com/123456789012/my-queue). Find in the AWS Console under SQS > Queues. Supports expressions.

List Queues (listQueues)

ParameterTypeRequiredDefaultDescription
Queue PrefixstringNo—Filter queues whose name begins with this prefix.

Create Queue (createQueue)

ParameterTypeRequiredDefaultDescription
Queue NamestringYes—The name for the new queue. FIFO queue names must end with “.fifo”.
Queue TypeoptionsNostandardThe type of queue. FIFO queues require MessageGroupId and optionally MessageDeduplicationId.
Options: standard (best-effort ordering, at-least-once delivery), fifo (exactly-once processing, strict ordering)

Delete Queue (deleteQueue)

ParameterTypeRequiredDefaultDescription
Queue URLstringYes—The full URL of the SQS queue (e.g. https://sqs.us-east-1.amazonaws.com/123456789012/my-queue). Find in the AWS Console under SQS > Queues. Supports expressions.

All Operations

ParameterTypeRequiredDefaultDescription
RegionstringNo—AWS region override. If empty, uses the region from credentials.
OptionscollectionNo{}Additional configuration options. Which of them apply depends on the operation.
— Delay SecondsnumberNo0The number of seconds to delay message delivery. Only for standard queues (0-900). (shown when Operation is sendMessage, sendMessageBatch and Queue Type is standard)
— Message Deduplication IDstringNo—Token used for deduplication of sent messages. Only for FIFO queues. (shown when Operation is sendMessage, sendMessageBatch and Queue Type is fifo)
— Message AttributesfixedCollectionNo{}Custom attributes to attach to the message. (shown when Operation is sendMessage, sendMessageBatch)
— — String: NamestringNo—Name of the attribute
— — String: ValuestringNo—String value of the attribute
— — Number: NamestringNo—Name of the attribute
— — Number: ValuenumberNo0Number value of the attribute
— Max Number of MessagesnumberNo1Maximum number of messages to receive (1-10). (shown when Operation is receiveMessage)
— Visibility TimeoutnumberNo30Duration (in seconds) that received messages are hidden from subsequent receive requests (0-43200). (shown when Operation is receiveMessage)
— Wait Time SecondsnumberNo0Duration (in seconds) for long polling. 0 = short polling (0-20). (shown when Operation is receiveMessage)
— Receive Message AttributesbooleanNofalseWhether to include custom message attributes in received messages. (shown when Operation is receiveMessage)
— Create Queue AttributesjsonNo{}JSON object of queue attributes for createQueue. Keys: DelaySeconds, MaximumMessageSize, MessageRetentionPeriod, ReceiveMessageWaitTimeSeconds, VisibilityTimeout, FifoQueue, ContentBasedDeduplication, etc. (shown when Operation is createQueue)
Max ConcurrencynumberNo10Maximum number of items to process concurrently.

Output Data

One output item per input item. The SQS response is merged into the item JSON — the incoming fields pass through and binary data is forwarded — so a field the response does not set keeps whatever the upstream node put there.

OperationFields added to the item
sendMessageMessageId, MD5OfMessageBody, MD5OfMessageAttributes, and SequenceNumber on FIFO queues
sendMessageBatchSuccessful (one entry per accepted message) and Failed (one entry per rejected message)
receiveMessageMessages and MessageCount. Each message keeps its SQS fields (MessageId, ReceiptHandle, Body, Attributes, and MessageAttributes when Receive Message Attributes is on) and gains ParsedBody — the body parsed as JSON, or the raw string when it is not JSON. An empty poll returns Messages: [] and MessageCount: 0
deleteMessagesuccess: true and deletedReceiptHandle
purgeQueuesuccess: true and purgedQueueUrl
getQueueAttributesQueueUrl and Attributes — the full queue attribute set, with numeric attributes such as ApproximateNumberOfMessages and VisibilityTimeout returned as numbers rather than strings
listQueuesQueueUrls (every page, followed to the end), QueueCount, and Queues — one { url, name } entry per queue
createQueueQueueUrl and QueueName
deleteQueuesuccess: true and deletedQueueUrl

List and receive results arrive as arrays on a single item — use a Split Out node on Messages or Queues to fan them out. Reference any field downstream by expression, e.g. {{ $json.MessageId }}.

Example Configuration

Send a literal message to a standard queue with custom attributes:

{
  "type": "aws_sqs",
  "parameters": {
    "operation": "sendMessage",
    "queueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/my-standard-queue",
    "queueType": "standard",
    "sendInputData": false,
    "message": "Hello from AWS SQS!",
    "options": {
      "delaySeconds": 0,
      "messageAttributes": {
        "string": [
          { "name": "Environment", "value": "production" },
          { "name": "Source", "value": "workflow" }
        ],
        "number": [
          { "name": "Priority", "value": 1 }
        ]
      }
    }
  }
}

Send the whole input item to a FIFO queue:

{
  "type": "aws_sqs",
  "parameters": {
    "operation": "sendMessage",
    "queueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/my-fifo-queue.fifo",
    "queueType": "fifo",
    "sendInputData": true,
    "messageGroupId": "{{ $json.customerId }}",
    "options": {
      "messageDeduplicationId": "{{ $json.orderId }}"
    }
  }
}

Receive messages with long polling:

{
  "type": "aws_sqs",
  "parameters": {
    "operation": "receiveMessage",
    "queueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue",
    "options": {
      "maxNumberOfMessages": 10,
      "visibilityTimeout": 60,
      "waitTimeSeconds": 20,
      "receiveMessageAttributes": true
    }
  }
}

Delete a message once it has been processed:

{
  "type": "aws_sqs",
  "parameters": {
    "operation": "deleteMessage",
    "queueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue",
    "receiptHandle": "{{ $json.ReceiptHandle }}"
  }
}

Create a FIFO queue with content-based deduplication:

{
  "type": "aws_sqs",
  "parameters": {
    "operation": "createQueue",
    "queueName": "my-new-fifo-queue.fifo",
    "queueType": "fifo",
    "options": {
      "createQueueAttributes": "{\"ContentBasedDeduplication\":\"true\",\"VisibilityTimeout\":\"60\"}"
    }
  }
}

List queues in another region, filtered by name prefix:

{
  "type": "aws_sqs",
  "parameters": {
    "operation": "listQueues",
    "queuePrefix": "production-",
    "region": "us-west-2"
  }
}

Send a batch of up to 10 messages taken from the item’s messages array:

{
  "type": "aws_sqs",
  "parameters": {
    "operation": "sendMessageBatch",
    "queueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/my-fifo-queue.fifo",
    "queueType": "fifo",
    "messageGroupId": "batch-group-1"
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

AWS SQS sends, receives and deletes messages in Amazon SQS queues, and creates, lists, purges and inspects the queues themselves. It is the right tool when a workflow must hand work to a queue, pull messages off one for processing, or manage standard and FIFO queues, rather than call a service directly or post to a topic. It returns message IDs for sends, received messages with their receipt handles and attributes, queue URLs and attributes, and the queue list as JSON items.

Behavior notes

  • Send Message Batch reads the item, not a parameter. It takes the array at messages on the input item, or falls back to the item itself as a single entry, and sends at most the first 10.
  • Send Input Data controls the body. With it on, the whole input item is JSON-stringified as the message body; with it off, the Message parameter is sent as-is.
  • Create Queue and FIFO. Selecting the FIFO queue type sets the FifoQueue attribute for you and appends .fifo to the queue name if you left it off.
  • List Queues follows pagination to the end and returns every matching queue in one item.

Common patterns

  • Standard queue processing: receive with long polling (waitTimeSeconds: 20), process the messages in your workflow, then delete each one with its receipt handle.
  • FIFO queues: always set a Message Group ID on send operations, add a Message Deduplication ID when the queue does not use content-based deduplication, and remember that queue names must end with .fifo.
  • Queue lifecycle: create with the attributes you need, monitor with Get Queue Attributes, then clean up with Purge Queue (removes the messages) or Delete Queue (removes the queue itself).
  • Visibility timeout: set it long enough to cover your processing time, otherwise a message reappears in the queue and is delivered again before you finish with it.

Frequently asked questions

What credentials do I need to connect to AWS SQS?

You need an AWS SQS credential (type `awsSqsApi`) configured in BusyBot. This typically means an AWS access key ID and secret access key with IAM permissions scoped to the SQS actions your workflow uses. No other credential type is accepted by this node.

How does Send Message Batch decide what to send?

Send Message Batch reads the `messages` array from the input item — if that field doesn't exist, it treats the item itself as a single entry. It sends at most the first 10 messages, which is the SQS batch limit. Make sure your upstream node shapes the data into a `messages` array if you want to send multiple messages in one call.

What's the difference between 'Send Input Data' being on vs. off?

When Send Input Data is enabled, the entire input item is JSON-stringified and used as the message body — useful for forwarding structured workflow data downstream. When it's off, only the value you provide in the Message parameter is sent. If you're passing through records from a database or API, enabling Send Input Data is usually the faster path.

What do I need to set up correctly to use a FIFO queue?

FIFO queue names must end in `.fifo` — the node appends this automatically if you omit it during queue creation, and it sets the `FifoQueue` attribute for you. On every send operation, you must supply a Message Group ID. If your queue doesn't use content-based deduplication, you also need to provide a Message Deduplication ID on each send to avoid duplicates being rejected.

How do I make sure a received message isn't redelivered while I'm still processing it?

SQS makes a received message temporarily invisible to other consumers for a period called the visibility timeout. If your workflow takes longer than that window to finish and delete the message, SQS will redeliver it. Set the visibility timeout long enough to cover your full processing time — and once you're done, delete the message using its receipt handle to remove it from the queue permanently.

Build with AWS SQS

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need AWS SQS credentials first.

Open BusyBot

Last reviewed . Spotted something wrong? Tell us.