Reference · Tools

AWS SQS

Send, receive, and manage messages in Amazon Simple Queue Service (SQS) 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.

Node type
Action
Parameters
12
Outputs
Output, Error
Credentials
AWS SQS

AWS SQS

Send, receive, and manage messages in Amazon SQS queues.

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.

Category: Communication
Tool Name: aws_sqs
Version: 1

Appearance: Icon: lucide-MessageSquare | Color: #FF9900

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 URLstringYesThe 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.
MessagestringYesThe message body to send to the queue. (shown when Send Input Data is false)
Message Group IDstringYesTag 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 URLstringYesThe 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 IDstringYesTag 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 URLstringYesThe 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 URLstringYesThe 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 HandlestringYesThe receipt handle of the message to delete. Obtained from a previous ReceiveMessage call.

Purge Queue (purgeQueue)

ParameterTypeRequiredDefaultDescription
Queue URLstringYesThe 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 URLstringYesThe 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 PrefixstringNoFilter queues whose name begins with this prefix.

Create Queue (createQueue)

ParameterTypeRequiredDefaultDescription
Queue NamestringYesThe 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 URLstringYesThe 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
RegionstringNoAWS 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 IDstringNoToken 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: NamestringNoName of the attribute
— — String: ValuestringNoString value of the attribute
— — Number: NamestringNoName 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 }}.

Usage Examples

  • 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

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 manages messages in Amazon Simple Queue Service queues. Use it for asynchronous message processing, task queuing, and decoupling microservices.

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 the AWS SQS node

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 updated . Spotted something wrong? Tell us.