[B - Workflow Asociación Curso] Caso de uso No. 1 - Automatización del proceso de gestión de leads B2C para Educación Continua.
Documentación Técnica del Flujo de Trabajo Automatizado: Asociación de Curso a Negocio
[B - Workflow Asociación Curso] Caso de uso No. 1 - Automatización del proceso de gestión de leads B2C para Educación Continua.
Proyecto |
Implementación HubSpot EDUCON - Universidad del Rosario |
Cliente |
Universidad del Rosario |
Caso de uso No. 1 |
Caso de uso Marketing B2C Automatización del proceso de gestión de leads B2C para Educación Continua |
Documentación Técnica del Flujo de Trabajo Automatizado: Asociación de Curso a Negocio
Resumen
El flujo de trabajo tiene como objetivo automatizar la inscripción de un negocio a un curso determinado, utilizando el código de un programa asociado al producto. Si se cumplen las condiciones de entrada, el flujo realiza acciones personalizadas para asociar el producto al negocio, validando la existencia del producto y generando notificaciones internas en caso de error.
Componentes del Flujo
1. Desencadenante de Inscripción
- Acción de Inscripción Automática:
- El desencadenante de inscripción se activa solo cuando el Código Programa está presente en los datos del negocio. Esto asegura que solo los negocios relacionados con un curso o programa específico pasen al siguiente paso de la automatización.
- Criterios del filtro:
- ID de registro: El campo ID de registro debe estar presente y ser válido.
- Código Programa: El campo Código Programa debe estar presente y ser válido.
- Propósito: Este paso inicia el flujo de trabajo solo si los campos necesarios están presentes. En caso contrario, el flujo no procede.
2. Acción de Código Personalizado
- Lenguaje: Python 3.9
- Descripción: En este paso, se ejecuta un código Python que:
- Verifica si el Código Programa y el ID de registro están presentes en los datos del negocio.
- Realiza una búsqueda del producto asociado al Código Programa utilizando la API de HubSpot.
- Si el producto es encontrado, lo asocia al negocio como un "line item" (artículo) en el CRM de HubSpot.
- Funcionamiento:
- Entrada:
- codigo_programa: Código del programa (referencia al producto).
- hs_object_id: ID del objeto de negocio en HubSpot.
- Salida:
- Si la búsqueda del producto tiene éxito, se devuelve un estado positivo (status: True).
- Si el producto no es encontrado, se devuelve un estado negativo con el mensaje de error correspondiente.
- Entrada:
- API utilizada:
- Búsqueda de Producto: Se usa la API de HubSpot para buscar un producto en la base de datos con el hs_sku que coincide con el Código Programa.
- Creación de Line Item: Se utiliza la API de HubSpot para crear un "line item" asociado al negocio, con las propiedades del producto (precio, nombre, SKU).
- Código Python:
import os
import requests
import json
def main(event):
token = os.getenv("tokenHubspot")
# Verificar si el 'codigo_programa' está presente
if "codigo_programa" not in event["inputFields"]:
return {"outputFields": {"status": False, "message":"No cuenta con un código de programa"}}
codigo_programa = event["inputFields"]["codigo_programa"]
hs_object_id = event["inputFields"]["hs_object_id"]
# Buscar el producto con el 'codigo_programa'
responseSearch = searchProduct(codigo_programa, token)
if not responseSearch["status"]:
return {"outputFields": {"status": False, "message":"No se encontró el programa"}}
# Crear el Line Item asociado al negocio
data = {
"associations": [
{"types": [{"associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 20}], "to": {"id": hs_object_id}}
],
"properties": {
"price": responseSearch["response"]["properties"]["price"],
"quantity": 1,
"name": responseSearch["response"]["properties"]["name"],
"hs_sku": responseSearch["response"]["properties"]["hs_sku"]
}
}
responseLineItem = createLineItem(data, token)
if not responseLineItem:
return {"outputFields": {"status": False, "message":"No se pudo crear el Line Item"}}
return {"outputFields": {"status": True, "message": ""}}
def searchProduct(ref, token):
url = "https://api.hubapi.com/crm/v3/objects/products/search"
payload = json.dumps({
"properties": ["name", "price", "hs_sku", "description"],
"filterGroups": [{"filters": [{"propertyName": "hs_sku", "value": ref, "operator": "EQ"}]}]
})
headers = {'Content-Type': 'application/json', 'Authorization': f'Bearer {token}'}
response = requests.post(url, headers=headers, data=payload)
if response.status_code in [200, 201]:
responseJson = response.json()
if responseJson["total"] > 0:
return {"status": True, "response": responseJson["results"][0]}
return {"status": False, "response": "No se encontró el producto"}
def createLineItem(data, token):
url = "https://api.hubapi.com/crm/v3/objects/line_items"
payload = json.dumps(data)
headers = {'Content-Type': 'application/json', 'Authorization': f'Bearer {token}'}
response = requests.post(url, headers=headers, data=payload)
if response.status_code in [200, 201]:
return True
return False
3. Ramificación (Branching)
- Propósito: Determinar si el producto ha sido correctamente asociado al negocio y si el flujo debe continuar o no.
- Condición: Se evalúa el valor de status proveniente del paso anterior (Código Personalizado):
- Si el status es true, el flujo continúa normalmente.
- Si el status es false, se ejecuta la acción de "Notificación Interna".
- Resultado:
- true: Continúa al siguiente paso sin interrupciones.
- false: Envia un correo de notificación interna sobre el error.
4. Notificación Interna
- Descripción: Si el producto no pudo asociarse al negocio, se envía una notificación interna a los propietarios de negocio.
- Propósito: Alertar al equipo sobre el error en la automatización de la asociación de curso.
- Contenido del correo:
- Asunto: Error en la asociación del curso a un negocio.
- Cuerpo:
- Explica que el curso no ha sido asociado correctamente al negocio.
- Incluye una solicitud para validar dos puntos clave:
- Verificar si el curso se creó correctamente en la sección de productos.
- Verificar si el código del programa coincide con el código de producto.
Equipo,
No fue posible relacionar el curso correspondiente al negocio en mención.
Por favor validar la siguiente información:
- ¿El curso se ha creado correctamente en la sección de Productos?
- ¿El código de programa del producto coincide con el código de programa asociado al curso?
5. Ir a Workflow - "Asignación Asesor & Envío 1er Correo" (Negocios)
Descripción:
Este paso está diseñado para redirigir un negocio hacia otro flujo de trabajo predefinido denominado "Asignación Asesor & Envío 1er Correo". En este flujo de trabajo, se asignará un asesor a dicho negocio y se enviará un primer correo electrónico al propietario del negocio o al lead involucrado.
Acción Detallada:
- Ir a Workflow: El negocio es movido al flujo de trabajo denominado "Asignación Asesor & Envío 1er Correo". Esto garantiza que el negocio reciba el tratamiento adecuado a través de un proceso automático.
Condición de Activación:
- Esta acción se ejecuta si la condición anterior en el flujo de trabajo, específicamente la ramificación, evalúa como true. Esto implica que solo aquellos negocios que cumplan con los criterios establecidos en la ramificación llegarán a este paso.
Configuración del Workflow:
- En este paso, el negocio es direccionado automáticamente a un flujo donde se realiza lo siguiente:
- Asignación de Asesor: Un asesor es asignado al negocio para hacerse cargo de su gestión.
- Envío del Primer Correo: Se envía un primer correo electrónico al propietario del negocio o al lead, como parte del proceso de seguimiento o de activación inicial del negocio.
Propósito:
- Asignación de Asesor: Asegura que un asesor adecuado sea asignado para gestionar el negocio de manera personalizada.
- Envío del Primer Correo: Automatiza el envío de un correo inicial para asegurar que el negocio reciba la comunicación relevante y se dé inicio al seguimiento comercial.
Este paso ayuda a automatizar y agilizar el proceso de gestión de negocios en HubSpot, asegurando que los asesores tomen acción de manera inmediata y que los negocios reciban la atención necesaria sin intervención manual.
6. Fin del Flujo
- Acción Final: El flujo de trabajo finaliza después de enviar la notificación interna o si el status es positivo y el flujo se ejecutó sin problemas.
Importancia de la Propiedad "Código Programa" para el Workflow y el Journey del Lead
1. Función Crítica en el Workflow
La propiedad "Código Programa" es fundamental para el flujo de trabajo, ya que:
- Desencadenante de Inscripción: El flujo de trabajo solo se activa si el Código Programa está presente, asegurando que solo los negocios relacionados con cursos específicos sean procesados.
- Acción de Código Personalizado: Es usada para realizar la búsqueda del producto asociado al código y asociarlo correctamente al negocio.
- Validación y Ramificación: Si no se encuentra el producto o no se puede asociar, se genera una notificación interna, lo que garantiza que no se produzcan errores en la inscripción.
2. Impacto en el Journey del Lead
La propiedad Código Programa tiene un impacto directo en el viaje del lead a través de los siguientes aspectos:
- Segmentación y Personalización del Contenido: Permite personalizar las comunicaciones basadas en el programa de interés del lead.
- Nutrición del Lead: Ayuda a activar tareas automatizadas, como el envío de correos personalizados, basado en el curso o programa de interés del lead.
- Seguimiento de Conversiones: Facilita la medición de qué programas tienen más éxito y cómo estos afectan la conversión de leads.
- Experiencia del Cliente: Mantiene una experiencia coherente y alineada con los intereses del lead, evitando confusiones o errores.
Requisitos Técnicos y Consideraciones
- Autenticación:
- Se usa OAuth 2.0 para obtener el token de autenticación (tokenHubspot), necesario para hacer solicitudes a la API de HubSpot.
- APIs de HubSpot Utilizadas:
- /crm/v3/objects/products/search: Para buscar productos utilizando el Código Programa.
- /crm/v3/objects/line_items: Para crear "line items" asociados al negocio.
- Manejo de Errores:
- Si algún paso falla, el flujo devolverá un mensaje de error detallado, asegurando que se pueda hacer un diagnóstico adecuado.
Consideraciones para Escalabilidad
- Validación de Productos: Este flujo es adecuado para la gestión de un volumen alto de productos en HubSpot.
- Notificaciones: Las notificaciones internas se pueden personalizar o expandir para incluir más destinatarios o crear nuevas condiciones de alerta.
Este flujo de trabajo proporciona una solución eficiente para automatizar la asociación de cursos a negocios en HubSpot, utilizando personalizaciones de código y una lógica bien definida para manejar errores y generar alertas en tiempo real. Sin la propiedad Código Programa, la efectividad y precisión del flujo de trabajo se verían comprometidas, lo que impactaría tanto la automatización como la experiencia del cliente.