Braze
The Braze integration allows Karla to provide your Braze account with triggers of any sort, like shipment notifications or claims.
Steps
1. Open Braze & navigate to Settings
Navigate to your Braze dashboard and click on the Settings icon in the top navigation bar.
2. Navigate to APIs and Identifiers
In the Settings menu, select APIs and Identifiers from the sidebar.
3. Create REST API Key
In the REST API Keys section, click on Create New API Key.
Name your API key "Karla Integration" for easy identification.
4. Assign Required Permissions
When creating your API key, you must assign the following permissions:
Required Scopes
users.track- Allows Karla to send custom events and user data to Brazeusers.export.ids- Allows looking up user profiles by email to validate and match customers with delivery events
These two permissions are the minimum required for the integration to work. The users.track permission enables Karla to send custom event triggers to Braze, while users.export.ids allows checking user profiles by email address via the /users/export/ids endpoint.
5. Save and Copy the API Key
Click Save to create your API key. Copy the generated REST API Key immediately, as it cannot be viewed again after you navigate away.
Once you create a new REST API key, you cannot edit the scope of permissions or the whitelisted IPs. If you need to change the scope of a key, create a new key with the updated permissions and implement that key in place of the old one.
6. Set up the REST API Key in Karla
In our portal, navigate to Settings > Integrations, and select Braze.

