¿Cómo usar webhooks de Mailchimp?

September 23, 2019 por Eleazar Resendez – 2 mins read

El concepto de WebHook es simple. Un WebHook es un callback (devolución de llamada) HTTP. Un HTTP POST que ocurre cuando algo sucede; Una simple notificación de eventos a través de HTTP POST.

Más información:

  • https://webhooks.pbworks.com/w/page/13385124/FrontPage
  • https://mailchimp.com/developer/guides/about-webhooks/

Webhooks en Mailchimp

Los webhooks en Mailchimp se usan para recopilar información sobre los cambios en una lista o audiencia a medida que ocurren. Es necesario ingresar una URL válida y luego seleccionar el tipo de actualizaciones que se desea recibir. El propósito es poder obtener actualizaciones al instante.

Crear un webhook

Para crear un webhook, sigue estos pasos:

  1. Inicia sesión en Mailchimp y luego navegue a la página Audiencia.
  2. Selecciona el menú desplegable junto a la audiencia con la que desea trabajar y luego elija Configuración.
  3. En la página Configuración, haga clic en Webhooks.
  4. Haga clic en Crear nuevo webhook.
  5. En el campo Callback URL, escriba la URL de la aplicación a la que desea enviar solicitudes webhook. Esta URL recibirá datos sobre la audiencia de Mailchimp. Por ejemplo: https://www.my-domain.com/api/hooks/unsubscribe-callback
  6. Seleccione que tipo de actualizaciones deseas recibir. Por ejemplo: Subscribes, Unsubscribes, Profile updates, Email address changes, Cleaned emails, Campaign sending status. Para este ejemplo, seleccionaré solo Unsubscribes.
  7. Clic en Guardar.

El webhook notificará a su aplicación de cualquier evento.

Mailchimp envía HTTP POST para datos reales, el validador de webhook solo envía solicitudes HTTP GET. Deberá permitir ambas rutas para que su webhook funcione correctamente.

De acuerdo a la nota anterior, es necesario crear ambas rutas, por ejemplo:

Route::match(['get', 'post'], 'hooks/unsubscribe-callback', '[email protected]');

Datos del webhook

Ahora, en cada momento que exista un Unsubscribe de la lista o audiencia, Mailchimp enviará la siguiente información a la Callback URL establecida.

"type": "unsubscribe",
"fired_at": "2009-03-26 21:40:57",
"data[action]": "unsub",
"data[reason]": "manual",
"data[id]": "8a25ff1d98",
"data[list_id]": "a6b5da1054",
"data[email]": "[email protected]",
"data[email_type]": "html",
"data[merges][EMAIL]": "[email protected]",
"data[merges][FNAME]": "Mailchimp",
"data[merges][LNAME]": "API",
"data[merges][INTERESTS]": "Group1,Group2",
"data[ip_opt]": "10.20.10.30",
"data[campaign_id]": "cb398d21d2",
"data[reason]": "hard"

Finalmente, lo que se desee hacer con esa información se escribe en la función:

/**
 * Mailchimp unsubscribe callback
 */
public function unsubscribeCallback(Request $request): void
{
    //
}

Siguiente entrada

¿Cómo recibir notificaciones en Slack desde una Laravel App?

Vamos a seguir un proceso rápido de 4 pasos, que permitirá publicar mensajes en Slack usando Incoming Webhooks y Laravel en unos minutos.

Te puede interesar

Coderwall Tip: .gitignore is not working

Que hacer cuando quieres ignorar un archivo (.gitignore) y este todavía se encuentra la lista de cambios.

¿Cómo usar webhooks de Mailchimp?
Compartir