Houses configurations per agent for whatsapp api communications provided by Ultramsg API.
JIVAS action wrapper for WhatsApp API communications using the Ultramsg API with advanced mass messaging outbox. This action provides a wrapper for WhatsApp API communications using the Ultramsg API. As a core action, it simplifies and streamlines interactions with WhatsApp. The package is a singleton and requires the Jivas library version ^2.0.0.
jivas/ultramsg_action
UltramsgAction
~2.0.0-aplha.40
~0.0.2
Below is detailed guidance on how to configure and use the Ultramsg Action.
The Ultramsg Action provides an abstraction layer for interacting with WhatsApp via the Ultramsg API. It supports multiple configurations for various use cases, including:
The Ultramsg Action includes advanced mechanisms to optimize message delivery:
These features enhance reliability and minimize disruptions during high-volume messaging operations.
To use the Ultramsg Action, you need to set up the following configuration parameters. These specify connection and behavioral details.
Parameter | Type | Description | Default |
---|---|---|---|
api_url |
string | The base URL of the Ultramsg API. | "https://api.ultramsg.com" |
instance_id |
string | The instance ID for the Ultramsg API. | "" |
token |
string | The token for accessing the Ultramsg API. | "" |
phone_number |
string | The whatsapp phone number. | "" |
base_url |
string | The base URL of the JIVAS instance. | "" |
webhook_url |
string | The generated webhook URL. | "" |
webhook_properties |
dict | Settings for the webhook, such as message handling and delays. | {"send_delay": 3, "webhook_message_received": "True", "webhook_message_create": "False", "webhook_message_ack": "True", "webhook_message_download_media": "True"} |
chunk_length |
int | The maximum length of message to send. Longer texts are split into subsequent messages. | 3500 |
use_pushname |
bool | Use the WhatsApp push name as the user name when set to True . |
True |
ignore_newsletters |
bool | Ignore newsletter messages when set to True . |
True |
request_timeout |
float | Length of time (in seconds) this action waits for the API to complete a request. | 10.0 |
outbox_base_rate_per_minute |
int | The base messages per minute (adapts dynamically). | 20 |
outbox_send_interval |
float | The current operational delay between batches. | 1.0 |
outbox_min_send_interval |
float | The absolute minimum delay (seconds). | 1.0 |
outbox_max_send_interval |
float | The maximum allowed delay (seconds). | 10.0 |
outbox_min_batch_size |
int | The minimum batch size of messages to send from the outbox. | 1 |
outbox_max_batch_size |
int | The maximum batch size of messages to send from the outbox. | 10 |
webhook_url
must be a publicly accessible endpoint to enable event-driven communication from Ultramsg.outbox_base_rate_per_minute
to 20
for new numbers. This value should align with WhatsApp's acceptable rate-per-minute limits (default is 20
).outbox_max_batch_size
at or below 10
to comply with account limitations.chunk_length
if you have use cases that involve very long text messages.ignore_newsletters
and ignore_forwards
to filter out less relevant messages and avoid unnecessary processing.These guidelines help optimize performance and ensure compliance with WhatsApp's messaging policies.
Endpoint: /action/walker
Method: POST
{
"agent_id": "<AGENT_ID>",
"walker": "broadcast_message",
"module_root": "actions.jivas.ultramsg_action",
"args": {
"message": {
"message_type": "TEXT|MEDIA|MULTI",
...
},
"ignore_list": ["session_id_1", ...]
}
}
Endpoint: /action/walker
Method: POST
{
"agent_id": "<AGENT_ID>",
"walker": "send_messages",
"module_root": "actions.jivas.ultramsg_action",
"args": {
"messages": [
// Array of message objects
],
"callback_url": "https://your-callback.url"
}
}
{
"messages": [
{
"to": "session_id",
"message": {
"message_type": "TEXT",
"content": "Batch message"
}
}
],
"callback_url": "https://example.com/status"
}
Returns a job ID string for tracking.
Your callback will receive a JSON payload with the following structure automatically upon job completion:
{
"status": "success|partial|error",
"job_id": "<UUID>",
"processed_count": 10,
"failed_count": 2,
"pending_count": 0
}
{
"message": {
"message_type": "TEXT",
"content": "Hello World"
}
}
{
"message": {
"message_type": "MEDIA",
"mime": "image/jpeg",
"content": "Check this!",
"data": {
"url": "https://example.com/image.jpg",
"file_name": "image.jpg"
}
}
}
{
"message": {
"message_type": "MULTI",
"content": [
// Array of TEXT/MEDIA messages
]
}
}
base_url = "https://your_base_url"
api_key = "your_ultramsg_api_key"
instance_id = "your_instance_id"
phone_number = "your_whatsapp_number"
webhook_properties = {
"send_delay": 3,
"webhook_message_received": "True",
"webhook_message_create": "False",
"webhook_message_ack": "True",
"webhook_message_download_media": "True"
}
ultramsg_action
project.git clone https://github.com/TrueSelph/ultramsg_action
git checkout -b new-feature-x
git commit -m 'Implemented new feature x.'
git push origin new-feature-x
This project is protected under the Apache License 2.0. See LICENSE for more information.
jvcli download action jivas/ultramsg_action