The latest releases and improvements to Knock.

Feed components: dark mode, pagination, and archiving

We've bundled a whole heap of new fixes and improvements in our 0.5.0 release of our React in-app notification feed component:

  • 🌱 Support for dark mode via the new colorMode prop
  • 🌱 Added automatic pagination support for when there are more than 50 messages in the feed
  • 🌱 Notifications can now be archived easily from the feed component
  • 🌱 Added support for overriding the avatar rendered in the notification cell
  • 🐛 Fixed an issue with dismissing the component in the popover not working when using the trigger
  • 🐛 Fixed an issue where the avatar would show > 2 characters for names that are more than 2 words
  • 🐛 Updated all of our dependencies to the latest and greatest versions

You can also read about how to get up-and-running using our feed components in our new blog post.

Message previews

We now support sent messages previews in the Knock dashboard! Just head on over to a sent message and go to the 'Preview' tab to see a representation of the message that we sent to the customer.

Example of a message preview on iOS

Fixes and improvements

  • 👀 Shipped @knocklabs/client@0.5.0 which includes a new networkStatus API and optimistic archiving support on the feed
  • 🌱 Switched to using refresh tokens in the dashboard to prevent frequent logouts
  • 🌱 Moved to using a tags for our tables so now right clicks and other browser features just work
  • 🌱 Workflows now show when they have pending changes
  • 🐛 Improved the click area on our table cells for ease of navigation
  • 🐛 Fixed an XSS vulnerability in our message editor
  • 🐛 Fixed a bug where cloning workflows doesn't enforce the key constraints
  • 🐛 Fixed some users being incorrectly logged out in the dashboard

Fixes and improvements

It's a short week here at Knock HQ, but we've still got some goodies for you:

  • 👀 Added support for dynamic delays specified by a value in the notify data payload
  • 🌱 Improved the way long workflow names are handled in the dashboard, as well as some other layout fixes
  • 🌱 Added pagination to the workflow list in the dashboard
  • 🌱 Improved the in-app notification feed rendering speed
  • 🐛 Fixed an issue with a batch step so a specified duration is honored instead of always using a default 30s
  • 🐛 Fixed an issue with FCM where integers and booleans in the data payload would cause an error when sending messages
  • 🐛 Fixed an issue where users with non-url encoded characters in the id wouldn't load in the dashboard

View delivery logs

The dashboard now lets you inspect message delivery logs!

Our new delivery log viewer makes it very easy to see every request to and response from your downstream providers for each message, which provides full visibility into the downstream execution history of a message.

For example, when you're configuring a new channel with Knock, you may run into errors from a downstream provider like SendGrid or Apple's Push Notifications Service. If you can't see these errors in Knock, it makes it hard to know what's going on and how to fix the problem. Delivery logs make it easy to investigate issues like this.

To view these logs:

  1. On the dashboard, open the Messages page (You can also open the Messages tab for any of your users)
  2. Click on the message you would like to inspect
  3. Open the Debug panel to explore each request & response linked to that message

(Note: Messages sent to our in-app feed will have no debug logs because they are entirely managed by Knock.)

Fixes and improvements

  • 🌱 We updated the channel and the workflow page to display each provider's brandmark where relevant for better UX
  • 🌱 We added a new user's "channel data" page for viewing the configured channel data for each user
  • 👀 When configuring a new channel, available providers are now organized by channel type making it easy to find and selected the provider you want
  • 👀 We added support for removing items in a batch via our cancellation API
  • 👀 We improved how we render liquid templates
  • 👀 We pushed updates to our SDKs for Python, Ruby, Elixir, and Node to support our latest features, including the new channel data API for managing user-specific data such as device tokens for push notifications

Push notification support

Push it to the limit. 🤘 We now support sending push notifications from Knock.

If you're using native push notification services (such as Apple Push Notifications service or Firebase Cloud Messaging), you can quickly configure your provider as a push channel within Knock and add it to any of your existing notification workflows. We also support platform-specific previews, so you can see what your push notification looks like across iOS and Android.

As always, push can be used with the Knock preferences model to manage a given user's preferences for receiving push notifications alongside their preferences for other channels such as email, in-app feeds, and SMS.