Paste the REST API Key into the API Key field.
You'll also need to provide your Braze Instance URL (also called REST Endpoint). This can be found in the Braze dashboard under Settings > APIs and Identifiers. It will look like https://rest.fra-01.braze.eu or similar, depending on your cluster.
Click on Save.
Building Braze Canvas Workflows
Our Braze integration will automatically create custom events prefixed with karla_ for all delivery journey events.
From there, you can create Canvas workflows relying on these events to configure your own email flows.
Recommended Canvas Priority
To cover the most important delivery journey events, we recommend first creating Canvas workflows for the following event groups:
karla_shipment_in_transitkarla_shipment_carrier_delaykarla_shipment_damagedkarla_shipment_out_for_deliverykarla_shipment_delivered_all_eventskarla_shipment_not_picked_up_returnedkarla_shipment_failed_returned
By creating these 7 Canvas workflows you will be able to cover standard events happening for every order (karla_shipment_in_transit, karla_shipment_out_for_delivery), all delivered cases (karla_shipment_delivered_all_events) and the events that hopefully do not happen too often, but where it is most important to be proactive with your customers (karla_shipment_carrier_delay, karla_shipment_damaged, karla_shipment_not_picked_up_returned, karla_shipment_failed_returned).
Braze uses namespaced event groups (like karla_shipment_delivered) while webhooks use ref patterns (like shipments/delivered/SUCCESSFULLY_DELIVERED). Event groups are business-friendly names that group multiple specific events for easier automation management.
For complete documentation, see: Events Reference
Creating a Canvas Workflow
Step 1: Create New Canvas
Navigate to Messaging > Canvas in the left sidebar, then click Create Canvas.
Step 2: Set Up Entry Schedule
In the Entry Schedule section:
- Select Action-Based as the entry type
- Choose Perform Custom Event as the trigger
- Select the Karla custom event you want to trigger this Canvas (e.g.,
karla_shipment_delivered) - Optionally add property filters to further segment which events trigger the Canvas
When using action-based entry with custom events, you can access the event properties throughout your Canvas using {{canvas_entry_properties.${property_name}}} in your Liquid templates.
The available event properties are the same as documented in Event-specific Data (within event_data).
Step 3: Add Target Audience
Configure your target audience filters. For shipment notifications, you typically want to include all users who trigger the custom event, but you can add additional filters as needed.
Step 4: Build Canvas Flow
Add components to your Canvas:
- Message Step - Drag the Message component from the sidebar
- Select Email as the messaging channel
- Configure your email content with personalization using Liquid syntax
- Add additional steps like delays, decision splits, or action paths as needed
Step 5: Configure Message Content
In your email Message step, you can use both canvas entry properties and user attributes for personalization:
{{canvas_entry_properties.${order_number}}}
{{canvas_entry_properties.${tracking_number}}}
{{canvas_entry_properties.${carrier_reference}}}
{{canvas_entry_properties.${estimated_delivery_date}}}
Step 6: Test and Launch
- Use Braze's Preview & Test functionality to verify personalization
- Send test emails to ensure proper formatting
- Review the Canvas flow for logical errors
- When ready, click
Launch Canvas
Inserting the tracking page link
To include the tracking page link in your Braze transactional emails you should use Liquid personalization with order_number and zip_code properties, so that your customers always receive their personalized link:
For emails triggered through Braze:
Karla events
https://app.gokarla.io/track/slug?orderNumber={{canvas_entry_properties.${order_number}}}&zipCode={{canvas_entry_properties.${zip_code}}}&ref=karla
https://yourshop.com/pages/tracking?orderNumber={{canvas_entry_properties.${order_number}}}&zipCode={{canvas_entry_properties.${zip_code}}}&ref=karla
Shipping Confirmation
Triggered by external events from your shop system.
https://app.gokarla.io/track/slug?orderNumber={{canvas_entry_properties.${order_number}}}&zipCode={{canvas_entry_properties.${shipping_zip}}}&ref=karla
https://yourshop.com/pages/tracking?orderNumber={{canvas_entry_properties.${order_number}}}&zipCode={{canvas_entry_properties.${zip_code}}}&ref=karla
A slug is your unique identifier that represents your shop within the Karla system. This is used to properly route tracking information and ensure that shipment data is associated with the correct merchant account.
Testing the Canvas workflows
Once you've set up the Canvas workflows and the respective emails it is important you make sure that the integration is working as expected.
In the Message step, use the Preview & Test functionality to verify:
- All Liquid tags are rendering correctly
- Canvas entry properties are displaying expected values
- Email formatting appears correctly across devices
You will see accurate customer information only after you have integrated your shop with Karla. The preview will show test data until real events are flowing. More on shop integrations
Putting the Canvas workflows live
After you have tested your Canvas workflows, you can launch them upon the agreed go-live date.
Make sure you have configured the proper sending settings and have disabled any frequency caps for transactional emails, so that all of your customers receive their shipping updates.
Event Groups
Karla provides the following event groups to your Braze instance for building Canvas workflows. These are business-friendly groupings that make it easier to create targeted campaigns without dealing with individual event names.
Event groups are specifically designed for Braze integration and are different from webhook ref patterns:
- Event Groups: Business-friendly names, prefixed by
karla_(e.g.,karla_shipment_delivered) - Webhook Refs: Technical identifiers (e.g.,
shipments/delivered/SUCCESSFULLY_DELIVERED)
For complete documentation of all events, ref patterns, and event groups, see: Events Reference �
Common Use Cases
Post-Delivery Review Request
Event Group: karla_shipment_delivered
Timing: 2-3 days after delivery (use Delay step)
Content: Thank you message + review request
Pickup Reminder
Event Group: karla_shipment_delivered_to_parcel_shop
Timing: Immediate + daily reminders (use Delay and Decision Split steps)
Content: Pickup location, hours, deadline
Delivery Issue Resolution
Event Group: karla_shipment_delivery_failed
Timing: Immediate
Content: Failed reason, next steps, support link
Proactive Delay Communication
Event Group: karla_shipment_carrier_delay
Timing: As soon as delay detected
Content: New ETA, apology, compensation if applicable
Best Practices
1. Email Content Guidelines
- Be Specific: Reference the exact delivery status
- Include CTAs: Add tracking links and next steps
- Personalize: Use canvas entry properties and user attributes for personalization
- Mobile-Optimize: Most tracking emails are read on mobile
2. Testing Recommendations
- Test each event group Canvas separately
- Verify Liquid tags populate correctly using Preview & Test
- Check email rendering across devices
- Monitor delivery rates and engagement in Braze analytics
3. Canvas Flow Best Practices
- Use Delivery Validations in Message steps to ensure users still meet criteria at send time
- Leverage Action Paths to branch based on user behavior after initial message
- Add Delay steps for time-based follow-ups (e.g., pickup reminders)
- Use Decision Splits to create different paths based on user attributes
Troubleshooting
Events Not Triggering Canvas
- Verify event group name matches exactly (case-sensitive)
- Check REST API key has
users.trackpermission - Confirm Canvas is launched (not in draft mode)
- Verify Entry Schedule is configured for action-based delivery
- Check that target audience filters aren't excluding users
Missing Data in Emails
- Ensure all Liquid tags match canvas entry property names
- Check syntax:
{{canvas_entry_properties.${property_name}}} - Use Preview & Test with sample data to verify rendering
- Verify the custom event includes the expected properties
Canvas Entry Issues
- Check if there's a race condition between audience filter and trigger event
- Verify users meet both the trigger event criteria AND audience filters
- Review Canvas analytics to see where users are exiting
- Ensure Delivery Validations aren't too restrictive
API Authentication Errors
- Verify REST API key is active (not deleted or regenerated)
- Check that the correct REST endpoint URL is configured in Karla portal
- Confirm IP whitelist includes Karla's IPs (if IP whitelisting is enabled)
- Verify API key has required permissions:
users.track,users.export.ids,events.list
Advanced Features
Using Action Paths
Action Paths allow you to split users based on actions they take or don't take during the Canvas journey:
- Add an Action Paths step after a Message component
- Configure the action you're waiting for (e.g., email open, custom event)
- Set a time window for the action
- Create different Message steps for each path (took action vs didn't)
When using Action Paths with custom events, you can access {{event_properties.${property_name}}} in the first Message step following the Action Paths component. For subsequent steps, use {{canvas_entry_properties.${property_name}}} instead.
Property Filtering
When setting up your Canvas entry schedule, you can add property filters to further segment which events trigger the Canvas.
Intelligent Timing
Enable Intelligent Timing in your Message steps to send emails at the optimal time for each user based on their engagement history with your emails.
Security Best Practices
- Rotate API keys periodically - Create a new key and update it in Karla before deleting the old one
- Monitor API usage - Use Braze's Developer Console to monitor API calls and look for anomalies
- Limit permissions - Only grant the minimum required scopes listed above
Support
- Karla Integration Support: [[email protected]]
- Braze Technical Support: Refer to your Braze Customer Success Manager
- Technical Documentation: Karla Events
- Braze Canvas Documentation: Braze Canvas Guide