SDK de extensiones de llamada
El SDK de extensiones de llamada permite que las aplicaciones proporcionen una opción de llamadas personalizada a los usuarios de HubSpot directamente desde un registro en CRM.
Una extensión de llamadas consta de tres componentes principales:
- El SDK de extensiones de llamada, un SDK de JavaScript que permite la comunicación entre tu aplicación y HubSpot.
- Los puntos finales de configuración de llamadas, los cuales se usan para establecer la configuración de llamadas para tu aplicación. Cada cuenta de HubSpot que conecta tu aplicación utilizará esta configuración.
- El iframe de llamadas, que es donde aparece tu aplicación para los usuarios de HubSpot y está configurado usando los puntos finales de la configuración de llamadas.
Para obtener más información sobre la experiencia de llamadas en la aplicación, revisa este artículo de la base de conocimientos. Una vez que la aplicación de la extensión de llamadas esté conectada a HubSpot, aparecerá como opción en el conmutador de llamadas cuando un usuario haga una llamada desde HubSpot.
Si no tienes una aplicación, puedes crear una desde tu cuenta de desarrollador de HubSpot. Si aún no tienes una cuenta de desarrollador de HubSpot, inicia sesión aquí.
Nota: actualmente solo se admiten llamadas salientes.
Tienes la opción de probar el SDK de extensiones de llamada en dos aplicaciones de demostración diferentes:
- El demo-minimal-js presenta una implementación mínima del SDK usando JavaScript, HTML y CSS. Ve cómo se instala el SDK en index.js.
- El demo-react-ts presenta una implementación en tiempo real del SDK utilizando React, TypeScript y Styled Components para actuar como un plan para tu aplicación. Ve cómo se instala el SDK en useCti.ts.
Nota: estas aplicaciones de demostración no son aplicaciones de llamadas completamente funcionales y usan datos simulados para proporcionar una experiencia más realista.
Puedes ejecutar las aplicaciones de demostración con o sin instalación. Para instalar la demostración en tu entorno local:
- Instala Node.js en tu entorno.
- Clona, bifurca o descarga el ZIP de este repositorio.
- Abre tu terminal y navega al directorio raíz del proyecto.
- Ejecuta uno de los siguientes comandos:
- Para el
demo-minimal-js
:
- Para el
- Para el
demo-react-ts
:
npm start
abrirá automáticamente una nueva pestaña en tu navegador en https://localhost:9025/, y es posible que debas omitir una advertencia de "Tu conexión no es segura" para acceder a la aplicación.
- Navega a tus registros:
- Contactos: en tu cuenta de HubSpot, navega a Contactos > Contactos.
- Empresa: en tu cuenta de HubSpot, navega a Contactos > Empresas.
- Abre la consola del desarrollador de tu navegador y ejecuta el siguiente comando:
- Si completaste los pasos de instalación, para el
demo-minimal-js
o eldemo-react-ts
:
- Si completaste los pasos de instalación, para el
- Si has omitido los pasos de instalación:
- Para el
demo-minimal-js
:
- Para el
- Para el
demo-react-ts
:
- Actualiza la página y haz clic en el icono Llamar en la barra lateral izquierda. Haz clic en el menú desplegable Llamar desde y selecciona el nombre de la aplicación de demostración del paso 2 (por ejemplo, Demo App Local, Demo App JS, Demo App React).
- Haz clic en Llamar para ver cómo se integra la aplicación de demostración con HubSpot a través del SDK de extensiones de llamada. También puedes ver los eventos registrados en la consola del desarrollador de tu navegador.
Para agregar el SDK de extensiones de llamada como dependencia de Node.js a tu aplicación de llamadas:
- Para npm, ejecuta:
- Para yarn, ejecuta:
El SDK de extensiones de llamada expone una API simple para HubSpot y una aplicación de llamadas para intercambiar mensajes. Los mensajes se envían a través de métodos expuestos por el SDK y se reciben a través de eventHandlers
.
La siguiente es una descripción de los eventos:
- Número de marcación: HubSpot envía el evento de número de marcación.
- Llamada saliente iniciada: la aplicación notifica a HubSpot cuando se inicia la llamada.
- Crear interacción: HubSpot crea una interacción de llamada con información mínima si la aplicación lo solicita.
- Interacción creada: HubSpot creó una interacción.
- EngagementId enviado a la aplicación: HubSpot envía el
engagementId
a la aplicación. - Llamada finalizada: la aplicación notifica cuando finaliza la llamada.
- Llamada completada: la aplicación notifica cuando el usuario ha terminado con la experiencia de usuario de la aplicación.
- Actualizar interacción: la aplicación obtiene la interacción mediante el
engagementId
, luego combina y actualiza la interacción con detalles adicionales de la llamada. Más información sobre cómo actualizar una interacción de llamada.
Para comenzar, crea una instancia del objeto CallingExtensions
. Puedes definir el comportamiento de tu extensión proporcionando el objeto de una opción al crear tu instancia de extensiones. El objeto de esta opción proporciona un campo eventHandlers
donde puedes especificar el comportamiento de tu extensión. El siguiente bloque de código ilustra las opciones disponibles y los controladores de eventos que puedes definir:
El objeto extensions
proporciona los siguientes controladores de eventos que puedes invocar para enviar mensajes a HubSpot o para especificar otro comportamiento asociado. Consulta los siguientes ejemplos.
initialized
: envía un mensaje que indica que el teléfono flexible está listo para la interacción.
userLoggedIn
: envía un mensaje que indica que el usuario ha iniciado sesión.
userLoggedOut
: envía un mensaje que indica que el usuario ha cerrado sesión.
outgoingCall
: envía un mensaje para notificar a HubSpot que se ha iniciado una llamada saliente.
callAnswered
: envía un mensaje para notificar a HubSpot que se está respondiendo una llamada saliente.
callEnded
: envía un mensaje para notificar a HubSpot que la llamada ha finalizado.
callCompleted
: envía un mensaje para notificar a HubSpot que la llamada se ha completado.
sendError
: envía un mensaje para notificar a HubSpot que la aplicación que llama ha encontrado un error.
resizeWidget
: envía un mensaje para notificar a HubSpot que la aplicación que llama necesita ser redimensionada.
El objeto extensions
proporciona los siguientes controladores de eventos que puedes invocar al recibir mensajes en HubSpot o para especificar otro comportamiento asociado. Consulta los siguientes ejemplos.
onReady
: mensaje que indica que HubSpot está listo para recibir mensajes.
onDial
: mensaje que indica que el usuario ha activado una llamada saliente.
onEngagementCreated
: mensaje que indica que HubSpot ha creado datosonEngagementCreated
.
onVisibilityChanged
: mensaje que indica si el usuario ha minimizado u ocultado la aplicación de llamada.
defaultEventHandler
: controlador predeterminado para eventos.
Mientras estás en el proceso de crear tu Aplicación, puedes establecer manualmente la URL de iframe para tu navegador configurando un valor de localStorage
. Esto te permite establecer una URL de localhost para las pruebas locales.
Para establecer el valor, abre las herramientas de desarrollador para tu navegador y ejecuta el siguiente comando JavaScript en la consola:
El valor de nombre aparecerá en el encabezado de la aplicación de llamada y la url será la URL utilizada para iframe. Cuando este elemento esté establecido, el nombre que configuras aparecerá como opción para el proveedor de llamadas cuando hagas clic en el icono de llamada y el widget de llamada utilizará la url de iframe que configuraste.
Usando tu herramienta de API (por ejemplo, Postman), envía esta carga útil a nuestra API de configuración. Asegúrate de obtener el APP_ID de tu aplicación de llamadas y la aplicación DEVELOPER_ACCOUNT_API_KEY de tu aplicación.
La marca isReady
indica si la aplicación está lista para la producción. Esta marca debe establecerse en false durante la prueba.
localStorage
.
El paso final una vez que tu aplicación esté configurada es publicar tu aplicación de llamadas en el mercado de HubSpot. Puedes encontrar más detalles aquí. También puedes elegir no publicarlo en el mercado si esta aplicación es solo para uso interno.
How is user authentication handled?
La aplicación de llamada debe manejar la autentificación.
Is Calling Extensions hosted on a CDN?
No. Las extensiones de llamada son muy pequeñas y deben incluirse con la aplicación de llamadas. Si no es posible agrupar el archivo, el paquete npm incluye un paquete UMD compilado que se puede incluir en HTML (../node_modules/@hubspot/calling-extensions-sdk/dist/main.js).
When should an engagement be created versus updated?
Un usuario puede iniciar una llamada desde dentro de la interfaz de usuario de HubSpot y fuera de la interfaz de usuario de HubSpot (por ejemplo, aplicación móvil, número redirigido, etc.) Si se inicia una llamada desde la interfaz de usuario de HubSpot, HubSpot creará una interacción de llamada y enviará la interacción a la aplicación de llamada. Una vez que finaliza la llamada, la aplicación de llamadas puede actualizar esta interacción con detalles adicionales de la llamada. Si se inicia una llamada fuera de la interfaz de usuario de HubSpot, la aplicación debe crear la interacción de llamada.
What scopes are required as a part of the integration?
Se debe agregar contactos y alcances de cronología. Estos alcances aseguran que tu aplicación tenga acceso a contactos y la capacidad de crear y actualizar interacciones de llamadas en el CRM.
Can this functionality be added to an already existing application in the marketplace or do I create a new app?
Si ya tienes una aplicación existente que sirve para el caso de uso de llamadas, puedes agregar directamente esta funcionalidad a la aplicación existente. Todos los clientes que ya tienen tu aplicación instalada tendrán acceso a esta nueva funcionalidad sin tener que volver a instalar la aplicación.
Can I integrate my existing soft phone application in the SDK?
Sí, integrar tu aplicación de softphone existente debería ser muy fácil. Simplemente sigue los pasos de la documentación anterior para tener tu aplicación en funcionamiento.
Can users use multiple integrations at the same time?
Sí, los usuarios pueden usar múltiples integraciones de llamadas de terceros al mismo tiempo. Pueden usar el conmutador de proveedor que se presenta después de hacer clic en el botón de llamada para cambiar sin problemas entre proveedores.
Can free users install app integrations?
Sí, todos los usuarios pueden instalar la aplicación.
If a user already has my app installed, does the integration automatically show up?
Sí, si un usuario ya ha instalado tu aplicación y estás actualizando la misma aplicación con las extensiones de llamada, la integración aparecerá automáticamente. Actualmente, no hay manera de que el desarrollador habilite la aplicación de llamada solo para un subconjunto de clientes.
Can any user install or uninstall an app?
No, solo los usuarios que tengan los permisos necesarios pueden instalar y desinstalar una aplicación. Más información sobre cómo revisar los permisos de un usuario.
Can I place a call from a custom object?
Sí, las integraciones de llamadas pueden realizar llamadas desde objetos personalizados siempre que solo usen el SDK para crear la llamada. Cada integración deberá verificar que solo usan el SDK para llamadas para crear llamadas y notificar a HubSpot en el evento outgoingCall
.
Primero, verifica que la integración esté usando el SDK de llamadas para crear interacciones en el evento outgoingCall:
Si createEngagement
es verdadero, descubre cómo actualizar la información de tu aplicación aquí.
Este es el ejemplo de todo el evento outgoingCall
:
Si necesitas más ayuda, visita el foro de asistencia técnica para desarrolladores de HubSpot.
Gracias por tus comentarios, son muy importantes para nosotros.