# Amazon SQS

> Send, receive and delete messages in Amazon SQS queues, create and configure standard and FIFO queues, and redrive dead-letter queues.

App · Cloud Computing · 20 actions. Web page: https://docs.lodol.com/docs/integrations/amazon-sqs

## Actions

### Cancel dead-letter redrive

Stop a running redrive. Messages already moved stay where they are; only a RUNNING task can be cancelled.

**Inputs**

- Task handle (`task_handle`, text, required): The task_handle from Start dead-letter redrive, or running_task_handle from List dead-letter redrives.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "approximate_number_of_messages_moved": 4,
    "cancelled": true,
    "task_handle": "eyJ0YXNrSWQiOiJkYzE2OWUwNC0wZTU1LTQ0ZDItYWE5MC1jMDgwY2ExZjM2ZjciLCJzb3VyY2VBcm4iOiJhcm46YXdzOnNxczp1cy1lYXN0LTE6MTIzNDU2Nzg5MDEyOm9yZGVycy1kbHEifQ=="
  }
}
```

### Change message visibility

Give a received message more (or less) time before it reappears for other receivers. Set 0 to release it immediately. The clock restarts from now.

**Inputs**

- Queue (`queue`, text, required): Pick a queue, or enter its URL, ARN or name. It must be in the region you connected with.
- Receipt handle (`receipt_handle`, text, required): The receipt_handle from the Receive messages step (not the message id). It is only valid until the message's visibility timeout ends.
- Visibility timeout (seconds) (`visibility_timeout`, number, required): Seconds from now until the message reappears, 0-43200. From 0 to 43200.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "changed": true,
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders",
    "visibility_timeout": 120
  }
}
```

### Create queue

Create a standard or FIFO queue. If a queue with this name already exists with exactly these settings, it is returned instead; with different settings the step fails. A new queue can take a second before it accepts messages.

**Inputs**

- Queue name (`queue_name`, text, required): Up to 80 letters, digits, '-' and '_'. For a FIFO queue '.fifo' is added if you leave it off.
- FIFO queue (`fifo_queue`, true/false): Keep messages in order and deliver each exactly once. Cannot be changed after the queue is created. Default: `false`.
- Visibility timeout (seconds) (`visibility_timeout`, number): How long a received message stays hidden from other receivers before it reappears, 0-43200. New queues default to 30. From 0 to 43200.
- Delivery delay (seconds) (`delay_seconds`, number): How long every new message waits before it can be received, 0-900. New queues default to 0. From 0 to 900.
- Message retention (seconds) (`message_retention_period`, number): How long SQS keeps an undeleted message, 60 (1 minute) to 1209600 (14 days). New queues default to 345600 (4 days). From 60 to 1209600.
- Maximum message size (bytes) (`maximum_message_size`, number): The largest message the queue accepts, 1024-1048576. New queues default to 1048576 (1 MiB). From 1024 to 1048576.
- Receive wait time (seconds) (`receive_message_wait_time_seconds`, number): Default long-poll wait for Receive messages, 0-20. Above 0 reduces empty receives. New queues default to 0. From 0 to 20.
- Content-based deduplication (`content_based_deduplication`, true/false): FIFO queues only: treat messages with the same body as duplicates, so a deduplication id is not needed on send.
- Dead-letter queue (`dead_letter_queue`, text): A queue to move messages to after they have been received 'Max receive count' times without being deleted. It must be the same type (standard or FIFO) and in the same region.
- Max receive count (`max_receive_count`, number): With a dead-letter queue: receives before a message moves there, 1-1000. Default 10. From 1 to 1000.
- Tags (`tags`, object): Cost-allocation tags as key: value pairs.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "fifo_queue": false,
    "queue_arn": "arn:aws:sqs:us-east-1:123456789012:orders",
    "queue_name": "orders",
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders"
  }
}
```

### Delete message

Remove a received message from the queue, so it is not delivered again. Use the receipt handle, not the message id.

**Inputs**

- Queue (`queue`, text, required): Pick a queue, or enter its URL, ARN or name. It must be in the region you connected with.
- Receipt handle (`receipt_handle`, text, required): The receipt_handle from the Receive messages step (not the message id). It is only valid until the message's visibility timeout ends.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "deleted": true,
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders"
  }
}
```

