Braze Integrations Summary¶
This document outlines the integrations with Braze, facilitated by the Hookdeck platform and internal Python services: HF-API and Webhooks-API.
1. Braze API Endpoints Used¶
We utilize the following Braze API endpoints:
- User Track: POST /users/track
- Email Subscription Status: POST /email/status
- Export User by Identifier: POST /users/export/ids
2. Integration Flows¶
Events are sent to Braze through various channels.
2.1. Hookdeck Connections¶
All events are sent to Braze via Hookdeck connections, using two methods:
- Direct call to Braze:
- Endpoint:
https://rest.fra-01.braze.eu/users/track
- Endpoint:
- Via
webhooks-api:- The
webhooks-apiservice receives events and forwards them to Braze. - Braze Endpoint:
https://rest.fra-01.braze.eu/users/track
- The
Event-Specific Flows:¶
-
NPS Survey (from Typeform)
- Method: Direct call to Braze.
- Endpoint:
https://rest.fra-01.braze.eu/users/track
-
Bundle Purchase Events (from Wunder)
- Method: Via
webhooks-api. - Endpoint:
https://webhooks-api-wlto4pvcsq-nw.a.run.app/braze-events/bundle-purchase
- Method: Via
-
Subscription Purchase Events (from Wunder)
- Method: Via
webhooks-api. - Endpoint:
https://webhooks-api-wlto4pvcsq-nw.a.run.app/braze-events/subscription-purchase
- Method: Via
2.2. HF-API (Internal Service)¶
The HF-api service handles specific use cases for interacting with Braze.
Use Case: Manage Email Subscription Status¶
- Braze API: Email Subscription Status
- Endpoints:
/v1/unsubscribe: Unsubscribes a customer from marketing emails.- Request Body:
{"email": "user@example.com", "subscription_state": "unsubscribed"}
- Request Body:
/v1/subscribe: Subscribes a customer to marketing emails.- Request Body:
{"email": "user@example.com", "subscription_state": "opted_in"}
- Request Body:
Use Case: Get User Subscription Status¶
- Braze API: Export User Profile by Identifier
- Endpoint:
/v1/subscription-status: Retrieves the subscription status for a user.- Request Body:
{"external_ids": ["<customer_id>"], "fields_to_export": ["push_subscribe", "email_subscribe"]}
- Request Body: