Skip to content

Slack app

The status302 Slack app posts your alerts to Slack channels and brings market data into Slack. A workspace is installed for one organization; its /status302 command reads with that organization’s plan, exactly like the web app does for a member.

  1. In the web app, an owner or admin opens Settings → Integrations and clicks Add to Slack, then picks the workspace on Slack’s consent page. The app asks to add the /status302 command, post messages (also in public channels it has not joined) and read channel names.
  2. Back in Settings → Integrations, pick a channel under the workspace and click Route alerts here. status302 posts a “connected” message there and adds a Slack (app) notification channel (slack_app). Private channels need the app invited first: /invite @status302 in the channel.
  3. Route alert rules to that channel in Settings → Notifications / Alerts, like any other channel.

A workspace belongs to one organization at a time. Remove in Settings → Integrations uninstalls the app from the workspace and deletes its alert channels, list feeds and linked accounts. Uninstalling the app from Slack’s side (or revoking its token) does the same. Installs and removals show up in the organization’s activity log.

Read commands work for everyone in the workspace. Commands that change your organization — list feeds — and portfolio act as a status302 member, so the Slack user running them links their account first:

  1. In Settings → Integrations, click Link my Slack account. The code (XXXXX-XXXXX) is single use and expires after 15 minutes.
  2. In Slack, run /status302 link <code>. The reply is only visible to you.

/status302 unlink (or Unlink me in Settings → Integrations) removes the link.

Command What it does
/status302 event <query> Market snapshot of one event: date, venue, primary floor, TM resale floor, best secondary floor, spread, Δ24h, sales in the last 24 hours and how fresh the data is, with a link to the event page. query is a name or a Ticketmaster, StubHub or viagogo event ID or URL.
/status302 movers [primary|resale|secondary] [up|down] The top 10 movers of the last 24 hours in a market, optionally only rising or falling floors.
/status302 onsales [days] Upcoming public on-sales and presales in the next days (default 7, at most 30), most prominent first.
/status302 presales [days] The same for presales only.
/status302 mustcops Upcoming on-sales of acts whose recent on-sales sold out instantly, soonest first, with the record of the graded picks. Once must cops are published to your organization.
/status302 predictions [tm|dice] Open scalping calls, lowest risk first: risk, entry, the latest resale and its markup. Once the category is published to your organization.
/status302 portfolio [primary|resale|secondary] Your organization’s held tickets valued at a market’s floor: positions, cost, value, P&L, the next 7 days and the positions at risk (linked accounts).
/status302 watch <list> Posts the sales and restocks of a saved list’s events in the current channel (linked owners and admins).
/status302 unwatch <list> Stops a feed in the current channel (linked owners and admins).
/status302 link <code> / /status302 unlink Links or unlinks your Slack account.
/status302 help Lists the commands.

Snapshots, movers, on-sales, must cops and predictions are posted in the channel; the portfolio, errors and account replies only to you. Data your plan does not include is left out or answered with the plan that includes it. Must cops and predictions are model output, not financial advice: do your own research. Each workspace’s commands are rate limited.

/status302 watch <list> adds two things to your organization, visible in the web app:

  • a Slack (app) notification channel for the current channel, which posts a “connected” message;
  • an alert rule on the list for market activity — primary sales, primary restocks and resale sales — routed to that channel, with the usual 30-second digest.

Feeds are ordinary alert rules: they count towards your plan’s rule limit and can be tuned or paused in the web app. Deleting the rule or the channel there ends the feed; /status302 unwatch <list> removes both.

  1. At api.slack.com/apps, choose Create New App → From a manifest and paste the repository’s deploy/slack/manifest.yaml, with https://app.example.com replaced by your STATUS302_PUBLIC_URL. It sets the slash command URL (/v1/integrations/slack/commands), the OAuth redirect URL (/v1/integrations/slack/oauth/callback), the Events API URL (/v1/integrations/slack/events) and the bot scopes.
  2. Copy the credentials from Basic Information → App Credentials:
Variable Value
STATUS302_SLACK_CLIENT_ID The Client ID
STATUS302_SLACK_CLIENT_SECRET The Client Secret (secret)
STATUS302_SLACK_SIGNING_SECRET The Signing Secret (secret)

The app is on only when all three are set, and it needs STATUS302_SECRETS_KEY (bot tokens are stored encrypted). Without them, Settings → Integrations shows the Slack app as not configured and has no Add to Slack. Slack verifies the Events API URL with a signed challenge when you save it; the API must be running with the signing secret by then. To let workspaces other than your own install the app, turn on Manage Distribution → Public Distribution.

Requests from Slack are authenticated by their signature (X-Slack-Signature, HMAC-SHA256 under the signing secret) and refused when the timestamp is more than 5 minutes off.