### Delete messages (batch)

Remove up to 10 received messages in one call - pass the 'receipt_handles' of a Receive messages step. Fails only when none could be deleted.

**Inputs**

- Queue (`queue`, text, required): Pick a queue, or enter its URL, ARN or name. It must be in the region you connected with.
- Receipt handles (`receipt_handles`, list, required): 1-10 receipt handles from Receive messages.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "deleted_receipt_handles": [
      "AQEBzWwaftRI0KuVm4tP+/7q1rGgNqicHq..."
    ],
    "failed": [],
    "failed_count": 0,
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders",
    "successful_count": 1
  }
}
```

### Delete queue

Delete a queue and every message in it. There is no undo, and the name cannot be reused for 60 seconds.

**Inputs**

- Queue (`queue`, text, required): Pick a queue, or enter its URL, ARN or name. It must be in the region you connected with.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "deleted": true,
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders"
  }
}
```

### Get queue details

Read a queue's settings, ARN and approximate message counts (the counts can lag by about a minute).

**Inputs**

- Queue (`queue`, text, required): Pick a queue, or enter its URL, ARN or name. It must be in the region you connected with.
- Attributes (`attribute_names`, list): Which attributes to read. Leave empty for all. One or more of: `Policy`, `VisibilityTimeout`, `MaximumMessageSize`, `MessageRetentionPeriod`, `ApproximateNumberOfMessages`, `ApproximateNumberOfMessagesNotVisible`, `CreatedTimestamp`, `LastModifiedTimestamp`, `QueueArn`, `ApproximateNumberOfMessagesDelayed`, and 11 more.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "attributes": {
      "ApproximateNumberOfMessages": "3",
      "QueueArn": "arn:aws:sqs:us-east-1:123456789012:orders",
      "VisibilityTimeout": "30"
    },
    "queue": {
      "approximate_number_of_messages": 3,
      "approximate_number_of_messages_delayed": 0,
      "approximate_number_of_messages_not_visible": 0,
      "content_based_deduplication": null,
      "created_at": "2026-09-22T08:00:00Z",
      "dead_letter_target_arn": "arn:aws:sqs:us-east-1:123456789012:orders-dlq",
      "deduplication_scope": null,
      "delay_seconds": 0,
      "fifo_queue": null,
      "fifo_throughput_limit": null,
      "kms_data_key_reuse_period_seconds": null,
      "kms_master_key_id": null,
      "last_modified_at": "2026-09-22T08:00:00Z",
      "max_receive_count": 5,
      "maximum_message_size": 1048576,
      "message_retention_period": 345600,
      "policy": null,
      "queue_arn": "arn:aws:sqs:us-east-1:123456789012:orders",
      "receive_message_wait_time_seconds": 0,
      "redrive_allow_policy": null,
      "redrive_policy": {
        "deadLetterTargetArn": "arn:aws:sqs:us-east-1:123456789012:orders-dlq",
        "maxReceiveCount": 5
      },
      "sqs_managed_sse_enabled": true,
      "visibility_timeout": 30
    },
    "queue_name": "orders",
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders"
  }
}
```

### Get queue URL

Look up a queue's URL and ARN from its name. Also works for another account's queue that you have been given access to.

**Inputs**

- Queue name (`queue_name`, text, required): The queue's exact name, for example 'orders' or 'orders.fifo'.
- Owner account id (`queue_owner_account_id`, text): Only for a queue in another AWS account: that account's 12-digit id.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "queue_arn": "arn:aws:sqs:us-east-1:123456789012:orders",
    "queue_name": "orders",
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders"
  }
}
```

### List dead-letter redrives

The most recent redrive tasks for a dead-letter queue, newest first, with their progress.

**Inputs**

