Inicio / Guías / Cómo integrar WooCommerce con SendGrid: SMTP, API y entregabilidad

Cómo integrar WooCommerce con SendGrid: SMTP, API y eventos webhooks

4,5 · 87 valoraciones
· Actualizado el 27 de abril de 2026

Conecta WooCommerce con SendGrid paso a paso: API Key, SMTP, autenticación de dominio, eventos webhooks, errores comunes y configuración de SPF, DKIM y DMARC.

Cómo integrar WooCommerce con SendGrid: SMTP, API y entregabilidad

SendGrid (Twilio SendGrid) es uno de los proveedores transaccionales más usados del mundo. Su fuerte no es el marketing automation visual (ahí Klaviyo, Mailchimp y Brevo le pasan por delante) sino la fiabilidad y velocidad para enviar transaccional a gran escala. Para WooCommerce es una elección sólida cuando lo que importa es que la confirmación de pedido, el password reset o la factura lleguen siempre, sin retrasos. Esta guía cubre la configuración real: API Key, SMTP, autenticación de dominio, webhooks de eventos y cómo blindar la entregabilidad.

Para qué sirve la integración WooCommerce ↔ SendGrid

Casos de uso típicos:

  • SMTP transaccional para WooCommerce: confirmación de pedido, factura, password reset, registro de cuenta.
  • API HTTP para enviar emails con plantillas dinámicas (Twilio Templates).
  • Webhooks de eventos (delivered, bounced, opened, clicked) para tracking propio.
  • Marketing campaigns desde el panel SendGrid (función adicional, menos potente que Klaviyo).

A diferencia de Brevo, SendGrid se centra mucho más en el lado transaccional y en el control técnico. Es la elección razonable si tu prioridad es entregabilidad sobre marketing visual.

Requisitos previos

  • WooCommerce 6.0+ y WordPress 6.0+.
  • PHP 7.4+.
  • Cuenta SendGrid activa (Free, Essentials, Pro o Premier).
  • API Key con permisos de Mail Send y Email Activity.
  • Dominio de envío con acceso al DNS para añadir CNAMEs de Domain Authentication.
  • Configurar SPF, firma DKIM y política DMARC preparados.

Domain Authentication en SendGrid

Antes de cualquier integración, autentica el dominio. Sin esto, los emails salen con remitente “via sendgrid.net” y la entregabilidad cae.

  1. SendGrid → Settings → Sender Authentication → Authenticate Your Domain.
  2. Selecciona tu DNS provider (Cloudflare, Route 53, GoDaddy, etc.).
  3. Indica el dominio raíz: tutienda.com.
  4. Activa “Use a custom return path” → introduce subdominio: em1234.tutienda.com.
  5. SendGrid genera CNAMEs:
em1234.tutienda.com         CNAME u1234.wl.sendgrid.net
s1._domainkey.tutienda.com  CNAME s1.domainkey.u1234.wl.sendgrid.net
s2._domainkey.tutienda.com  CNAME s2.domainkey.u1234.wl.sendgrid.net
  1. Publica los CNAMEs.
  2. Verifica desde el panel.

Esto autentica DKIM y MAIL FROM. Combinado con tu SPF principal, deja DMARC alineado.

Vía A: SMTP con plugin WP Mail SMTP

Es el camino más fácil para WooCommerce básico.

  1. Instala “WP Mail SMTP by WPForms”.
  2. Configuración → Mailer → SendGrid.
  3. Pega la API Key.
  4. From email: [email protected] (debe ser sender verificado o estar en dominio autenticado).
  5. From name: “Tu Tienda”.
  6. Force From: activa.
  7. Envía test desde la pestaña Email Test.

WP Mail SMTP también tiene logs propios; útil para auditoría.

Configuración SMTP manual

Si prefieres SMTP nativo (sin API), en cualquier plugin SMTP usa:

Servidor:  smtp.sendgrid.net
Puerto:    587 (STARTTLS) o 465 (SSL)
Usuario:   apikey  (literalmente la palabra "apikey")
Password:  SG.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Vía B: API HTTP con plantillas dinámicas

Para tiendas que quieren plantillas pulidas y trackable, la API es preferible.

  1. SendGrid → Email API → Dynamic Templates → Create Template.
  2. Diseña con el editor visual o pega HTML.
  3. Define variables: {{order_number}}, {{customer_first_name}}, {{items}}.
  4. Anota el Template ID (d-xxxxxx).

