Skip to main content

Introduction

Dittofeed provides a set of embedded components that you can use to embed Dittofeed in your application. This enables you to extend your application with messaging automation features including a low-code journey builder, segmentation, email templates, subscription management, and more.
In this guide, we’ll walk you through the steps to embed Dittofeed in your application.

1. Obtain an Parent Admin API Key

Reach out to the Dittofeed team to obtain a Parent Admin API Key for your parent workspace. This key will be used to authenticate your requests to the Dittofeed API.

2. Create a Child Workspace

Create a child workspace. You can optionally associate this with an externalId if you have a business entity or customer in your own system that you want to associate with the workspace. This will make accessing the workspace more convenient. Use the PUT /api-l/admin/workspaces/child endpoint to create a child workspace.
This will respond with the child workspace id and write key.
Make sure to store the write key, which will be used to submit events to the child workspace.

3. Create a Session Token

Use the POST /api-l/sessions endpoint on your backend to create a session token.
This will respond with a session token.
This token can then be passed to your frontend, and used to embed Dittofeed components until it expires. By default, the session token expires in 1 hour.

4. Embed Dittofeed Components

Take your session token and pass it to the Dittofeed components which can be loaded via an iframe.

Journey Editor

The journey editor allows you to create and edit journeys.
Embedded Journey Editor

Create a new journey.

Journey Table

The journey table displays all of the journeys for the child workspace. It provides a way to create new journeys, and view existing ones.
Embedded Journey Table

View all journeys for the child workspace.

Broadcast Editor

The broadcast editor allows you to create and edit broadcasts.
Embedded Broadcast Recipients

Select who you'd like to send the broadcast to.

Embedded Broadcast Configuration

Send a broadcast immediately or schedule it for a later date.

Broadcast Configuration

The broadcast editor supports configuration to customize which steps, providers, and UI elements are available.

Broadcasts Table

The broadcasts table displays all of the broadcasts for the child workspace. It provides a way to create new broadcasts, view existing ones, and archive them.
Embedded Broadcasts Table

Template Editor

The template editor allows you to create and edit message templates.

SMS Editor

The SMS editor allows you to create and edit SMS templates.
Embedded SMS Editor

Email Editor

The email editor allows you to create and edit email templates.
Embedded Email Editor

Template Editor Configuration

The template editor supports configuration to customize which editor types are available.

Templates Table

The templates table displays all of the message templates for the child workspace.
Embedded Templates Table

Segment Editor

The segment editor allows you to create and edit segments.
Embedded Segment Editor

Segments Table

The segments table displays all of the segments for the child workspace. It provides a way to create new segments, view existing ones, and archive them.
Embedded Segments Table

Deliveries Table

The deliveries table displays all of the message deliveries for the child workspace e.g. for sent emails, and SMS.
Embedded Deliveries Table

Deliveries Table Configuration

The deliveries table supports configuration to customize which columns are displayed and how to link to resources in your application.

Analysis Chart

The analysis chart provides time-series insights into your messaging performance. It supports grouping (e.g., by journey, template, channel, provider, and message state), flexible date ranges, percentage view, quick downloads, and a summary panel.

Analysis Chart Configuration

The analysis chart supports extensive configuration to customize filters, grouping options, and how to link to resources in your application.

5. Configure Your Embedded Components (Optional)

You can customize the behavior and appearance of embedded components by creating Component Configurations. This allows you to tailor each component to your application’s specific needs—for example, hiding certain UI elements, restricting available options, or linking to your own user/template detail pages.

Why Use Component Configurations?

  • Simplify the UI: Hide features your users don’t need (e.g., scheduling options, rate limiting)
  • Restrict options: Limit which email providers, editor types, or workflow steps are available
  • Integrate with your app: Use URI templates to link users, templates, and campaigns back to pages in your application
  • Pre-filter data: Show only relevant data by hardcoding filters on analysis charts

How to Create a Configuration

Use the PUT /api/admin/component-configurations/ endpoint to create or update a configuration. Important: The name field must match the component type you want to configure. Each workspace can have one configuration per component type. Example creating a Broadcast configuration:

How Configurations Are Applied

Configurations are automatically applied when loading an embedded component. When your server renders an embedded component page, it fetches the configuration matching the component type for that workspace. For example, when loading the Broadcast Editor for a workspace, the server will automatically fetch and apply the configuration named "Broadcast" for that workspace (if one exists).

Supported Components

The following components support configurations. See the configuration options for each component in their respective sections above.
  • Broadcast EditorBroadcastConfiguration (name: "Broadcast")
  • Template EditorMessageTemplateConfiguration (name: "MessageTemplate")
  • Deliveries TableDeliveriesTableConfiguration (name: "DeliveriesTable")
  • Analysis ChartAnalysisChartConfiguration (name: "AnalysisChart")