- Dead-letter queue (`source_queue`, text, required): The dead-letter queue the redrives moved messages from.
- Max results (`max_results`, number): How many tasks, 1-10. Default 1 (the latest). From 1 to 10.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "count": 1,
    "running_task_handle": "eyJ0YXNrSWQiOiJkYzE2OWUwNC0wZTU1LTQ0ZDItYWE5MC1jMDgwY2ExZjM2ZjciLCJzb3VyY2VBcm4iOiJhcm46YXdzOnNxczp1cy1lYXN0LTE6MTIzNDU2Nzg5MDEyOm9yZGVycy1kbHEifQ==",
    "source_arn": "arn:aws:sqs:us-east-1:123456789012:orders-dlq",
    "tasks": [
      {
        "approximate_number_of_messages_moved": 4,
        "approximate_number_of_messages_to_move": 10,
        "destination_arn": null,
        "failure_reason": null,
        "max_number_of_messages_per_second": 1,
        "source_arn": "arn:aws:sqs:us-east-1:123456789012:orders-dlq",
        "started_at": "2026-09-22T08:05:00Z",
        "status": "RUNNING",
        "task_handle": "eyJ0YXNrSWQiOiJkYzE2OWUwNC0wZTU1LTQ0ZDItYWE5MC1jMDgwY2ExZjM2ZjciLCJzb3VyY2VBcm4iOiJhcm46YXdzOnNxczp1cy1lYXN0LTE6MTIzNDU2Nzg5MDEyOm9yZGVycy1kbHEifQ=="
      }
    ]
  }
}
```

### List dead-letter source queues

List the queues that send their failed messages to this dead-letter queue.

**Inputs**

- Queue (`queue`, text, required): The dead-letter queue. Pick it, or enter its URL, ARN or name.
- Max results (`max_results`, number): How many queues per page, 1-1000. Default 1000. From 1 to 1000.
- Next token (`next_token`, text): The 'next_token' from a previous page, to read the next one.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "count": 1,
    "has_more": false,
    "next_token": null,
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders-dlq",
    "queues": [
      {
        "queue_name": "orders",
        "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders"
      }
    ]
  }
}
```

### List queue tags

Read a queue's cost-allocation tags.

**Inputs**

- Queue (`queue`, text, required): Pick a queue, or enter its URL, ARN or name. It must be in the region you connected with.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "count": 1,
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders",
    "tags": {
      "team": "payments"
    }
  }
}
```

### List queues

List the queues in the connected region, optionally only those whose name starts with a prefix.

**Inputs**

- Name prefix (`queue_name_prefix`, text): Only queues whose name starts with this (case-sensitive).
- Max results (`max_results`, number): How many queues per page, 1-1000. Default 1000. From 1 to 1000.
- Next token (`next_token`, text): The 'next_token' from a previous page, to read the next one.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "count": 1,
    "has_more": false,
    "next_token": null,
    "queue_urls": [
      "https://sqs.us-east-1.amazonaws.com/123456789012/orders"
    ],
    "queues": [
      {
        "queue_name": "orders",
        "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders"
      }
    ]
  }
}
```

### Purge queue

Delete every message in a queue, including ones currently being processed. The queue itself stays. There is no undo, and a queue can be purged at most once a minute.

**Inputs**

