On this page
Product updates (in the sidebar under Grow) lets you write short announcements once and show them in two places: a What's new popup inside your app, in your brand colors and logo, and a public changelog page. Each person sees an update once, and Atlis can measure who actually tried the feature afterwards.
- 1
Add the script to your app
Paste it once, on every page of your app (it's separate from the tracking script and works next to it). Your brand color, button color and logo come from Profile & Brand.
HTML<script src="https://www.theatlis.com/atlis-updates.js" data-workspace="YOUR_WORKSPACE_ID" async></script> - 2
Optional: add a What's new button
Any element with
data-atlis-updatesopens the list of updates and gets a small dot while something is unread.HTML<button data-atlis-updates>What's new</button> - 3
Write and publish
Click New update, add a title, a short text, an image, GIF or video and a button, check the live preview, then click Publish. People see it the next time they open your app (the script refreshes at most every 30 minutes).
How new updates appear
| Setting | What people see |
|---|---|
| Popup | A centered popup with the newest unread update, and a link to any others. |
| Corner card | A small card in the bottom corner that doesn't block the page. |
| Button only | Nothing pops up. Your What's new button shows a dot. |
- Each person gets at most one popup or card per visit and one every 3 days. Everything else waits in the list.
- What someone has seen is remembered in their own browser, so showing updates costs no tracked events.
- The first time someone sees the script, only updates from the last 14 days count as new.
- On phones the popup opens as a sheet from the bottom. Esc and the close button dismiss it, and the colors follow a light or dark page.
- Add
data-show="button"(or popup, card) to the script tag to override the setting on one site.
Who sees it
Don't interrupt people still onboarding is on for new updates: people who haven't activated yet don't get the popup, but the update is still in their list. The script reads id, plan and isActivated from window.AtlisConfig.user if you use it, or you can pass them yourself. On Growth, Scale and trial you can also limit an update to some plans or products.
window.AtlisUpdates.identify({ id: user.id, plan: user.plan, product: "albert", isActivated: true });Interactive updates
On Growth, Scale and trial an update can do more than announce:
| Option | What happens |
|---|---|
| Let people choose | Two to four options (like Light, Dark, System) and a confirm button. Your app hears the pick and can switch it on. With the Atlis tracking script the pick is also saved as an update_choice event. |
| Ask if it's useful | A thumbs up or down. A thumbs down asks what would make it better; a comment emails you (and posts to Slack if it's connected), at most 10 alerts an hour. With the tracking script the vote is saved as an update_feedback event. |
| Ask the loyalty question | 0 to 10, saved on the person's profile like the loyalty survey. Loyal answers get a link to write a review. |
| Feature cards | For a bigger launch, add up to 4 cards, each with an optional icon, a title, a short line, an optional badge (like New or Beta) and its own image or video. The popup shows your title and text as a headline, the cards on the left and the selected card's image or video on the right. People click a card or press Next to move through them. |
window.AtlisUpdates.on("action", (a) => {
if (a.value === "dark") setTheme("dark");
});
window.AtlisUpdates.on("preview", (a) => previewTheme(a.value));- Answers count once per person, and the totals show on each update. Answers saved on a profile need the person's
id; if identity verification is on, also passuserHashto identify(). - Images you upload are resized for you. GIFs can be up to 300 KB. Videos can be YouTube, Vimeo or Loom links, or an https link to a .mp4 or .webm file.
- Use a tracked link for the button to count clicks.
Who tried it
Pick the Feature event your app sends when someone uses the feature (Growth, Scale and trial). In the daily update Atlis counts how many people active since the launch have done that event since, and how many of them pay. The update shows X of Y active users tried it, and Email the people who haven't tried it creates a custom segment and opens Broadcasts with it. When fewer than a quarter of 20 or more active users have tried it after 3 days, it's also one of your next best moves.
Schedule an update
On Starter and up, set Go live at and click Schedule. Atlis suggests your busiest hour, worked out from when your users are active, so more people see it fresh.
Your public changelog
Every published update is also on your changelog at https://www.theatlis.com/updates/YOUR_WORKSPACE_ID, with filters for New, Improved and Fixed and an RSS feed at the same address plus /rss.xml. Link to it from your site or footer. On the Free plan the popup shows a small Powered by Atlis link; paid plans don't.
Limits
| Plan | Published updates |
|---|---|
| Free | 5 |
| Free+ | 5 |
| Starter | 30 |
| Growth | 60 |
| Scale | 60 |
| Trial (14 days) | 60 |
Script reference
| Call | What it does |
|---|---|
AtlisUpdates.open() | Opens the list of updates. |
AtlisUpdates.openLatest() | Opens the newest unread update (or the newest). |
AtlisUpdates.openUpdate(id) | Opens one update. |
AtlisUpdates.identify(traits) | Sets id, plan, product, isActivated and userHash. |
AtlisUpdates.on(name, fn) | Listens for action, preview, answer, open or close. The same events fire on window as atlis:update-<name>. |
AtlisUpdates.unread() | How many updates this person hasn't seen. |
Safe on your site
The script inserts every text as plain text, only opens http and https links, only plays videos from YouTube, Vimeo, Loom or a direct file, sets no cookies and works under a strict Content Security Policy.
More in Engage & grow
Try it in your own workspace
Start with a 14-day trial with Growth features. No credit card needed.