Platform
Docs
Solutions
ContactLog In

Changelog

New updates and improvements to Courier.

Follow us on

Twitter

or

subscribe to our

RSS Feed

type

product

Jul 09, 2024

InboxBug Fix

Inbox XSS With Variables

The XSS inbox variable vulnerability allows malicious code to be executed within an inbox notification when the message is opened if the code is included as part of a data variable. This contrasts with directly placing the same code in the inbox template, which renders the code without executing it.

A customer reported the issue and demonstrated using an iframe with a JavaScript alert payload. To reproduce the issue, you must create an inbox template, reference a variable in the template's body, send a data payload containing the malicious code, and then open the inbox message where the code execution occurs. The issue was with our Inbox and Components implementations on version 6.2.1. The release does not fix customers who have implemented their Inbox on top of our APIs; they will need to implement a similar XSS fix if affected. Please reach out to Courier Support for help.

More...

Jun 24, 2024

SendingBug Fix

Cancel Endpoint Issue with Delay Parameter

We fixed an issue where introducing a delay object in the request to the cancel endpoint resulted in a 404 response. Previously, the absence of a database table for requests meant cancellations relied on matching message IDs. Since no messages existed, there was nothing to cancel, causing the endpoint to return an error. This problem has now been resolved, ensuring proper functionality of the cancel endpoint.
More...

Jun 10, 2024

AutomationsBug Fix

Automation Template Data Nesting Issues

When creating a new automation, we resolved an issue where the data object in automation templates was incorrectly nested within the recipient object. This bug caused disruptions in data processing and automation workflows. The fix ensured that data objects were nested properly, improving the reliability and efficiency of automation templates. This only affected new Automation and Send node drafts, and the enhancement guarantees accurate data handling when passing it off from Automation to Send Action.
More...

Jun 10, 2024

MobilePreferences

Courier Preferences Center for Mobile Platforms

The Courier Preferences Center is available for Flutter, React Native, iOS, and Android platforms. Implementing in your mobile application will allow your users to customize their delivery preferences seamlessly. Easy to implement for your mobile developers by using our SDKs, or build your own using Courier API's and the SDKs as examples.
More...

May 22, 2024

Beta

Prevent Message Errors with Variable Not Found

Throw on Variable Not Found (Beta) is a toggleable feature within the notification template settings under the advanced section currently in public beta. When enabled, Courier will prevent any channel from sending a message if required variables aren't filled out, ensuring complete data integrity in your communications. It operates after all conditionals are evaluated, checking only the final content blocks meant for sending, thus not affecting messages with conditional blocks that don't render due to missing variables. This feature is beneficial for managing multiple channels, as it will only block the sending of messages from the specific channel where variables are missing while allowing others to proceed.
More...

May 09, 2024

ImprovementContent

Markdown for List Columns

The new feature enhances our Markdown support by enabling handlebars in column blocks. This will allow design teams to build and organize lists in columns without relying on more technical template blocks. Users can achieve better organization and presentation of content by integrating list blocks into columns with added flexibility.
More...

May 06, 2024

ContentBug Fix

Large-Brands Table Fails to Reflect Changes

The Brands Table feature failed to reflect updates when the number of brands exceeds 1000, leaving the count unchanged despite additions or removals. As a result, newly created brands were not visible in the table and could only be accessed via direct URL or their specific brand endpoint. This issue impedes the user experience by limiting the accessibility and visibility of newly added brands. A fix was implemented.
More...

Apr 30, 2024

ContentBug Fix

Designer Subject Dark Mode Visibility Issue

In dark mode, the email subject appeared as white text on a white background in the Courier Designer. This issue has been fixed
More...

Mar 28, 2024

TenantsBug Fix

List Tenants Endpoint Returning Empty Array

The bug affecting the GET /tenants endpoint, which caused an empty array to be returned when fetching a list of tenants, has been resolved. The issue was due to many archived tenants that hindered proper pagination. The endpoint now accurately returns the correct list of non-archived tenants.
More...

Mar 27, 2024

ImprovementSending

Message IDs Reformat on Fan Outs

A new feature was implemented where Message IDs for array recipients and list-based recipients were suffixed with @{index} and @{userId}, respectively. This change followed customer feedback and aimed to improve traceability by aligning Message IDs with their corresponding Request IDs. This update was fully rolled out over the past two months and recently enabled for ad hoc requests, bulk sends, and automations.
More...

Mar 16, 2024

ImprovementNew

Provider Analytics

