Skip to content

PassKit

PassKit te habilita para ampliar tu alcance móvil integrando pases de Apple Wallet y Google Pay en la experiencia de tus clientes. Cree, gestione, distribuya y analice fácilmente el rendimiento de cupones digitales, tarjetas de fidelización, carnés de socio, entradas y mucho más; sin que sus clientes necesiten otra aplicación.

Esta integración está mantenida por Passkit.

Sobre la integración

La integración de Braze y PassKit le permite aumentar y medir el compromiso de sus campañas en línea mediante la entrega instantánea de pases personalizados de Apple Wallet y Google Pay. A continuación, puede analizar el uso y realizar ajustes en tiempo real para aumentar el tráfico en la tienda activando mensajes basados en la ubicación y actualizaciones personalizadas y dinámicas en el monedero móvil del cliente.

Requisitos previos

Integración

Para enriquecer aún más la experiencia de tus clientes con el monedero móvil, desde tu panel PassKit puedes optar por pasar datos a Braze a través del punto final Braze /users/track.

Ejemplos de datos para compartir de PassKit incluyen:

  • Pase creado: cuando un cliente hace clic en un enlace de pase y se le muestra por primera vez un pase.
  • Instalación del pase: cuando el cliente añade y guarda el pase en su aplicación monedero.
  • Actualizaciones de pases: cuando se actualiza un pase.
  • Eliminación del pase: cuando un cliente elimina el pase de su aplicación monedero.

Una vez introducidos los datos en Braze, puede crear audiencias, personalizar el contenido mediante Liquid y activar campañas o Canvases después de que se hayan realizado estas acciones.

Conectar Passkit a Braze

Para pasar datos desde PassKit, asegúrese de que ha configurado su ID externo Braze como externalId de PassKit.

  1. Dentro de Ajustes, en Integraciones en su proyecto o programa PassKit pass haga clic en Conectar en la pestaña Braze.
    La ficha de integración de Braze en la plataforma PassKit.

  2. Introduce tu clave de API Braze, la URL del punto final y un nombre para tu conector.

  3. Active Activar integración y los eventos que desee en Braze para activar o personalizar sus mensajes.
    El mosaico de integración de PassKit Braze se amplió para aceptar la clave de API, la URL del punto final, el nombre de la integración, la configuración de habilitación, la configuración de la afiliación y la configuración del pase.

Crear pase utilizando un enlace SmartPass

