Back

Release v0.14.0

Dittofeed v0.14.0: Enhanced Performance, New Features, and Improved Developer Experience

Hi all, we're excited to announce Dittofeed v0.14.0! This release includes a log of great stuff for you and your team, including:

  • Mechanism to safely retrieve data from your internal API's, and use the data in your journeys.
  • A Dittofeed Helm Chart!
  • Manual segments, for creating a segment based on a hardcoded list of users.
  • Support for Webhook and SMS broadcasts.
  • Substantial performance improvements.
  • Support for email attachments

Special thanks to our new contributors:

@Ima8

@eltociear

@bhanufyi

If this project interests you, we'd really appreciate a star on GitHub. You can find our repository at https://github.com/dittofeed/dittofeed.

Release Highlights

New: Helm Chart

We've added a Helm chart for easy installation of Dittofeed on Kubernetes! We're happy to report that several teams are already using it in production.

Read more about the Helm chart in our docs here.

New: Manual Segments

We've added a manual segments feature, allowing users to specify a discrete list of users (via CSV) to belong to a segment. This is particularly useful for messaging users based on criteria represented outside of Dittofeed, such as analysis done in your data warehouse.

Read more about manual segments in our docs here.

New: Email Attachments Support

We've added support for email attachments, allowing users to pass files with track user events. We've also introduced a File type user property, enabling file references to be rendered in email templates for attachment sending.

Read more about sending email attachments in our docs here.

Improved: Performance Enhancements

We've made several significant performance improvements in this release. We've upgraded Prisma, which now performs SQL joins by default instead of in-memory joins, yielding substantial performance improvements throughout the application. Additionally, we've upgraded the ClickHouse client, reducing the rate of socket disconnect errors and improving the reliability of our API's write path.

We've also optimized the process assignments step of the compute properties pipeline, substantially improving the speed and memory efficiency of recalculating segments and user properties. Our compute properties durations were reduced by a full 50%!

New: Webhook and SMS Broadcasts

We've added support for webhook and SMS broadcasts, allowing users to send one-off messages to external API's and SMS providers.

New: Random Bucket Segment Type

We've implemented a new random bucket segment type, which is useful for randomly assigning a predetermined percentage of users to one of two paths within a journey. This feature is particularly helpful for testing out new paths within your user journeys, or making one off broadcasts.

Read more about random bucket segments in our docs here.

New: Synchronize Properties Option in Webhook Message Node

We've implemented a "Synchronize Properties" option in webhook message nodes. This option ensures that user properties are re-computed before progressing past the node, which is helpful for calculating user properties based on responses from webhook requests. This feature allows developers to reliably integrate their API's to pull data into their journeys.

Read more about the synchronize properties option in our docs here.

Improved: Segment and User Property Enhancements

We've fixed an edge case where segments conditioned on an event being performed 0 times, or using the less than operator, would sometimes produce invalid results. We've also added support for prefix matches for performed segments and performed user properties, providing more flexibility in defining user segments.

New: Webhook Deliveries Rendering

We've implemented rendering of webhook deliveries on the /dashboard/deliveries page, allowing webhook payloads to be viewed in the deliveries table.

Improved Webhook Message Tags

We've added support for rendering tags in webhook templates, allowing you to send metadata about the journey and template responsible for sending the webhook to your API. This can be useful for attribution, analytics, and more.

Read more about webhook message tags in our docs here.

{
 "config": {
   "url": "<https://httpbin.org/post>",
   "method": "POST",
   "headers": {
     "Content-Type": "application/json"
   },
   "data": {
     "tagValues": {
       "workspaceId": "{{ tags.workspaceId }}",
       "runId": "{{ tags.runId }}",
       "messageId": "{{ tags.messageId }}",
       "userId": "{{ tags.userId }}",
       "templateId": "{{ tags.templateId }}",
       "nodeId": "{{ tags.nodeId }}",
       "journeyId": "{{ tags.journeyId }}"
     }
   }
 }
}

Improved: Admin API's

We've improved the admin API's to allow for more flexibility in creating and updating resources. They now extend to creating and updating segments, user properties, and journeys.

Improved: Track Event Autocomplete

We've implemented autocomplete for event names and their properties in the segment editor, user property editor, and journey builder, making it easier and less error prone to edit these resources.

Fixed: Various Improvements and Bug Fixes

We've fixed a race condition in data loading for the settings file, improving the reliability of our settings management. We've also reduced table TTL's, addressing an issue with excessively long TTL's on ClickHouse updated_* tables, which yields significant space savings.

New: HyperDX Integration

We've added dedicated support for emitting logs to HyperDX with correlated logs and traces. This new feature allows users submitting Dittofeed logs and traces via OpenTelemetry to HyperDX to correlate those signals, providing enhanced visibility into system behavior.

Telemetry

We've added telemetry to Dittofeed. This will allow us to understand how developers are hosting and using Dittofeed. All data collected is totally anonymous.

Emitted signals currently include:

  • The current total number of users.
  • The current total number of sent messages

If you'd like to disable this telemetry, you can pass the environment variable   DITTOFEED_TELEMETRY_DISABLED.

Wrap Up

Release v0.14.0 brings substantial improvements to Dittofeed. If you're self-hosting Dittofeed, make sure to read our upgrade guide at https://docs.dittofeed.com/deployment/self-hosted/upgrade-guide/v0-14-0.

We're excited to see how our users leverage these new features. As always, we welcome your feedback and contributions to make Dittofeed even better. Until next time!

Last post
Next post