We've redesigned our Integrations page to provide analytics about each channel implemented in Courier. You can see usage, errors and error rates broken down by channels at a glance.

Log in and check it out

Mar 07, 2024

BetaAutomationsBug Fix

Automation Digest Trigger Large Item Fix

We resolved an issue where digest invocations were not processed when triggered through a digest trigger in Automations between March 5th and March 7th, 2024. This fix addressed the interruption that a customer experienced when aggregations had many items (>300) and ensured the correct firing of digest triggers. During the affected period, the Add to Digest automation trigger was still invoked, but the digests were not processed.
More...

Mar 04, 2024

AutomationsBug Fix

Automation Logs Handled Large Data Payloads

We addressed an issue where Automation Logs failed to display run context information when handling large data payloads, resulting in a 502 Bad Gateway error. This bug particularly impacted users who sent attachments with extensive content through automation. The problem was traced back to the backend, which could not process large payload sizes. This issue has now been resolved, ensuring Automation Logs function correctly regardless of data payload size.
More...

Feb 23, 2024

ImprovementNew

Settings, API Keys and Dark Mode

We've been hard at work with our new front-end components, and this release shows it.

  • Courier API Keys and Client Keys have moved to Integrations and got a redesign
  • Quick settings in the navigation bar
  • Dark mode Ternary toggle (light, dark and system)

Feb 16, 2024

ImprovementNewWorkspaces

Asset Manager

We redesigned our user interface around Assets to improve the overall user experience for customers with many templates and automations. The new Assets navigation is centered around Templates and Automations and gives a unifying view of activity, channels, and tags.

This also means we've moved a few things out of assets. For example,

  • Brands can be found in Database
  • Preferences are now found in Settings

Feb 06, 2024

ImprovementUsers

Tenants Generally Available

Tenants and User/Tenant Membership is now generally available. While we call the feature tenants, it can be used for any group membership with users. Teams, workspaces, groups, roles, etc. Each tenant can have parent tenants as well.

Using tenants you can

  • Create Tenant hierarchy and parent-child inheritance
  • Override template and notification properties
  • Store properties and metadata for a tenant
  • Specify default preferences for a tenant that will be inherited to the user defaults
  • Brand emails differently per tenant

Start using tenants them with our SDKs, REST, Segment.group(), or Rudderstack.group() events.

Feb 06, 2024

ImprovementAutomations

Enhanced IF Condition with Simple JS String

We introduced an automation IF Condition option that accepts a JavaScript string, documentation. This feature allowed users to easily create complex conditional statements by writing their JS code. The change addressed difficulties in manipulating and comparing values directly within automation workflows, such as handling date differences or static values. As a result, the flexibility and functionality of automation rules improved significantly for our customers.
More...

Jan 22, 2024

ImprovementContent

Translate Handlebars Helper in Subject

Email subject lines now fully support the translation handlebars helper for customers using our internalization features.
More...

Jan 18, 2024

Improvement

Courier Node SDK v6

In the first of its series, we've re-investing in our SDKs by parterning with Fern to launch our newest Node SDK. With use case oriented clients, stronger typing and robust documentation, our v6 is better than ever. Check it out on npm or Github and ask us questions on Discord.

New features include:

  • Resource-scoped SDK methods
  • Docs on Hover
  • Retries with exponential backoff
  • Configurable Timeouts

Jan 16, 2024

MobileNewInbox

Android Mobile Inbox

Courier Inbox simplifies adding a modern notification inbox to web and mobile applications with fully customizable APIs and SDKs and is now available for Android. It seamlessly integrates with other messaging channels like email, SMS, and text messages, ensuring a cohesive user experience where actions in one channel reflect in the inbox or push notifications. Key features include real-time notifications via WebSocket, unread notification counts, and event triggers for delivery and read statuses.
More...

Nov 06, 2023

ImprovementPreferences

React Native SDK Now Supports User Preferences

Courier’s React Native SDK now supports User Preferences.

All 3 of Courier’s User Preferences APIs are now available. The following User Preferences API are now available in Courier's React Native SDK:

  1. Get All Preferences
  2. Get an individual User Preference Topic
  3. Update a User Preference Topic

For more details, refer to the Preferences.md file in the Courier React Native repository.

Oct 12, 2023

NewPreferences

User Preferences JWT Auth Support

Sep 11, 2023

Sep 01, 2023

Bug FixContent

Fixed bug in markdown rendering

There was a bug in rendering <br> tags in Markdown blocks which caused it to render incorrectly. This has been fixed.

