# Engage

Engage turns your customers into fans with personalised messaging; using emails, push and in-app notifications, and SMS.

- **Category:** marketing automation
- **Auth:** BASIC
- **Composio Managed App Available?** N/A
- **Tools:** 22
- **Triggers:** 0
- **Slug:** `ENGAGE`
- **Version:** 00000000_00

## Tools

### Add Customer to Accounts

**Slug:** `ENGAGE_ADD_CUSTOMER_TO_ACCOUNTS`

Tool to add a customer to one or more account entities. Use when you need to associate a user with accounts and optionally assign roles.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uid` | string | Yes | User ID of the customer to add to accounts |
| `accounts` | array | Yes | Array of accounts to add the customer to, each with account ID and optional role |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add User to Lists

**Slug:** `ENGAGE_ADD_USER_TO_LISTS`

Tool to add a Customer or Account to one or more Lists in Engage.so. Use when you need to subscribe a user to specific lists for targeted messaging.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uid` | string | Yes | User ID of the Customer or Account to add to lists |
| `lists` | array | Yes | Array of list IDs to add the user to. Each ID should be a valid list identifier. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Archive List

**Slug:** `ENGAGE_ARCHIVE_LIST`

Tool to archive a List in Engage. Use when you want to prevent new subscribers from being added to a list. Existing subscribers will not be affected.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The List ID to archive |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Archive User

**Slug:** `ENGAGE_ARCHIVE_USER`

Tool to archive a user in Engage. Use when you need to deactivate a user account while preserving all historical data. The user will stop being active and all engagement and events for the user will be stopped, but all messages, logs, and related data will be preserved.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uid` | string | Yes | User ID of the Customer or Account to archive. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Convert User Type

**Slug:** `ENGAGE_CONVERT_USER_TYPE`

Tool to convert a user between Customer and Account entity types. Use when you need to change a customer to an account or vice versa.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uid` | string | Yes | User ID of the Customer or Account to convert. |
| `type` | string ("customer" | "account") | Yes | The entity type to convert to: customer or account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create List

**Slug:** `ENGAGE_CREATE_LIST`

Tool to create a new List in Engage for organizing subscribers. Use when you need to set up a new list for managing contacts or subscribers.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | List title (required) |
| `description` | string | No | String attached to the object - a description or summary of the list |
| `double_optin` | boolean | No | If true, subscribers receive a confirmation mail before being added to the list |
| `redirect_url` | string | No | URL to redirect users to after subscription |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create User

**Slug:** `ENGAGE_CREATE_USER`

Tool to create a new user (Customer or Account) in Engage. Use when you need to add a user with optional metadata, device tokens, or list subscriptions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier for the user in your application. This will be returned as 'uid' in the response. |
| `meta` | object | No | Object containing additional custom user attributes (string, number, or boolean values) |
| `email` | string | No | User's email address for communication |
| `lists` | array | No | Array of List IDs to automatically subscribe the user to |
| `number` | string | No | User's phone number in international format (e.g., +1234567890) |
| `accounts` | array | No | Array of account assignments with ID and optional role |
| `last_name` | string | No | User's last name |
| `created_at` | string | No | Date the user signed up. Should be a valid ISO 8601 date string |
| `first_name` | string | No | User's first name |
| `is_account` | boolean | No | If true, creates the user as an Account entity instead of a regular Customer |
| `device_token` | string | No | Device token for push notifications |
| `device_platform` | string | No | Device platform for push notifications. Must be 'android' or 'ios' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Subscriber From List

**Slug:** `ENGAGE_DELETE_SUBSCRIBER_FROM_LIST`

Tool to remove a subscriber from a List entirely (different from unsubscribing). Use when you need to completely delete a subscriber's association with a specific list.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `list_id` | string | Yes | The List ID from which to remove the subscriber |
| `subscriber_uid` | string | Yes | The subscriber's unique user ID to remove from the list |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete User

**Slug:** `ENGAGE_DELETE_USER`

Tool to completely delete all user data for a Customer or Account. This is a permanent, destructive action that removes all associated user data from Engage.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uid` | string | Yes | User ID of the Customer or Account to delete. This is the ID you supplied when creating the user, not Engage's internal ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Account Members

**Slug:** `ENGAGE_GET_ACCOUNT_MEMBERS`

Tool to retrieve all members (Customers) of an Account in Engage. Use when you need to list users who are part of a specific account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uid` | string | Yes | User ID of the Account whose members to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get List

**Slug:** `ENGAGE_GET_LIST`

Tool to retrieve a single List by its ID. Use when you need to fetch details about a specific List.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the List to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User By ID

**Slug:** `ENGAGE_GET_USER`

