Turn shipped Linear work into Intercom product announcements

By General Input

A board your product marketer opens on every ship day to turn finished engineering tickets into announcements customers actually read in your Messenger.

Integrations

  • Intercom
  • Linear
  • Slack Bot
  • General Input Database

Type

App

Categories

  • Product
  • Marketing

Build me an app my product marketer opens whenever we ship, to turn finished engineering work into the product announcements customers actually see inside our Intercom Messenger. The whole thing is one board with three columns: shipped work that has never been announced, announcements in draft, and announcements that are live on the newsfeed.

Column one, unannounced shipped work. Read completed Linear issues carrying our customer facing label using Linear List Issues, filtered to a completed workflow state and that label, with Search Issues available when I want to narrow by keyword. Show each row with its title, team, the person who worked on it, and when it was completed. Critically, this column must be derived from a stored mapping and not from a date filter alone: hide any issue whose id already appears in the app's record of announced work, so the column stays trustworthy even if someone reopens a ticket, edits its dates, or the same work gets relabelled.

Persist that mapping in the app's own storage. One row per link between a Linear issue id and the Intercom news item id it became, plus the issue identifier and title as they were at draft time, the current state of the announcement (drafted or live), who drafted it, who published it, and the timestamps. A single announcement can cover several Linear issues, so the mapping is many issues to one news item. This record is what makes the unannounced column and the never announce twice guarantee work, so write to it as soon as a draft is created, not only at publish time.

I select one or several rows in the unannounced column and press a "Draft the announcement" button. That kicks off a background agent inside the app. For each selected issue the agent pulls the full detail with Linear Get Issue, including the description and comments, then rewrites the engineering language into customer facing copy: a short punchy title, a body of two or three sentences a customer would understand, and a plain description of who benefits and what they can now do. If I selected several issues, the agent writes them up as one combined announcement rather than several. The agent then files the result as an unpublished news item using Intercom Create a News Item, authored by an admin, so nothing reaches customers automatically. It writes the mapping rows linking every source Linear issue id to the new news item id, and the drafts column picks it up.

Give the agent hard rules on the copy: keep engineering jargon, internal ticket references, issue keys, branch names, and internal system names out of the customer facing text entirely. Write in the words a customer would use for the problem, lead with the benefit rather than the implementation, and never invent capability the issue does not describe. If an issue is too internal to be worth announcing, say so in the draft rather than padding it.

Column two, drafts awaiting review. Show each draft's title, body, and who benefits line, all editable inline in the column. Saving an edit writes the change back through Intercom Update a News Item while keeping the item unpublished. Also show which Linear issues the draft came from, with links back to them. When a new draft is created, post it to our team channel for sign off with Slack Bot Send a Message, including the drafted title, the body, and a link into this app so someone can review it.

Publishing is always a deliberate human action. When I am happy with a draft I press publish, and the app asks me to choose the newsfeed and the sender before it does anything: populate the newsfeed choices from Intercom List All Newsfeeds and the sender choices from Intercom List All Admins, remembering my last choice as the default. Publishing then flips the item live through Intercom Update a News Item, assigning it to the chosen newsfeed with the chosen sender. Immediately after it goes live, leave a comment back on every originating Linear issue with Linear Add Comment to Issue, saying the work has been announced to customers, quoting the published title, and linking to the announcement, so engineers can see their work shipped. Finally, update the stored mapping to mark those issues as live.

Column three, live. Show what is currently on the newsfeed using Intercom List Live Newsfeed Items for the selected newsfeed, newest first, with the title, the sender, and when it went live. Let me switch which newsfeed I am looking at. Where a live item matches a row in the stored mapping, show the Linear issues behind it so I can trace any announcement back to the work that produced it.

Make the board fast to work in on a ship day: multi select with checkboxes in the first column, a running count of how much shipped work is still unannounced, and a clear empty state when everything has been announced. If an announcement fails to create or publish, surface the error on the row rather than silently dropping it, and never write a mapping row for work that did not actually get filed.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonChat quality review board for LiveChat support leadsCompetitor LinkedIn ad watchlist with a permanent archiveLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsA searchable RFP answer library your bid team drafts from