(Note: We are not supporting intermediary push notification services such as OneSignal in this release. But we will be soon. If that's you, shoot us a note at and let us know.)

Fixes and improvements

  • 👀 We added our Ruby SDK to the code examples modal on our workflow trigger step
  • 👀 We cleaned up the placeholder copy in our sign up flow
  • 🐛 We fixed a bug in our quick start guide example
  • 🐛 We fixed a bug for handling unknown message statuses

Ruby SDK

We've expanded our SDK coverage to support Ruby, the shiny "gem" of a language that's ever popular in the startup community. That means you're now easily able to integrate Knock into your Ruby-on-Rails applications!

You can get started with the Ruby SDK by running gem install knockapi or checking out the repo.

Want an SDK that we don't currently support? Let us know and we'll consider adding it.

Fixes and improvements

  • 🌱 You can now see the phone number and avatar under the main properties on the user page
  • 👀 We made the API keys and other sensitive values hide their values by default
  • 👀 We fixed an issue whereby you couldn't load message information on the user page in the dashboard
  • 🔐 We added rate-limiting to critical endpoints in the management API as well as adding other security patches

SMS support

We now support sending text messages from Knock. If you're using an existing SMS platform provider (such as Twilio,) you can quickly configure your provider as an SMS channel within Knock and add it to any of your existing notification workflows.

As with all of our channel types, SMS can be used with the Knock preferences model to manage a given user's preferences for receiving SMS messages alongside their preferences for other channels such as email and in-app feeds.

We had a number of requests from our early customers to support SMS, and we're excited to add this new channel type to Knock to help our customers orchestrate their cross-channel notifications.

Fixes and improvements

  • 🌱 We updated our channel model in Knock to make it easier to change which provider you're using for a given step in a notification workflow. This helps with multi-provider management and will have a number of benefits as we support push and chat app notifications later this summer. Stay tuned
  • 👀 We updated our in-app feed react component to use plain CSS instead of CSS-in-JS. Two nice wins here: the package is smaller and you can extend/override the default CSS used in the component
  • 👀 We updated the default behavior of the in-app feed component to wrap text without breaking words
  • 👀 We improved our topbar height consistency throughout the dashboard to minimize content layout shift as you navigate between the workflow builder and the notification designer
  • 👀 We improved our toast component to make it dismissible in cases where it might block functionality

Fixes and improvements

We're heads down on some big new features this week, and we'll have more to say about that soon. For now we have a smattering of improvements for you:

  • 👀 We added the ability to copy channel environment configuration from one environment to another, making it faster to setup your channels when your environment specific channel configuration is the same
  • 🌱 Triggering a workflow via the API now returns an error if the actor specified does not yet exist
  • 🌱 We added anchor links to our documentation site so that you can easily deep link to each heading
  • 🐛 We fixed an issue where you could get stuck in an unauthenticated state on the dashboard
  • 🔐 We've been hardening our infrastructure security to lock down any outside attack vectors

Mailgun integration

We now support Mailgun as an email provider within Knock!

If you are currently using Mailgun to send emails to your customers, you can now configure a new email channel with Mailgun in Knock and start using it in your workflows in no time.

Fixes and improvements

  • 👀 We improved the template editor experience where you can now select a different user as an actor or a recipient when crafting your notification template
  • 👀 We added the ability to include a custom message when inviting other team members to your Knock account
  • 🌱 We added support documentation accessible via the '?' icon in dashboard header
  • 🐛 We fixed the user preferences page to be read only (user preferences are updated via the Knock API)
  • 🐛 We fixed a bug in the template editor where switching to text view didn't allow editing email texts
  • 🐛 We fixed small styling inconsistencies across various popover menus in the dashboard header

Variable and state explorer

When you design a cross-channel notification, you use a lot of shared variables across each of its per channel templates. Whether a notification about a new comment is sent across email, push, or in-app, it's always going to include context about the page it was left on and who left it.

We just shipped our variable explorer to manage this shared state across the different channel templates you design within Knock. The variable explorer makes it super easy to see which properties are available for use within a given workflow, whether they are global variables within your Knock account, properties from your notify or identify calls, or even temporary state generated by functions within your workflow.

Create a property once, then use it across all of the channel templates within your notification workflow. Try it out and let us know what you think.

Amazon SES integration

We now support Amazon's Simple Email Service (SES) as an email provider within Knock. This means that if you already use SES to send emails to your customers, you can get a Knock email channel up and running in minutes. We handle all email orchestration and user preferences with SES, all you have to do is configure your notifications within Knock and we take care of the rest.

You can learn more about how to configure SES in your Knock account in our support documentation.

Leave us feedback

We added a new feedback component to the dashboard so you can tell us what you love and don't love about Knock. We want all the feedback we can get so have at it.

Fixes and improvements

  • 👀 We improved the workflow builder so that recently configured channels appear in the builder without a browser refresh
  • 👀 We improved the empty state in the workflow builder to help guide new users to channel configuration
  • 👀 We updated the message details pane to make it more actionable
  • 🐛 We fixed a bug in the message details pane where recipient info was being displayed instead of actor info
  • 🐛 We fixed a bug related to multi-environment channel configuration

Fixes and improvements

  • 👀 We improved the design of the trigger condition UX to make it easier to add conditions to a channel within a workflow (e.g. if you only want to send an email based on the read status of an in-app message)
  • 👀 We added tooltips to our disabled states
  • 🌱 We added a new state for when you switch between environments while viewing a resource that doesn't exist in the target environment. Instead of getting a 404, we tell you why the resource wasn't found and direct you to other environments in which you might find it
  • 🐛 We fixed a bug where deleted users would cause the message log to error
  • 🐛 We fixed a bug where creating a new step in the workflow builder would cause the page to 404
  • 🐛 We fixed a text overflow bug in the variables table
  • 🐛 We fixed a bug where real-time updates to your workflow schema wouldn't appear in the trigger step payload without a refresh

Ready to get started?

Check out our documentation and sign up for an account.

Sign up