Llamada desde WooCommerce:

add_action( 'woocommerce_order_status_processing', 'enviar_confirmacion_sendgrid', 10, 1 );

function enviar_confirmacion_sendgrid( $order_id ) {
    $order = wc_get_order( $order_id );
    $items = [];
    foreach ( $order->get_items() as $item ) {
        $items[] = [
            'name'  => $item->get_name(),
            'qty'   => $item->get_quantity(),
            'total' => wc_price( $item->get_total() ),
        ];
    }

    $body = wp_json_encode( [
        'from'             => [ 'email' => '[email protected]', 'name' => 'Tu Tienda' ],
        'personalizations' => [ [
            'to' => [ [ 'email' => $order->get_billing_email() ] ],
            'dynamic_template_data' => [
                'order_number'         => $order->get_order_number(),
                'customer_first_name'  => $order->get_billing_first_name(),
                'items'                => $items,
                'total'                => wc_price( $order->get_total() ),
            ],
        ] ],
        'template_id'      => 'd-xxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    ] );

    wp_remote_post( 'https://api.sendgrid.com/v3/mail/send', [
        'headers' => [
            'Authorization' => 'Bearer ' . SENDGRID_API_KEY,
            'Content-Type'  => 'application/json',
        ],
        'body' => $body,
    ] );
}

Esto reemplaza el email nativo de WooCommerce con una plantilla personalizada gestionada en SendGrid.

Eventos webhooks: tracking propio

SendGrid puede notificar a tu servidor de cada evento (entregado, bounced, abierto, clicado).

  1. SendGrid → Settings → Mail Settings → Event Webhook.
  2. URL: https://tutienda.com/wp-json/sendgrid/v1/events.
  3. Selecciona eventos: Processed, Delivered, Bounce, Dropped, Open, Click, Unsubscribe.

Endpoint en WP:

add_action( 'rest_api_init', function () {
    register_rest_route( 'sendgrid/v1', '/events', [
        'methods'  => 'POST',
        'callback' => 'procesar_evento_sendgrid',
        'permission_callback' => '__return_true', // valida con firma
    ] );
} );

function procesar_evento_sendgrid( $request ) {
    $events = $request->get_json_params();
    foreach ( $events as $e ) {
        $email = $e['email'];
        $type  = $e['event'];
        // gestiona bounces, complaints, etc.
        if ( in_array( $type, [ 'bounce', 'dropped' ], true ) && $e['type'] === 'bounce' ) {
            // marca al usuario para no enviar
        }
    }
    return new WP_REST_Response( [ 'ok' => true ], 200 );
}

Activa la firma del webhook (Signed Event Webhook) y valida la firma en el endpoint para evitar spoof.

Configuración mínima recomendada

Sender verification

SendGrid exige verificar cada From, salvo que esté en dominio autenticado. Recomendado:

Suppression lists

SendGrid mantiene varias listas de supresión:

  • Bounces.
  • Spam reports.
  • Unsubscribes globales.
  • Group unsubscribes (si usas grupos).

Revisa periódicamente y ajusta. No reenvíes a contactos en bounces permanentes.

IP dedicada

A partir de Pro plan, se puede asignar IP dedicada. Solo merece la pena con > 1M emails/mes y plan de warming propio.

Errores comunes y soluciones

”Los emails llegan a spam”

Causas:

  • Dominio no autenticado: emails salen con via sendgrid.net. Solución: completar Domain Authentication.
  • SPF no incluye include:sendgrid.net. Añade.
  • DMARC en quarantine o reject sin alinear DKIM/SPF: revisa que DKIM pasa con header.i = @tutienda.com.

”API devuelve 401 Unauthorized”

API Key revocada o sin permisos. Genera otra con scopes Mail Send y Suppressions Read.

”API devuelve 403 Forbidden”

El sender no está verificado o no está en dominio autenticado. Verifica.

”Webhook no recibe eventos”

  • URL no accesible públicamente: revisa firewall.
  • Tu endpoint devuelve 5xx: SendGrid reintenta y luego desactiva. Asegúrate de que devuelve 200 incluso si la lógica interna falla.
  • Validación de firma rechaza: verifica con la public key correcta.

”Bounces altos en la primera campaña”

Si reactivas una lista vieja, suele ser limpieza pendiente. Pasa la lista por verificación o haz warming progresivo. Revisa bounces SMTP para gestionar bien.

”WooCommerce sigue usando el SMTP antiguo”

Si tienes varios plugins SMTP, el último activado gana. Quita los redundantes. Comprueba en wp-config.php que no hay constantes SMTP forzadas.

Verificación: ¿todo funciona?

  1. Test SMTP/API. Manda un email de prueba. SendGrid → Activity Feed: debes ver delivered segundos después.
  2. Compra de prueba. Pedido con tu email. Recibes confirmación con el From correcto y plantilla esperada.
  3. Cabeceras. En el email recibido:
Authentication-Results: mx.google.com;
       dkim=pass [email protected] header.s=s1
       spf=pass smtp.mailfrom=em1234.tutienda.com
       dmarc=pass header.from=tutienda.com

Si SPF da softfail, revisa que el return path está autenticado.

Implicaciones de entregabilidad

SendGrid es muy estricto con bounces y complaints. Una bounce rate sostenida > 5 % o complaint > 0.1 % puede llevar a suspensión de la cuenta.

Recomendaciones:

  • Subdominio dedicado para SendGrid (em1.tutienda.com).
  • Política DMARC en p=none durante 2-4 semanas. Verifica que SPF y DKIM pasan en reportes RUA. Después quarantine o reject.
  • Activa List-Unsubscribe one-click. Útil incluso en transaccional con confirmaciones de pedido (RFC 8058).
  • Para campañas masivas, warming progresivo desde IP nueva.
  • Monitoriza bounces SMTP y revisa evitar spam en Gmail.
  • Si vienes de Amazon SES y migras a SendGrid, calienta el nuevo emisor durante mínimo 2 semanas.

SendGrid vs alternativas

  • SendGrid vs Postmark. Postmark más rápido en placement de transaccional, SendGrid más completo y barato en volumen alto.
  • SendGrid vs Brevo. Brevo más amigable para usuarios no técnicos y con marketing decente; SendGrid mejor en volumen y API pura.
  • SendGrid vs Amazon SES. SES más barato, SendGrid más completo y con mejor UI. SES requiere más cuidado técnico.

Recursos relacionados

Si quieres profundizar, prueba estas herramientas gratuitas: Domain Health, mail tester, validador SPF y validador DMARC.

¿Necesitas que alguien lleve tu canal de email entero? Abalola Mail es la agencia de email marketing para ecommerce de Abalola para ecommerce: estrategia, producción y operación del stack sobre Klaviyo, Mailchimp o Brevo.

Preguntas frecuentes

¿Cómo conecto WooCommerce con SendGrid?
Lo más habitual es usar un plugin SMTP (Wp Mail SMTP, Post SMTP) configurado contra smtp.sendgrid.net en puerto 587 con tu API key como contraseña, o vía Web API con plugin específico.
¿API o SMTP para WooCommerce?
API es más rápida y permite trazabilidad por message_id. SMTP es más sencillo de configurar y compatible con cualquier plugin. Para volumen alto, API.
¿Por qué WooCommerce no entrega emails sin SendGrid?
Por defecto WordPress usa la función mail() de PHP, bloqueada o limitada en muchos hostings. SendGrid garantiza entrega vía SMTP autenticado o API.
¿Cómo recibo eventos de bounce y spam de SendGrid?
Configura Event Webhook en SendGrid apuntando a un endpoint en tu sitio o servicio externo para procesar bounce, spamreport, dropped y delivered en tiempo real.
¿Necesito autenticar el dominio en SendGrid?
Sí. SendGrid llama a esto Domain Authentication y requiere publicar dos CNAMEs DKIM y un CNAME del Return-Path para alinear DMARC con tu dominio.
¿Hay app oficial para WooCommerce?
No hay plugin oficial de SendGrid para WooCommerce. Se usa WP Mail SMTP, integraciones generales (Post SMTP) o API directa.
¿Qué pasa si me suspenden la cuenta?
SendGrid avisa por email cuando bounce/complaint rate sube. Si llegas al umbral, te bloquean envíos. Soporte revisa caso a caso. Mejor prevenir limpiando lista y autenticando bien.