RevenueHogdocs
Notifications

Slack

Connect a Slack workspace to RevenueHog and route App Store reviews, in-app feedback, purchases, churn, milestones and TestFlight activity to channels.

The Slack integration posts RevenueHog activity to Slack channels. It is set up once per RevenueHog workspace, under Settings on the web, and is free: it does not need the Alerts subscription or a registered phone.

RevenueHog only writes messages. It never reads your Slack history.

Connect Slack

Start the connection

On the web, open Settings and find the Slack card. Click Connect Slack.

Approve in Slack

Choose the Slack workspace and approve. RevenueHog asks for chat:write, chat:write.public, channels:read and groups:read.

Add a routing rule

Back in RevenueHog the card shows Slack is connected. Add a routing rule below to start posting. Nothing posts until you add a rule.

If you cancel in Slack you see Slack connection was cancelled. You can try again any time. If the exchange fails you see Slack connection failed. Start the connect flow again.

Routing rules

A rule sends one kind of event to one channel, for all apps or one app.

EventLabelWhat posts
reviewApp Store reviewsEvery new written review, with its star rating.
feedbackIn-app feedbackBug reports, ideas, questions and praise from the SDK.
BUYNew purchasesFirst-time subscriptions and one-time buys.
CHURNChurnCancellations and lapsed subscriptions.
MILESTONEMilestonesMRR milestones.
TFLTTestFlightBeta feedback and build-state changes.
digestDaily digestOne post a day with yesterday's revenue, events and MRR, at 09:00 in the timezone of the person who installed Slack (UTC if they have no notification settings). Per-app routes are ignored: the digest is a workspace total.

To add a rule, pick an Event, type a Channel (for example #reviews; the # is added if you leave it off), choose All apps or one app, and click Add rule. With an empty table the card suggests two starters under Quick add: reviews to #reviews and feedback to #product-feedback. A suggestion only fills the form.

Each rule has an on/off switch and Remove. Several rules matching one event to the same channel post once.

Rules can also carry filters through the API: a minimum star rating (1 to 5) for reviews, a minimum amount for events, and feedback kinds for feedback. Test feedback sent with an rh_test_ key is never posted.

Slack rules are independent of your push rules: quiet hours, the minimum amount and per-app mutes do not affect Slack.

Daily digest

A route for Daily digest posts one message a day to its channel:

Example Slack digest
Yesterday's haul
$412.88 in sales yesterday, 9 events and $16,284 MRR.
Daily digest · America/New_York        [Open RevenueHog]
  • It covers the previous full day in the installer's timezone, using the same numbers as the push daily digest.
  • It goes out on the first digest run (at :03 or :33 past the hour) at or after 09:00 local time, then not again for 20 hours. If 09:00 is missed, it posts later the same day.
  • The day is claimed before posting, so a channel that fails loses that day's post instead of double-posting to the others.
  • Unlike the push digest, it does not need the RevenueHog Alerts subscription.

Feedback buttons

In-app feedback messages carry Mark triaged, Close and View in RevenueHog buttons. Pressing a status button updates the feedback in RevenueHog and the message shows Marked triaged by @name. Buttons only act if the Slack workspace that sent them is the one connected to that RevenueHog workspace. See Feedback.

Connection states

BadgeMeaning
connectedPosting normally.
errorThe last post failed. The card shows Last Slack post failed: and the reason.
disconnectedThe token was revoked. The card offers Reconnect Slack.

Disconnect, then Confirm disconnect, removes the workspace and all of its routing rules. Nothing posts until you connect again.

Self-hosting

If the server lacks SLACK_CLIENT_ID, the card reads Slack is not set up. It needs SLACK_CLIENT_ID, SLACK_CLIENT_SECRET and SLACK_SIGNING_SECRET.

API errors

/api/settings/slack returns unknown event, missing channel, invalid app, unknown app, connect Slack first, or not found, each with a 400 or 404 status.

Last updated on

On this page