alicehasnoidea/docs
WebsiteLog inGet Started Free
Slack Integration

Action Buttons

Interactive buttons on Slack query results that let you tag, notify, and trigger actions with one click

Action Buttons

Pro

When a skill returns actionable data -- customer records, failed payments, at-risk accounts -- action buttons appear directly in the Slack message. One click executes the action, and the message updates with a confirmation. No need to switch to another tool.

How Action Buttons Work

The flow from skill result to completed action:

  1. Run a skill -- /alice churn-risk returns a list of at-risk accounts
  2. View results with buttons -- Each result row shows relevant action buttons (Tag in Stripe, Send DM, Open in Stripe)
  3. Click an action -- The button is immediately disabled to prevent double-clicks
  4. alice executes the action -- Tags the customer, sends the DM, or fires the webhook
  5. Message updates -- The original message is updated with a confirmation showing the action that was taken, who took it, and when

Under the Hood

Action buttons use Slack's Block Kit interactive components. Each button has an action_id in the format alice:{action_slug}:{skill_run_id}. When clicked, Slack sends a request to alice's action handler endpoint, which:

  • Validates the request signature using the Slack signing secret
  • Looks up the skill run and action configuration
  • Checks that the user has permission to execute the action
  • Executes the action against the appropriate data source
  • Updates the original Slack message with a confirmation

Available Actions

Tag in Stripe

Adds a metadata tag to a Stripe customer record. Useful for marking customers as "at-risk", "expansion-ready", or any custom label your team uses.

DetailValue
Action slugstripe_tag
SourceStripe
Risk levelZero -- adds metadata only
RequiresA customer ID in the skill result

When you click "Tag in Stripe", alice writes a key-value pair to the customer's metadata in Stripe. The tag name is configured in the skill builder or uses a default like alice:tagged.

Open in Stripe

Opens the Stripe Dashboard page for the relevant customer, subscription, or payment in a new browser tab. This is a navigation action -- nothing is modified.

DetailValue
Action slugopen_stripe
SourceStripe
Risk levelZero -- opens a URL only
RequiresA Stripe object ID in the skill result

Open in Supabase

Opens the Supabase Dashboard for the relevant table or record. Like "Open in Stripe", this is purely navigational.

DetailValue
Action slugopen_supabase
SourceSupabase
Risk levelZero -- opens a URL only
RequiresA table name or record ID in the skill result

Send Slack DM

Sends a direct message to a teammate in your Slack workspace. Useful for notifying account managers about at-risk customers or alerting someone about a failed payment.

DetailValue
Action slugslack_dm
SourceSlack
Risk levelZero -- sends a message only
RequiresA Slack user mapping or configurable recipient

The DM includes context about the skill result that triggered it, so the recipient has full context without needing to ask follow-up questions.

Trigger Webhook

Sends an HTTP POST request to a configured URL with the skill result data as the payload. Use this to integrate with any external system -- create a Linear ticket, send an email via Resend, update a CRM, or trigger a Zapier workflow.

DetailValue
Action slugwebhook
SourceAny
Risk levelZero -- sends data outbound only
RequiresA configured webhook URL in the skill settings

The webhook payload includes the skill result data, the action that triggered it, and metadata about the execution.

Configuring Actions on a Skill

Actions are configured per-skill in the skill builder. Not every skill needs actions -- they are most useful for skills that return actionable records like customers, users, or accounts.

Adding Actions

  1. Open the skill in Dashboard > Skills > [Skill] > Edit
  2. In the Format step, you will see options to attach actions to result rows
  3. Select which actions to enable and configure their parameters
  4. Save the skill

Mapping Result Fields to Actions

Actions need to know which field in the result maps to the action's target. For example, the "Tag in Stripe" action needs a Stripe customer ID. In the skill builder, you map a result column to the action parameter:

  • customer_id column maps to the stripe_tag action's target
  • user_email column maps to the slack_dm action's recipient
  • The entire result row maps to the webhook action's payload

Idempotency

Action buttons include built-in idempotency protection. Each button press generates a unique idempotency key tied to the skill run ID and action type. This means:

  • Double-clicking the same button does not execute the action twice
  • Multiple users clicking the same button results in only one execution
  • The message updates to show the action was already taken if a duplicate click is detected

The confirmation message shows who originally executed the action and when, so there is no ambiguity about what happened.

Safety Guarantees

All actions in alice are designed to be safe and non-destructive:

What actions can do

  • Add metadata/tags to existing records
  • Send notifications (Slack DMs, webhook POSTs)
  • Open links to external dashboards

What actions will never do

  • Cancel a subscription
  • Delete a customer or user
  • Issue a refund
  • Modify pricing or billing
  • Remove data from any source
  • Perform any irreversible operation

This is a core design principle, not a temporary limitation. alice is built for visibility and lightweight operations, not for destructive data management. See Core Concepts for more on this philosophy.

Permissions

Action execution respects the same role-based access control as skill execution:

RoleCan Execute Actions
OwnerYes
AdminYes
MemberYes

Actions are available to all workspace members by default. If the parent skill has restricted permissions, those restrictions also apply to its actions.

Viewing Action History

Every action execution is logged in the audit trail. Go to Dashboard > Logs to see:

  • Which action was taken
  • Who clicked the button
  • When it was executed
  • The action parameters and result
  • Duration of the action execution

Action logs follow the same data retention policy as skill run logs: 7 days on Free, 30 days on Pro, 90 days on Business.

Next Steps

Was this page helpful?

On this page