npm package: @gallabox/n8n-nodes-gallabox
Description: n8n nodes for Gallabox WhatsApp Business platform
Author: Yogesh
Latest version: 0.1.0

# n8n-nodes-gallabox

An n8n community node package for integrating with the [Gallabox](https://gallabox.com) WhatsApp Business platform.

## Overview

This package provides two nodes:

- **Gallabox** – Perform actions against the Gallabox REST API (contacts, conversations, messages, templates, users)
- **Gallabox Trigger** – Listen for webhook events from Gallabox and start workflows automatically

## Prerequisites

- n8n >= 0.187.0
- A Gallabox account with API access
- Your Gallabox Account ID, API Key, API Secret, and Channel ID

## Installation

### Community Nodes (Recommended)

In your n8n instance go to **Settings → Community Nodes → Install** and search for `n8n-nodes-gallabox`.

### Manual Install

```bash
npm install n8n-nodes-gallabox
```

Then restart n8n.

## Credentials Setup

Create a new **Gallabox API** credential with the following fields:

| Field | Description |
|---|---|
| Account ID | Your Gallabox account identifier |
| API Key | Found under Gallabox Settings → API |
| API Secret | Found under Gallabox Settings → API |
| Channel ID | Your WhatsApp channel ID in Gallabox |

The credential is tested against `GET /accounts/{accountId}/users` on save.

## Resources and Operations

### Contact

| Operation | Description |
|---|---|
| Create | Create a new contact |
| Get | Get a contact by ID |
| Upsert | Create or update a contact by phone number |

### Conversation

| Operation | Description |
|---|---|
| Get | Get a conversation by ID |
| Get All | List conversations with optional status/assignee filters |
| Assign | Assign a conversation to a user |
| Unassign | Remove the current assignee from a conversation |
| Resolve | Mark a conversation as resolved |
| Reopen | Reopen a resolved conversation |

### Message

| Operation | Description |
|---|---|
| Send Text | Send a plain text WhatsApp message |
| Send Template | Send an approved WhatsApp template message |
| Send Interactive | Send a button-based interactive message |
| Send Media | Send an image, video, or document |

### Template

| Operation | Description |
|---|---|
| Get | Get a template by ID |
| Get All | List all templates |

### User

| Operation | Description |
|---|---|
| Get Me | Get the currently authenticated user |
| Get All | List all users in the account |
| Update Availability | Set a user's availability (online / offline / busy) |

## Trigger Events

The **Gallabox Trigger** node supports the following webhook events:

**Contact:** `contact.created`, `contact.updated`, `contact.mapped`, `contact.unmapped`

**Conversation:** `conversation.created`, `conversation.updated`, `conversation.UnAttended`, `conversation.Tag.mapped`, `conversation.Tag.unmapped`

**Message:** `message.received`, `message.flow.received`, `message.WA.status.received`, `message.WA.status.failed`, `message.WA.Interaction.Received`, `message.WA.Cart.received`, `message.WA.Payment.status.received`

**Template:** `template.status`

### Setting Up Webhooks in Gallabox

1. Activate the **Gallabox Trigger** node in n8n — a webhook URL will be displayed.
2. Copy the webhook URL.
3. In your Gallabox dashboard go to **Settings → Webhooks**.
4. Paste the URL and select the events you want to forward.
5. Save. Gallabox will now POST event payloads to your n8n workflow.

## Development

```bash
# Install dependencies
npm install

# Compile TypeScript
npm run build

# Watch for changes
npm run dev

# Lint
npm run lint

# Auto-fix lint issues
npm run lintfix
```

The compiled output lands in `dist/`. The SVG icon is copied automatically during build.

## License

MIT