Aug 18, 2023

ImprovementLogging

Redacting Sensitive Log Data by Default

Courier now automatically redacts sensitive information in send logs when detected (passwords, keys, etc).

Aug 17, 2023

NewBetaUsersPreferencesSending

Respecting Tenant Preferences During Send

Preferences can now be associated with a tenant. If you send to a user in the context of their tenant, the preferences being applied will be the tenant level preferences, and if its not in the context of a tenant, its picked from user level preferences.

Note, this change does not impact you unless you’re using tenants. See the Tenants API reference for more information.

Aug 16, 2023

ImprovementAutomations

Improved automations 'userId' inference

Automations templates can now infer recipient userId in most cases without manual configuration. User Id is inferred when:

  • An automation is triggered by a CDP (Segment, Rudderstack, Courier)
  • The User id is supplied in the data payload (as user_id or userId) on invoke.
  • The recipient field is set on invoke

Aug 16, 2023

Bug FixPreferences

Tenant Branding Support for Hosted Preferences

The hosted user preference age now uses brands from the tenant when a notification is sent using tenant_id.

Create a tenant using API and attach a brand_id:

1
name: "ACME Inc",
2
brand_id: "acme_brand_new",
3
properties: {
4
ceo: "Person",
5
}
6
}

When you send a notification using the above tenant, the host user preference page links generated by Courier will have appropriate acme_brand_new instead of default brand.

Aug 14, 2023

BreakingBetaSending

Updated Syntax for Sending a Message with Tenants

The syntax for sending with a tenant has been updated to improve distinction vs sending to all members of a tenant with the addition of the context property.

Please see the tenants section of users for examples of this syntax and usage.

Aug 11, 2023

ImprovementContentSending

Push Channel Data Mapping Improvements

Data provided in message.data on send is now forwarded to push providers by default. When sending a notification constructed with elemental, information provided in message.data will also be forwarded to the push provider.

Jul 21, 2023

UsersSendingLogging

More Account Capabilities: Delete user from multiple accounts, send limits

  • Improvements to account management
  • Send limits
  • New integration support for Segment and RudderStack
  • Navigational improvements
  • Bug fixes
More...

Jul 07, 2023

Expanded Account Capabilities: Associating users to accounts, using account properties in templates

  • Expanded account capabilities, like associating users to accounts via API
  • Various UI improvements
More...

Jun 23, 2023

Message cancellation, user-account association

  • Canceling in-progress message delivery
  • Ability to associate users with accounts via the API
  • UI improvements
  • Bug fixes
More...

Jun 16, 2023

Resend email provider, accounts API support for brands

Resend has been added as an email service provider — so now if you navigate to Channels, you’ll find Resend in the provider catalog.
More...

Jun 09, 2023

Accounts API, dynamic data mapping for notification templates

  • New Accounts API for multi-tenancy use cases
  • Improvements to working with personalized notifications that pull in dynamic data
  • Improvements and bug fixes
More...

May 26, 2023

API key management for all users, dynamic throttling keys

  • Create and manage api keys now available for all users
  • Support for dynamic throttling keys
  • Bug fixes and improvements
More...

May 19, 2023

Digests, batching, throttling in Automations, and Android Inbox

  • Availability of digests, batching, and throttling in Automations.
  • Improvements and fixes to Inbox, the Android SDK and more.
More...

May 12, 2023

New Relic integration, CourierJS SDK track call

  • Improving observability with New Relic
  • CourierJS gets a track call added
  • Lots of improvements and fixes
More...

May 05, 2023

One-time sends, auto multi-channel content, and template usage insights

  • Sending one-off messages using the UI
  • More GPT-powered content
  • Improved template fields
  • Otger improvements and bug fixes
More...

Apr 28, 2023

Message limits, email open tracking, SendGrid import

  • Throttle messages to preserve user experience
  • Email open tracking for template overrides
  • Importing existing SendGrid templates
  • Improvements and bug fixes
More...

Apr 21, 2023

Inbox message icons, JS client SDK, Datadog

  • Customize inbox message icons
  • JavaScript client-side SDK
  • Integration with Datadog for notification observability
  • Improvements and fixes
More...

Build your first notification in minutes

Send up to 10,000 notifications every month, for free.

Get started for free

Email & push notification

Platform

Users

Content

Channels

Sending

Workflows

Preferences

Inbox

Workspaces

Observability

API Status

Changelog

© 2024 Courier. All rights reserved.