Dentro de Braze, puedes configurar un enlace SmartPass para generar una URL única para que tus clientes instalen su pase en Android o iOS. Para ello, debe definir una carga útil de datos SmartPass cifrada que se pueda llamar desde un bloque de contenido Braze. Este bloque de contenido puede reutilizarse para futuros pases y cupones. Durante su integración se utilizará lo siguiente:

  • URL PassKit: Tu URL PassKit es una URL única para tu programa PassKit.
    Cada programa tiene una URL única, y puede encontrarla en la pestaña Distribución de su programa o proyecto PassKit. (por ejemplo, https://pub1.pskt.io/c/ww0jir)

  • Secreto PassKit: Junto con la URL, necesitarás tener a mano la Clave PassKit de este programa.
    Se encuentra en la misma página que la URL de tu PassKit.

  • ID del programa (o proyecto): Tu ID del Programa PassKit será necesario para crear la URL del SmartPass.
    Puede encontrarlo en la pestaña Configuración de su proyecto o programa.

Para más información sobre la creación de enlaces SmartPass encriptados, consulta este artículo de PassKit.

Paso 1: Define la carga útil de los datos de tu pase

En primer lugar, debe definir la carga útil del cupón o del miembro.

Hay muchos componentes diferentes que puede incluir en su carga útil, pero aquí como dos importantes a tener en cuenta:

Para obtener una lista completa de los campos disponibles, sus tipos y descripciones útiles, echa un vistazo a la documentación de PassKit en GitHub.

Ejemplo de carga útil

1
2
3
4
5
6
7
8
{
  "members.member.externalId": "{{${user_id}}}",
  "members.member.points": "100",
  "members.tier.name": "current_customer",
  "person.displayName": "{{${first_name}}} {{${last_name}}}",
  "person.externalId": "{{${user_id}}}",
  "universal.expiryDate": "{{ "now" | date: "%s" | plus: 31622400 | date: "%FT%TZ" }}"
}

Paso 2: Crear y codificar una variable de carga útil indefinida

Para crear y nombrar un nuevo bloque de contenido, vaya a Plantillas > Bloques de contenido en el panel de control de Braze.

Seleccione Crear bloque de contenido para empezar.

A continuación, debe definir su Etiqueta líquida de bloque de contenido. Después de guardar este bloque de contenido, se puede hacer referencia a esta etiqueta Liquid al redactar mensajes. En este ejemplo, hemos asignado la etiqueta de Liquid como {{content_blocks.${passKit_SmartPass_url}}}.

Dentro de este bloque de contenido, no incluiremos directamente la carga útil, sino que la referenciaremos en una variable {{passData}}. El primer fragmento de código que debe añadir a su bloque de contenido captura una codificación Base64 de la variable {{passData}}.

1
{% capture base64JsonPayload %}{{passDatapassData|base64_encode}}{% endcapture %}

Paso 3: Crea tu firma de encriptación utilizando un hash SHA1 HMAC

A continuación, crearás tu firma de encriptación utilizando un hash SHA1 HMAC de la URL del proyecto y de la carga útil.

El segundo fragmento de código que debe añadir a su bloque de contenido captura la URL que se utilizará para el hash.

1
{% capture url %}{{projectUrl}}?data={{base64JsonPayload}}{% endcapture %}

A continuación, debes generar una firma utilizando este hash y tu Project Secret. Esto puede hacerse incluyendo un tercer fragmento de código:

1
{% capture sig %}{{url | hmac_sha1: "Project_Secret"}}{% endcapture %}

Por último, añada la firma a la URL completa utilizando el quinto fragmento de código:

1
{% capture longURL %}{{projectUrl}}?data={{base64JsonPayload}}&sig={{sig}}{% endcapture %}

Paso 4: Imprime tu URL

Por último, asegúrate de llamar a tu URL final para que imprima la URL de tu SmartPass dentro de tu mensaje.

1
{{longURL}}

Llegados a este punto, habrá creado un Bloque de Contenido con el siguiente aspecto:

1
2
3
4
5
6
7
8
9
{% capture base64JsonPayload %}{{passData|base64_encode}}{% endcapture %}

{% capture url %}{{projectUrl}}?data={{base64JsonPayload}}{% endcapture %}

{% capture sig %}{{url | hmac_sha1: "Project_Secret"}}{% endcapture %}

{% capture longURL %}{{projectUrl}}?data={{base64JsonPayload}}&sig={{sig}}&utm_source=braze&utm_campaign={{campaign.${name}}}{% endcapture %}{% capture longURL %}{{longURL | url_encode}}{% endcapture %}

{{longURL}}

En este ejemplo, se han añadido parámetros UTM para rastrear el origen de estas instalaciones hasta Braze y esta campaña.

Paso 5: Ponerlo todo junto

Una vez realizado este Bloque de contenido, se puede reutilizar de nuevo en el futuro.

Puede observar que hay dos variables sin definir en el bloque de contenido de ejemplo.
{{passData}} - Su carga útil de datos de paso JSON definida en el paso 1
{{projectUrl}} - La URL de tu proyecto o programa que encontrarás en la pestaña de distribución de tu proyecto Passkit.

Esta decisión es intencionada y favorece la reutilización del Bloque de Contenidos. Dado que estas variables sólo se referencian, no se crean dentro del bloque de contenido, estas variables pueden cambiar sin tener que rehacer el bloque de contenido.

Por ejemplo, quizá quieras cambiar la oferta introductoria para incluir más puntos iniciales en tu programa de fidelización, o quizá quieras crear una tarjeta de socio secundaria o un cupón. Estos escenarios requerirían diferentes Passkit projectURLs o diferentes cargas útiles de paso, que definirías por campaña en Braze.

Componer el cuerpo del mensaje

Querrá capturar ambas variables en el cuerpo del mensaje y luego llamar a su Bloque de Contenido. Captura la carga útil JSON minificada del paso 1:

Asignar la URL del proyecto

1
{% assign projectUrl = "https://pub1.pskt.io/c/ww0jir" %}

Captura el JSON

1
{% capture passData %}{"members.member.externalId": "{{${user_id}}}","members.member.points": "100","members.tier.name": "current_customer","person.displayName": "{{${first_name}}} {{${last_name}}}","person.externalId": "{{${user_id}}}","universal.expiryDate": "{{ "now" | date: "%s" | plus: 31622400 | date: "%FT%TZ" }}"}{% endcapture %}

Haga referencia al bloque de contenido que acaba de crear

1
{{content_block.${passkit_SmartPass_url}}}

El cuerpo del mensaje debe ser similar al siguiente Una imagen del creador de mensajes del bloque de contenido con el JSON capturado y la referencia del bloque de contenido mostrada.

La URL de salida de la muestra es: La URL de salida que incluye una cadena larga de letras y números generada aleatoriamente.

La URL de salida será larga. La razón es que contiene todos los datos de paso e incorpora la mejor seguridad de su clase para garantizar la integridad de los datos y que no se alteren mediante la modificación de la URL. Si utilizas SMS para distribuir esta URL, tal vez quieras pasarla por un proceso de acortamiento de enlaces como bit.ly. Esto puede hacerse mediante una llamada de Contenido conectado a un punto final de bit.ly.

Actualiza el pase utilizando el webhook PassKit

Dentro de Braze, puede configurar una campaña de webhook o un webhook dentro de un Canvas para actualizar un pase existente basado en el comportamiento de su usuario. Consulta los siguientes enlaces para obtener información sobre puntos finales PassKit útiles.

Parámetros de la carga útil

Antes de empezar, aquí están los parámetros de carga útil JSON comunes que puede incluir dentro de sus webhooks de creación y actualización a PassKit.

Paso 1: Cree su plantilla de webhook Braze

Para crear una plantilla de webhook PassKit y utilizarla en futuras campañas o lienzos, vaya a la sección Plantillas y medios del panel de control de Braze. Si desea crear una campaña única de webhook PassKit o utilizar una plantilla existente, seleccione Webhook en Braze al crear una nueva campaña.

Una vez que haya seleccionado la plantilla de webhook PassKit, debería ver lo siguiente:

  • URL del webhook: https://api-pub1.passkit.io/coupon/singleUse/coupon
  • Cuerpo de la solicitud: Texto sin procesar

Encabezados de solicitud y método

PassKit requiere un HTTP Header para la autorización que incluya tu clave de API de PassKit codificada en base 64. Lo siguiente ya estará incluido dentro de la plantilla como un par clave-valor, pero en la pestaña Configuración, debe sustituir el <PASSKIT_LONG_LIVED_TOKEN> por su token PassKit. Para recuperar tu token, navega a tu proyecto/programa PassKit, ve a Configuración > Integraciones > Token de larga duración.

  • Método HTTP: PUT
  • Encabezado de solicitud:
    • Autorización: Portador <PASSKIT_LONG_LIVED_TOKEN>
    • Content-Type: application/json

Cuerpo de la solicitud

Para configurar el webhook, rellene los detalles del nuevo evento en el cuerpo de la solicitud, incluidos los parámetros de carga útil necesarios para su caso de uso:

1
2
3
4
5
{
  "externalId": "{{${user_id}}}",
  "campaignId": " 2xa1lRy8dBz4eEElBfmIz8",
  "expiryDate": "2020-05-10T00:00:00Z"
}

Paso 2: Vista previa de su solicitud

El texto en bruto se resaltará automáticamente si se trata de una etiqueta Braze aplicable.

Previsualiza tu solicitud en el panel de Previsualización o navega a la pestaña de Prueba, donde puedes seleccionar un usuario al azar, un usuario existente, o personalizar el tuyo propio para probar tu webhook.

Recuperar detalles del pase a través de Contenido conectado

Además de crear y actualizar pases, también puedes recuperar los metadatos de los pases de tus usuarios mediante el contenido conectado de Braze para incorporar detalles personalizados de los pases en tus campañas de mensajería.

Llamada al contenido conectado de PassKit

1
2
3
{% connected_content  https://api-pub1.passkit.io/coupon/singleUse/coupon/externalId/{{${user_id}}} :headers {"Authorization": "Bearer <PASSKIT_LONG_LIVED_TOKEN>","Content-Type": "application/json"} :save passes %}

{{passes.status}} 

Ejemplo de respuestas de Liquid

1
2
3
4
5
6
7
8
9
10
11
{
    "redemptionDate": null,
    "redemptionCode": "",
    "lat": 0,
    "lon": 0,
    "alt": 0,
    "redemptionSource": "",
    "redemptionReference": "",
    "transactionReference": "",
    "transactionAmount": 0
}
1
UNREDEEMED 
¿QUÉ TAN ÚTIL FUE ESTA PÁGINA?
New Stuff!