Cómo enviar eventos a la API de SendPulse
Puedes enviar eventos a tu sistema usando la API SendPulse. El envío de solicitudes es posible con y sin autorización.
Para enviar un evento necesitas lo siguiente:
- Una URL de solicitud.
- Una dirección de correo electrónico o número de teléfono de contacto: estos son parámetros obligatorios que se utilizan para identificar contactos.
- Parámetros opcionales de contacto usados como variables para personalizar mensajes.
automation_id, un parámetro de sistema opcional que se usa para identificar el flujo al que envías los datos de la solicitud.
Copia una URL
Ve a la sección Administrador de eventos, crea o elige un evento y haz clic en el nombre.

Selecciona un Método de Solicitud
Usando la biblioteca SendPulse en GitHub, pasa el evento con autorización y la URL de la pestaña REST API POST. Puedes obtener las claves de autorización en la pestaña API de la configuración de tu cuenta.
Si no usas la biblioteca y necesitas pasar eventos sin autorización, copia la URL de las pestañas POST raw o POST form-data.

Copia tu URL en la pestaña correspondiente.

Prepara el cuerpo de la solicitud
Pasa los datos utilizando variables personalizadas o globales.
Asegúrate de pasar las variables email o phone con el tipo de parámetro Cadena para que SendPulse identifique los contactos y active el evento.
Tener otras variables en la solicitud es opcional ya que solo son necesarios si se usan en mensajes de flujo de automatización.
Identifica un flujo de Automatización por ID
Puedes enviar un ID de flujo a través de un parámetro opcional automation_id para identificar solicitudes y enviar datos personalizados a diferentes flujos con el mismo enlace de evento.
Toma en cuenta que debes agregar automation_id con el tipo de parámetro Número fuera de la matriz.
No necesitas configurar el automation_id al crear un evento.
Para obtener el automation_id , ve a tu página de flujo en la pestaña Panel y copia el valor numérico después de /flow/id/ en la barra de direcciones.
Por ejemplo, con un ID de flujo puedes enviar un correo electrónico activado desde una tienda en línea en diferentes idiomas. Para comunicarte con tus clientes de habla inglesa, tendrás la versión de correo electrónico en inglés en un solo flujo y la agregará junto con un nombre de administrador con una dirección de correo electrónico del remitente a tu sistema CRM. Tendrás la versión de correo electrónico en polaco en otro flujo, guárdala en otro CRM y usa el nombre de otro remitente.
Envía variables del sistema en el encabezado de la solicitud
Utiliza los encabezados de la solicitud HTTP para enviar variables de sistema cuando no puedas incluirlas en el cuerpo JSON. Este método puede ayudar a identificar a los suscriptores, especialmente cuando no puedas incluir estas variables en el cuerpo de la solicitud. También simplifica el envío de eventos ya que no es necesario configurar las asignaciones manualmente.
Puedes pasar las siguientes variables en los encabezados de las solicitudes de eventos:
email |
Correo electrónico de contacto. |
phone |
Número de teléfono de contacto. |
bot_id |
ID del chatbot. |
chatbots_subscriber_id |
ID de suscriptor del chatbot. |
chatbots_channel |
Canal de comunicación del chatbot. |
Aquí tienes un ejemplo de cómo puedes pasar variables del sistema en el encabezado de la solicitud:
curl --location 'https://events.sendpulse.com/events/id/f5555e14bb034295c7280f39fc14e332/1111111' \
--header 'bot_id: 618919df397aae3aaf1d51ed' \
--header 'chatbots_channel: tg' \
--header 'email: j.smith@outlook.com' \
--header 'phone: +380982222222' \
--header 'Content-Type: application/json' \
--data '{"test":1111}'
Si pasas variables del sistema en el encabezado, asegúrate de que el cuerpo de la solicitud no está vacío. De lo contrario, el sistema devolverá un error 400 Bad Request.
Solicitar muestras
Sin autenticación
PHP con cURL
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://events.sendpulse.com/events/id/eb561baa181247d1cd378c4ead632877/7043663',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"email": " test1@test1.com",
"phone": "+123456789",
"product_name": "product_name value",
"product_id": 123,
"product_link": "product_link value",
"product_price": "product_price value",
"product_img_url": "product_img_url value",
"event_date": "2021-05-28"
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Python
import requests
url = "https://events.sendpulse.com/events/id/eb561baa181247d1cd378c4ead632877/7043663"
payload="{\n \"email\": \"test1@test1.com\",\n \"phone\": \"+123456789\",\n \"product_name\": \"product_name value\",\n \"product_id\": 123,\n \"product_link\": \"product_link value\",\n \"product_price\": \"product_price value\",\n \"product_img_url\": \"product_img_url value\",\n \"event_date\": \"2021-05-28\"\n}"
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Con Autorización
PHP
<?php
use Sendpulse\RestApi\ApiClient;
use Sendpulse\RestApi\Storage\FileStorage;
define('API_USER_ID', '');
define('API_SECRET', '');
define('PATH_TO_ATTACH_FILE', __FILE__);
$SPApiClient = new ApiClient(API_USER_ID, API_SECRET, new FileStorage());
// Start event automation360
$eventName = 'registration';
$variables = [
"email" => "test1@test1.com",
"phone" => "+123456789",
"var_1" => "var_1_value"
];
var_dump($SPApiClient->startEventAutomation360($eventName,$variables));
Puedes leer más en: Biblioteca de cliente REST de SendPulse.
Python
# -*-coding:utf8-*-
""" SendPulse REST API usage example
Documentation:
https://login.sendpulse.com/manual/rest-api/
/api
"""
from pysendpulse.pysendpulse import PySendPulse
if __name__ == "__main__":
REST_API_ID = ''
REST_API_SECRET = ''
TOKEN_STORAGE = 'memcached'
MEMCACHED_HOST = '127.0.0.1:11211'
SPApiProxy = PySendPulse(REST_API_ID, REST_API_SECRET, TOKEN_STORAGE, memcached_host=MEMCACHED_HOST)
# Start event
params = {
"email": "test1@test1.com",
"phone": "+123456789",
"var_1": "var_1_value"
}
SPApiProxy.send_event('registration', params);
Puedes leer más en: GitHub: Biblioteca de cliente REST de SendPulse.
Última actualización: 16.05.2025
o