Company logo

Built by Thomas

Thomas Kainrad's avatar
Thomas Kainrad
Software Engineer @ CommandBar
GitHub logoLinkedIn logo
May 19, 2024

🔮 Know thy user

Shannon McIntosh's avatar
Thomas Kainrad's avatar

Plot twist: Users don't actually hate pop-ups. They hate irrelevant, mistimed, interrupting pop-ups. And that's basically all pop-ups.

But if you can make your in-app messaging NOT irrelevant, mistimed, and interrupting... users will find it useful!

That's why we've built behavioral nudge triggers:

your image alt text

💭 User confusion: Triggers when users are confused and can't find what they're looking for (we base this on mouse movements and click patterns).

→ Use case: show a survey that asks "what are you trying to do" (you'll get really interesting results) or ask users to select from 3 use cases they might be interested in.

😡 Rage click: Triggers when users are angry and clicking in the same place more often than anyone reasonably should.

→ Use case: Offer up a therapy session with Copilot chat so they can ask a question (or maybe just suggest refreshing the tab)

🕕 Smart delay: Triggers when a user has settled into your product to make sure you don't interrupt them while doing something important.

→ Use case: Making sure webinar invites and other non-urgent announcements don't interrupt users while they're doing something important.

💌 Easier invites

Want to invite more colleagues to CommandBar? Thomas gave invites a refresh to help you work with your entire team to make life better for your users:

your image alt text

❓ Instant NPS surveys

Want to run an NPS survey? You could always do it, but had to manually build it. To make that more non-annoying, Shannon built an NPS block you can insert into nudges:

your image alt text

📍The Detail Dungeon

❎ Dismissible Checklists

In service of being more non-annoying, Shannon made Checklists dismissible. your image alt text

That's all we've got this week. I'll catch you in 2 weeks. As always: Keep it user-friendly!

April 21, 2024

💬Analytics szn

Gus Gordon's avatar
Nicola Badenhorst's avatar
Shannon McIntosh's avatar
Thomas Kainrad's avatar
Wes Feller's avatar

Howdy folks!

It's here. It's finally here. Get your partner in front of the screen and tell your kids The Lego Movie's over because you need the big screen. Yes, the CommandBar changelog is here.

💬Copilot Analytics

Your users are talking. Now you're listening: Copilot now has analytics:

your image alt text

Copilot has been around for a while, but we've now added the guac to the burrito by giving you the insights you need.

Now you can discover:

  • Replay all Copilot chats: See what users are asking for (and how) to discover user intent and surface what's unclear in your interface.
  • End user feedback (👍/ 👎 ) on all conversations: Find out where AI answers need work and optimize your docs.
  • All chats where AI used a fallback: When the AI couldn't generate an answer, you'll find out here to spot gaps in your documentation or find other errors.

Plus some quantitative data like opens, users and the success rate.

Sound good? Head to Copilot analytics and mine it for insights. Then look super smart in your next meeting. If anyone asks where those insights come from, a classic is "They were revealed to me in a dream."

Okay, career advice over.

📍The Detail Dungeon

As product nerds, we love the small details. Figured you might, too. So here are 3 cool things we shipped:

  • Back by popular demand: Thomas re-shipped the "unsaved changes" modal, which we had shipped and then unshipped.

your image alt text

  • Gus added an option to make Copilot answers "training only," meaning it won't use them verbatim, but let AI use its own words.

your image alt text

  • Thomas added a nice banner to make product tours more non-annoying by recommending a start page.

your image alt text

  • Gus enabled PDF upload for Copilot so you can turn any PDF into training content.

your image alt text

That's it for this edition of the changelog. As always: Keep is user-friendly.

February 12, 2024

Spotlight 🤝 Copilot

Maggie Pizzo's avatar
Nicola Badenhorst's avatar
Thomas Kainrad's avatar

Two main changes coming to your nearest CommandBar this week. Let's get into it.

Spotlight + Copilot = 👯

We like to think CommandBar experiences are friends. And what do great friends do? They help each other. Thomas and Nicola brought Copilot and Spotlight closer together. Your users can now access the AI assistant whenever they use Spotlight to search something.

your image alt text

Bulk select for Videos

Maggie has added a nifty new option to your Content tab so you can bulk select Videos you've imported and apply changes to all of them at once.

your image alt text

January 28, 2024

So. much. targeting.

Abiose Imran's avatar
Lucas Howard's avatar
Paul Hultgren's avatar
Thomas Kainrad's avatar
Tyler Wanlass's avatar

Believe it or not, between launching ShipLog (where you're reading this right now) and putting together our first-ever session of CommandTalks, we managed to ship some pretty cool stuff you should know about.  

🚢 The ShipLog has sailed

Last week was all about ShipLog, the new tool we launched to help you write beautiful changelogs quickly. If your 2024 resolution was to revive that changelog you haven't touched since 2014, this is your chance. 

🙂 Don't sleep on Spotlight 

Thanks to Thomas, you can now use Spotlight inside CommandBar to quickly jump to any Nudge (product tours, surveys, etc) or piece of content (answers, files, etc).

your image alt text

🎯 More targeting?

We just can't stop. 

Paul is pretty serious about our quest to obliterate annoying nudges. We know how showing everything, to everyone, all at once, no longer works. So we want to let you be as specific and intentional as possible when showing a nudge to a user. 

This means that you can now use user properties (not just metadata) to target CommandBar experiences. If you're familiar with analytics tools, you'll probably know what these are. If not, you can think of them as attributes unique to each user. Things like roles, activity, preferences, or any specific information you know about your users. By using these, you make CommandBar experiences more relevant and less intrusive. 

January 15, 2024

🎯 Bringing content in one place and more targeting

Maggie Pizzo's avatar
Paul Hultgren's avatar
Thomas Kainrad's avatar
Wes Feller's avatar

The first CommandBar updates of the year are here.

You might know about our obsession with easy-to-use, non-annoying software. Many of the features we ship are built with your users in mind. But that's not to say we don't care about you (we do 🥹). 

From time to time, we want to make sure that how you're setting up experiences in the CommandBar app is as clear as possible. So as a follow-up to our dashboard decluttering from December, we've done some more cleanup to help you find things easier.  But first... 

🥸 Let's talk atrocious product tours

Info for "Building product tours that don't suck" workshop

We're doing a deep dive into real-life examples of great and not-so-great product tours (we promise not to name and shame... much). Join us to learn how to build tours that your users don't dismiss immediately (or drop off before step 2).

Sign up here.

Now, onto the...

Product Updates

💫 Content, content everywhere

Traditionally, content you were bringing into CommandBar lived in many places (you were able to add stuff from HelpHub tab, Integrations, etc). This caused confusion. And we hate user confusion. So Maggie and Thomas brought everything together, in one place, under the Content tab.

Why should you care?

This makes it easier for you to find where to upload and sync things like help docs, website scrapes, answers, videos, and custom docs.

It also makes it easier for you to edit, sort, or filter this content (such as making a source available for training only or making it private).

🎯 When targeting nudges, you can now trigger “On event tracked” based on more detailed properties of the event. For instance, if a user clicks a button, instead of just responding to any button click, you can target the response based on specific properties of that event, like whether the button was for "checkout," "start now," or "pay now." Shoutout to Paul 👊 and keep your eyes peeled for more hyper-detailed tracking coming soon.

⏳ Wes added a new trigger for nudges: after time on page lets you define a period of time before you nudge a user with an experience (i.e. Show your shiny new feature 10 seconds after your user opens the app. You know, so you don't startle them.)

July 17, 2023

Draggable Questlists

Thomas Kainrad's avatar

🙅‍♂️⛔ Fixed Questlists obstructing your content

💁‍♂️✅ Draggable Questlists

Now users can easily move your Questlists side to side by simply clicking and dragging the Questlist header.

That means no more “The questlist is blocking me from doing the thing I need to do to complete the questlist”. Don’t give your users excuses!

Need ideas on how to use Questlists? Check out our docs for inspiration from the best checklist builders of our generation.

May 2, 2023

Instant Answers in the Bar

Thomas Kainrad's avatar

What's better than succinct, hyper-relevant search results? Answers.

We first brought Instant Answers to our new widget, HelpHub, that we built specifically to showcase help content. Think of instant answers like FAQs -- short question and answer pairs that you can write manually or with the help of AI. They're great for users because they give them exactly the info they need to move on with their life, erm, session.

Now, those same Instant Answers can be made available through your users in your Bar. When a user searches, if an Instant Answer semantically matches their query, we'll show it (alongside any other relevant results like commands or help docs or records).

March 27, 2023

Command + click now opens commands in a new tab

Thomas Kainrad's avatar

In a web browser, using command+click (⌘+click or enter) on a link opens it in a new tab. But for commands in CommandBar, this wasn't the case. Instead, the command would only open in a new tab if the link command was set with a "new tab" setting. This could be confusing, so we've changed it.

Now, holding the command button and clicking with the mouse or hitting enter will open the link in a new tab. This works for both link commands and records.

Note that if you were previously using power select, that shortcut has moved to the shift key to make way for this change.

January 11, 2023

Questlist themes

Thomas Kainrad's avatar

You can now add themes to your Questlists, which enable you to style them to match the rest of your app. Questlists allow you to create checklist-like action lists for your users to follow. These are great for onboarding and teaching your users new features.

Questlist themes allow you to customize the look and feel of your Questlists, giving them a cohesive appearance that blends seamlessly with the overall design of your app. With the ability to add themes, you can now make your Questlists more engaging and user-friendly, providing a better experience for your users as they complete tasks and learn about new features. To access the new theme feature, go to the settings menu within your editor and select the theme you want to adjust.

January 2, 2023

Built-in user activity and usage conditions

Thomas Kainrad's avatar

We've added support for user activity and usage data to be used in conditions. For example, we now natively support conditions such as "last seen at" and "number of executions."

These can be used for any conditions throughout CommandBar with zero engineering work. Namely, these conditions can be used to:

  • Control when nudges get shown
  • Control when commands are available
  • Control when commands are recommended
  • Control when Questlists get shown

Options include:

  • Activity properties: First seen, last seen, # shortcuts executed, # sessions
  • Usage properties: # opens, # deadends, # commands executed

Previously, you'd have to build these conditions yourself in JavaScript — now, they're just built in!

December 19, 2022


Thomas Kainrad's avatar
Vinay Ayyala's avatar

We have a big new feature to announce: Questlists. Questlists can be used to bring your users through an onboarding flow, get them set up with a new feature, or push them to do certain actions or flows within your app:

Essentially, Questlists are chains of actions, nudges, or anything that your users can complete. For example, you could string together a number of different nudges that walk your users through turning on a new feature that you just released.

Each item in a Questlist has a title, description, CTA, and completion condition. You can define what the CTA does — for example; it could execute a command or bring the user to a certain page. Additionally, you can define a completion condition that controls when the item gets marked as completed. The completion condition can be when the CTA is clicked or something more complex.

Questlists, nudges, and commands all play well together — if you already have commands set up, nudges and Questlists are easy to add. Give Questlists a try, and let us know what you think!

Read more about Questlists in our documentation.

November 15, 2022

Bulk add metadata

Thomas Kainrad's avatar

Now, it's possible to add multiple pieces of metadata at once with addMetadata. Doing this, it's easy to push a bunch of data about a user or their account into CommandBar so that CommandBar can react with nudges, recommendations, or questlists.

If you have a JavaScript object that contains data about your users, simply pass that to addMetadata to have CommandBar start reacting to changes in those variables (after you connect the variables to commands, nudges, etc. of course).

Read more about the change in our SDK docs.

November 15, 2022

Event primitive

Thomas Kainrad's avatar

We recently introduced a new event primitive that allows you to send events to CommandBar, and then have CommandBar react to those events. While metadata is useful for passing values, events are ideal for situations where the user took some action or where there is a change in your app.

For example, you could push an event to CommandBar when the user does something like publishes a new article. Then, using those events, CommandBar can react and push out a nudge, etc. Additionally, you can have CommandBar only react when a certain number of events have occurred — for example, when the user has published three articles, you might want to suggest that they organize their articles into folders.

See our documentation here for more details

August 28, 2022

Slash filters

Thomas Kainrad's avatar

Search tabs give users a superpower by making it both intuitive and easy to filter their search. There were previously just two limitations:

Search could only be filtered to existing search tabs Using a search tab required a mouse click Now, we've eliminated both of these pain points with slash filters. Slash filters allow users to filter on any record or command category, with just a few keystrokes.

August 14, 2022


Thomas Kainrad's avatar
Vinay Ayyala's avatar

It's valuable for users to know their most recent activity, whether seconds ago or days ago. In fact, users increasingly expect to have access to their recent data -- we see this with browser history, phone call logs, and recent searches.

We are excited to share that the the same is now possible in CommandBar out of the box with Recents. With recents enabled, a user's most recently executed commands and records will appear at the top of the bar. The best part? Turning it on is as simple as toggling "Recents" in the Settings tab in the Editor. One of the quickest quick wins out there. CommandBar handles storing recents for you, so no database changes are required.

You can configure CommandBar to show both recently accessed records and recently executed commands.

August 7, 2022

Fallback commands

Thomas Kainrad's avatar

CommandBar helps your users get where they want ASAP and do what they want ASAP. Deadends are a great tool for improving here, since they're a direct line of sight into user intent. They reveal content that should be added to your app (features) and to your bar (commands, records, and synonyms).

We built fallback commands to meet your user's intent before it "deadends". As the name implies, fallbacks are backup options -- we'll show your fallback commands when the user's query yields no matches. Commands related to help, support, and search are excellent candidates for fallbacks.

April 29, 2022

CommandDetails: April 2022

Jared Luxenberg's avatar
Thomas Kainrad's avatar

Here are some of the more subtle (but important!) details we shipped in the month of April.

  • React 18 is fresh out of the oven, and CommandBar is proud to support it.
  • Attaching default shortcuts to commands in the Editor now comes with a recording interface (instead of the old selector interface)
  • We cater to a lot of end users at CommandBar, and sometimes those users access CommandBar on weaker internet connections. For these situations, we've improved how we handle backoff retry requests to preserve client-side resources.
January 31, 2022

User-customizable shortcuts

Thomas Kainrad's avatar

We're super excited to announce one of our most requested (and coolest) features ever! You can now allow end-users to bind their own keyboard shortcuts to commands in CommandBar, either overriding a default shortcut that you set from the Editor or attaching a shortcut to a command without a default.

We're so excited about this feature that we wrote a whole post on it. You can read more about why we built this and how it works here:

If you have a CommandBar account and want to try this, follow the instructions here