- Queue (`queue`, text, required): Pick a queue, or enter its URL, ARN or name. It must be in the region you connected with.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "purged": true,
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders"
  }
}
```

### Receive messages

Receive up to 10 messages. Receiving does not remove them: each stays hidden for the visibility timeout and then reappears, so follow this with Delete message once it is handled. With no wait time SQS may return fewer messages than the queue holds, or none - set a wait time to long-poll.

**Inputs**

- Queue (`queue`, text, required): Pick a queue, or enter its URL, ARN or name. It must be in the region you connected with.
- Max messages (`max_number_of_messages`, number): How many to receive at most, 1-10. Default 1. From 1 to 10.
- Wait time (seconds) (`wait_time_seconds`, number): Wait up to this long for a message to arrive, 0-20. Leave empty to use the queue's own setting. From 0 to 20.
- Visibility timeout (seconds) (`visibility_timeout`, number): How long these messages stay hidden, 0-43200. Leave empty to use the queue's own setting. From 0 to 43200.
- Message attributes to return (`message_attribute_names`, list): Names of message attributes to include; a name ending in '.*' matches a prefix. Leave empty for all.
- System attributes to return (`message_system_attribute_names`, list): Which SQS system attributes to include. Leave empty for all. One or more of: `SenderId`, `SentTimestamp`, `ApproximateReceiveCount`, `ApproximateFirstReceiveTimestamp`, `SequenceNumber`, `MessageDeduplicationId`, `MessageGroupId`, `AWSTraceHeader`, `DeadLetterQueueSourceArn`.
- Receive attempt id (`receive_request_attempt_id`, text): FIFO queues only: reuse the same id to retry a receive that timed out and get the same messages back.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "count": 1,
    "messages": [
      {
        "attributes": {
          "ApproximateFirstReceiveTimestamp": "1790064065456",
          "ApproximateReceiveCount": "1",
          "SenderId": "AIDASSYFHUBOBT7F4XT75",
          "SentTimestamp": "1790064062123"
        },
        "body": "{\"order_id\": 1042, \"status\": \"paid\"}",
        "body_json": {
          "order_id": 1042,
          "status": "paid"
        },
        "dead_letter_queue_source_arn": null,
        "first_received_at": "2026-09-22T08:01:05.456000Z",
        "md5_of_body": "fafb00f5732ab283681e124bf8747ed1",
        "message_attributes": {
          "source": "checkout"
        },
        "message_deduplication_id": null,
        "message_group_id": null,
        "message_id": "5fea7756-0ea4-451a-a703-a558b933e274",
        "receipt_handle": "AQEBzWwaftRI0KuVm4tP+/7q1rGgNqicHq...",
        "receive_count": 1,
        "sender_id": "AIDASSYFHUBOBT7F4XT75",
        "sent_at": "2026-09-22T08:01:02.123000Z",
        "sequence_number": null
      }
    ],
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders",
    "receipt_handles": [
      "AQEBzWwaftRI0KuVm4tP+/7q1rGgNqicHq..."
    ]
  }
}
```

### Remove queue tags

Remove tags from a queue by key. A key the queue does not have is ignored.

**Inputs**

- Queue (`queue`, text, required): Pick a queue, or enter its URL, ARN or name. It must be in the region you connected with.
- Tag keys (`tag_keys`, list, required): The keys of the tags to remove.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders",
    "removed_tag_keys": [
      "team"
    ],
    "untagged": true
  }
}
```

### Send message

Send one message to a queue (up to 1 MiB).

**Inputs**

- Queue (`queue`, text, required): Pick a queue, or enter its URL, ARN or name. It must be in the region you connected with.
- Message (`message_body`, text, required): The message text. Pick an object from an earlier step to send it as JSON.
- Message attributes (`message_attributes`, object): Up to 10 name: value pairs sent alongside the body, for consumers to filter on. Numbers are sent as SQS Number attributes.
- Delay (seconds) (`delay_seconds`, number): Hide this message for this long after sending, 0-900. Standard queues only; FIFO queues use the queue's delay. From 0 to 900.
- Message group id (`message_group_id`, text): Required for a FIFO queue: messages with the same group id are delivered in order. Optional on a standard queue.
- Deduplication id (`message_deduplication_id`, text): FIFO queues only: a message with the same id sent within 5 minutes is dropped as a duplicate. Not needed when the queue has content-based deduplication.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "md5_of_message_attributes": null,
    "md5_of_message_body": "fafb00f5732ab283681e124bf8747ed1",
    "message_id": "5fea7756-0ea4-451a-a703-a558b933e274",
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders",
    "sequence_number": null
  }
}
```

### Send messages (batch)

Send up to 10 messages in one call. Each item is a message body (objects are sent as JSON). If some fail, the step still succeeds and lists them under 'failed'; it fails only when none were sent.

**Inputs**

