Push Notifications

Push notifications with action buttons

Send push notifications with tappable action buttons, and route the tap back into a workflow.

Anythink sends through FCM, web push (VAPID) and APNs, templates the payload, and fans bulk sends out across a queue instead of a synchronous loop.

The same task, three ways

Every task works three ways, and all of them change the same project. Here's one: a push notification with Start, Snooze and Skip buttons.

The Anythink dashboard

Android and web show the buttons as sent. On iOS the app registers the matching button group first.

The Anythink CLI

The same send, as one API call from a script or CI job.

$ anythink fetch /push/test --method POST --body \'{"title":"Time for your workout","body":"Your session starts in 10 minutes","target_user_id":72,"buttons":[{"id":"start","label":"Start"},{"id":"snooze","label":"Snooze"},{"id":"skip","label":"Skip"}]}'
  • ✓Push sent to user 72's registered devices
  • ✓Buttons: Start, Snooze, Skip
  • ✓The delivery result is under Push Notifications → History

Claude, through MCP

Say who gets it and what the buttons are. It sends the push and reports the result.

you › “Send user 72 a push saying their workout starts in 10 minutes, with Start, Snooze and Skip buttons.”

  • ✓Sent through the project's push providers
  • ✓Added three action buttons: Start, Snooze, Skip
  • ✓Delivery result is in the History tab

Push with action buttons, not just a message

Categories, action buttons and bulk sends, wired into the same workflow engine as the rest of Anythink.

FCM, web push and APNs

Registered devices are sent to through Firebase Cloud Messaging, web push with VAPID, or Apple Push Notification service, from the same send call.

In practice

A category, a template, and a triggered send

workflow step.txt
Trigger: EntityUpdated on orders (changed_to: status = "shipped")

Steps:
  1. SendPushNotification
     — template: order-shipped
     — recipients: {{ $anythink.trigger.data.customer_id }}

The order-shipped template carries its own
action buttons: "Track package", "Contact support".

What you can build

01

Order status pushes with a tracking action

When an order's status changes to shipped, a workflow sends a push with a "Track package" button. Tapping it fires a workflow that looks up the tracking link, instead of just deep-linking into the app.

02

A reminder with Snooze and Done buttons

A scheduled workflow pushes a reminder with two actions. "Done" marks the task complete via a workflow step; "Snooze" re-queues the same reminder for later, all from the lock screen.

03

A broadcast to every subscriber

A manual workflow loops over a list of recipients and sends through the queue, so a broadcast to a large group doesn't run as a slow, synchronous send inside the workflow.

Frequently Asked Questions

Still have questions?

Get in Touch