Tool to retrieve a single user by their user ID. Use when you need to fetch complete user information including metadata, attributes, devices, lists, segments, and message statistics.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uid` | string | Yes | User ID of the Customer or Account (the ID you supplied when creating the user) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Lists

**Slug:** `ENGAGE_LIST_LISTS`

Tool to retrieve a paginated list of all Lists in Engage. Use when you need to view available Lists or iterate through all Lists in the account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Number of Lists to return. Defaults to 10. Maximum of 30. |
| `next_cursor` | string | No | Pagination cursor for next dataset page |
| `previous_cursor` | string | No | Pagination cursor for previous dataset page |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Users

**Slug:** `ENGAGE_LIST_USERS`

Tool to retrieve a paginated list of all users in Engage. Use when you need to list users with optional filtering by email and cursor-based pagination support.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | No | Filter results to return only users with this specific email address. |
| `limit` | integer | No | Number of users to return. Defaults to 10. Maximum of 30. |
| `next_cursor` | string | No | Pagination cursor for retrieving the next page of results. |
| `previous_cursor` | string | No | Pagination cursor for retrieving the previous page of results. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Merge Users

**Slug:** `ENGAGE_MERGE_USERS`

Tool to merge two user profiles in Engage. The source user is merged into the destination user, and the source user profile is removed. Use when you need to consolidate duplicate user accounts or combine user data from multiple profiles into a single account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `source` | string | Yes | The ID of the user to merge. This user will be merged into the destination user and the source user profile will be removed. |
| `destination` | string | Yes | The ID of the user that the source user is being merged into. This user will contain all merged data. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove Customer from Account

**Slug:** `ENGAGE_REMOVE_CUSTOMER_FROM_ACCOUNT`

Tool to remove a Customer from an Account in Engage. Use when you need to disassociate a customer from a specific account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `aid` | string | Yes | User ID of the Account to remove the Customer from. Example: 'test_account_1739394000' |
| `uid` | string | Yes | User ID of the Customer to remove from the Account. Example: 'test_customer_1739394000' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Batch Request

**Slug:** `ENGAGE_SEND_BATCH_REQUEST`

Tool to batch multiple create user, update user, and add user events operations into a single API call. Use when you need to perform multiple operations efficiently at the cost of one API request. The batch is queued for processing without immediate validation, so ensure all parameters are correct. Request size must remain under 100KB.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | array | Yes | Array of batch operations. Each item must have 'type' and 'id', plus operation-specific parameters. Total request size must be under 100KB. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Subscribe User to List

**Slug:** `ENGAGE_SUBSCRIBE_USER_TO_LIST`

Tool to create a user and subscribe them to an Engage.so List. Use when you need to add users to a specific list for email marketing or user segmentation. If the user already exists, they will be added to the List without creating a duplicate.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The List ID to subscribe the user to. |
| `meta` | object | No | Additional user attributes as key-value pairs. Values must be string, number, or boolean. |
| `email` | string | Yes | The user's email address (required). Requires full authentication. |
| `number` | string | No | The user's phone number in international format (e.g., +1234567890). |
| `last_name` | string | No | The user's last name. |
| `created_at` | string | No | Creation date if the user already exists (ISO 8601 format recommended). |
| `first_name` | string | No | The user's first name. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Track User Event

**Slug:** `ENGAGE_TRACK_USER_EVENT`

Tool to add user events to Engage. Use this to track user actions and events in your application. You can later segment users based on these actions or events.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uid` | string | Yes | User ID of the Customer or Account |
| `event` | string | Yes | The event title |
| `value` | string | No | The event value. Can be string, number, or boolean |
| `timestamp` | string | No | Timestamp of the event. Defaults to current time. |
| `properties` | object | No | Object containing additional event properties (string, number, or boolean values) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Account Role

**Slug:** `ENGAGE_UPDATE_ACCOUNT_ROLE`

Tool to update the role of a Customer in an Account or set a new one if none exists. Use when you need to assign or change a customer's role within a specific account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `aid` | string | Yes | User ID of the Account in which to update the Customer's role. |
| `uid` | string | Yes | User ID of the Customer whose role to update. |
| `role` | string | Yes | The new role to assign to the Customer in the Account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Subscriber Status

**Slug:** `ENGAGE_UPDATE_SUBSCRIBER_STATUS`

Tool to update a subscriber's status on a List. Use when you need to subscribe, re-subscribe, or unsubscribe a user from a specific List.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The List ID to update the subscriber status for |
| `uid` | string | Yes | The subscriber's user ID |
| `subscribed` | boolean | Yes | Set to true to subscribe or re-subscribe the user, false to unsubscribe |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update User

**Slug:** `ENGAGE_UPDATE_USER`

Tool to update user data and attributes on Engage. Use this to update user data changes like changes in plan, name, location, etc. If the user doesn't exist, this method creates the user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uid` | string | Yes | User ID of the Customer or Account to update. This is the unique identifier for the user in your system. |
| `meta` | object | No | Object containing additional user attributes to add or update. Use this for custom properties like plan, location, preferences, etc. |
| `email` | string | No | User's email address. Updating email requires full authentication. |
| `number` | string | No | User's phone number in international format (e.g., +1234567890). |
| `last_name` | string | No | User's last name. |
| `created_at` | string | No | Date the user signed up. Should be a valid date string in ISO format. |
| `first_name` | string | No | User's first name. |
| `is_account` | boolean | No | If true, converts user to account. If false and entity is account, converts to user. |
| `device_token` | string | No | User's device token for push notifications. |
| `device_platform` | string | No | Device platform: android or ios. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
