<!-- BusyBot node reference — https://busybot.net/tools/amqp/ -->

> Node: AMQP Sender (`amqp`) · Action · v1
> Category: Communication · Credentials: AMQP (`amqpApi`)
> Updated: 2026-08-16

# AMQP Sender

> Send messages to AMQP 1.0 queues and topics.

## Overview

AMQP Sender publishes messages to AMQP 1.0 compatible message brokers (e.g. ActiveMQ, RabbitMQ with AMQP 1.0 plugin, Azure Service Bus). Each input item is sent as a separate message to the configured queue or topic address. Supports application properties (headers), reconnection with configurable limits, sending the full item JSON or a specific property, and sending data as a stringified JSON or as a native AMQP object.

**Category:** Communication  
**Tool Name:** `amqp`  
**Version:** 1

**Appearance:** Icon: `lucide-MessageSquare` | Color: `#0060A0`

## Node Type

**Action** — processes input items and produces output

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **AMQP** credentials.
See the [Credentials Guide](https://busybot.net/credentials/amqp-api/) for setup instructions.

### Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Queue / Topic | `string` | Yes | — | Name of the queue or topic to publish to. Examples: "my-queue", "topic://events.orders", "queue://work-items". Supports expressions, so each item can target a different address. |
| Headers | `json` | No | — | Header parameters as JSON (flat object). Sent as application_properties in the AMQP message metadata. Supports expressions. |
| Options | `collection` | No | `{}` | Connection and message formatting options. |
| — Container ID | `string` | No | — | Custom RHEA container ID. Passed to the AMQP client as container_id. |
| — Data as Object | `boolean` | No | `false` | Whether to send the data as a native AMQP object. When false (default), the body is JSON-stringified. |
| — Reconnect | `boolean` | No | `true` | Whether to automatically reconnect if disconnected from the broker. |
| — Reconnect Limit | `number` | No | `50` | Maximum number of reconnect attempts before failing. |
| — Send Property | `string` | No | — | The only property to send from the item. If empty, the entire item JSON is sent as the message body. |
| Max Concurrency | `number` | No | `5` | Maximum number of items to process concurrently. Lower values recommended since each item opens its own AMQP connection. |

## Output Data

One output item per input item. The original item JSON passes through unchanged and binary data is forwarded; the node adds the delivery details of the message it published:

```json
{
  "_amqpDeliveryId": 1,
  "_amqpSink": "topic://events.orders"
}
```

- `_amqpDeliveryId` is the delivery identifier the broker assigned to the published message.
- `_amqpSink` is the queue or topic address the message actually went to, after expressions in **Queue / Topic** were resolved for that item.

Reference either downstream by expression, e.g. `{{ $json._amqpSink }}`.

## Usage Examples

- Send order events to an ActiveMQ topic for downstream processing
- Publish workflow results to a RabbitMQ queue via AMQP 1.0
- Enqueue messages to Azure Service Bus for async processing
- Push notification payloads to a message broker for fan-out delivery

## Example Configuration

Send each item to a work queue:

```json
{
  "type": "amqp",
  "parameters": {
    "sink": "orders-queue",
    "maxConcurrency": 3
  }
}
```

Publish to a topic with application-property headers:

```json
{
  "type": "amqp",
  "parameters": {
    "sink": "topic://events.orders",
    "headerParametersJson": {
      "messageType": "order.updated",
      "source": "inventory-service",
      "correlationId": "{{ $json.orderId }}"
    },
    "maxConcurrency": 5
  }
}
```

Send only one property of the item, as a native AMQP object, over a tuned connection:

```json
{
  "type": "amqp",
  "parameters": {
    "sink": "queue://high-priority-tasks",
    "headerParametersJson": {
      "priority": "urgent",
      "correlationId": "{{ $json.batchId }}"
    },
    "options": {
      "containerId": "worker-node-01",
      "dataAsObject": true,
      "reconnect": true,
      "reconnectLimit": 20,
      "sendOnlyProperty": "payload"
    },
    "maxConcurrency": 2
  }
}
```

Route each item to the address named in its own data:

```json
{
  "type": "amqp",
  "parameters": {
    "sink": "topic://application.{{ $json.eventType }}",
    "headerParametersJson": {
      "eventType": "{{ $json.eventType }}",
      "version": "v1"
    },
    "options": {
      "containerId": "event-publisher",
      "reconnect": true
    }
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

AMQP Sender publishes messages to AMQP 1.0 queues and topics (ActiveMQ, RabbitMQ AMQP 1.0 plugin, Azure Service Bus). Use it to enqueue work items, send events, or integrate with message-oriented middleware.