- Queue (`queue`, text, required): Pick a queue, or enter its URL, ARN or name. It must be in the region you connected with.
- Messages (`messages`, list, required): 1-10 messages. Text or objects; an object with a 'body' key may also set 'id', 'delay_seconds', 'message_group_id', 'message_deduplication_id' and 'message_attributes' for that message.
- Message group id (`message_group_id`, text): For a FIFO queue: the group for every message that does not set its own.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "failed": [],
    "failed_count": 0,
    "message_ids": [
      "5fea7756-0ea4-451a-a703-a558b933e274"
    ],
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders",
    "successful": [
      {
        "id": "msg-1",
        "md5_of_message_body": "fafb00f5732ab283681e124bf8747ed1",
        "message_id": "5fea7756-0ea4-451a-a703-a558b933e274",
        "sequence_number": null
      }
    ],
    "successful_count": 1
  }
}
```

### Start dead-letter redrive

Move the messages in a dead-letter queue back to the queues they came from, or to another queue (a "DLQ redrive"). Runs in the background; one per queue at a time.

**Inputs**

- Dead-letter queue (`source_queue`, text, required): The dead-letter queue to empty. Another queue's dead-letter setting must point at it.
- Destination queue (`destination_queue`, text): Where to move the messages. Leave empty to send each back to the queue it originally came from.
- Max messages per second (`max_number_of_messages_per_second`, number): Rate limit for the move, 1-500. Leave empty to let SQS choose. From 1 to 500.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "destination_arn": null,
    "source_arn": "arn:aws:sqs:us-east-1:123456789012:orders-dlq",
    "task_handle": "eyJ0YXNrSWQiOiJkYzE2OWUwNC0wZTU1LTQ0ZDItYWE5MC1jMDgwY2ExZjM2ZjciLCJzb3VyY2VBcm4iOiJhcm46YXdzOnNxczp1cy1lYXN0LTE6MTIzNDU2Nzg5MDEyOm9yZGVycy1kbHEifQ=="
  }
}
```

### Tag queue

Add tags to a queue. A key that already exists gets the new value; other tags are left alone.

**Inputs**

- Queue (`queue`, text, required): Pick a queue, or enter its URL, ARN or name. It must be in the region you connected with.
- Tags (`tags`, object, required): Tags as key: value pairs (at most 50 per queue).

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders",
    "tagged": true,
    "tags": {
      "team": "payments"
    }
  }
}
```

### Update queue settings

Change a queue's settings. Only the fields you fill in are changed. Changes can take up to a minute to apply (message retention up to 15 minutes).

**Inputs**

- Queue (`queue`, text, required): Pick a queue, or enter its URL, ARN or name. It must be in the region you connected with.
- Visibility timeout (seconds) (`visibility_timeout`, number): How long a received message stays hidden from other receivers before it reappears, 0-43200. New queues default to 30. From 0 to 43200.
- Delivery delay (seconds) (`delay_seconds`, number): How long every new message waits before it can be received, 0-900. New queues default to 0. From 0 to 900.
- Message retention (seconds) (`message_retention_period`, number): How long SQS keeps an undeleted message, 60 (1 minute) to 1209600 (14 days). New queues default to 345600 (4 days). From 60 to 1209600.
- Maximum message size (bytes) (`maximum_message_size`, number): The largest message the queue accepts, 1024-1048576. New queues default to 1048576 (1 MiB). From 1024 to 1048576.
- Receive wait time (seconds) (`receive_message_wait_time_seconds`, number): Default long-poll wait for Receive messages, 0-20. Above 0 reduces empty receives. New queues default to 0. From 0 to 20.
- Content-based deduplication (`content_based_deduplication`, true/false): FIFO queues only: treat messages with the same body as duplicates, so a deduplication id is not needed on send.
- Dead-letter queue (`dead_letter_queue`, text): A queue to move messages to after they have been received 'Max receive count' times without being deleted. It must be the same type (standard or FIFO) and in the same region.
- Max receive count (`max_receive_count`, number): With a dead-letter queue: receives before a message moves there, 1-1000. Default 10. From 1 to 1000.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "attributes": {
      "VisibilityTimeout": "60"
    },
    "queue_url": "https://sqs.us-east-1.amazonaws.com/123456789012/orders",
    "updated": true,
    "updated_attributes": [
      "VisibilityTimeout"
    ]
  }
}
```
