The ActivitySmith Ruby SDK provides convenient access to the ActivitySmith API from Ruby applications.
See API reference.
gem install activitysmithrequire "activitysmith"
activitysmith = ActivitySmith::Client.new(api_key: ENV.fetch("ACTIVITYSMITH_API_KEY"))response = activitysmith.notifications.send(
{
title: "New subscription ๐ธ",
message: "Customer upgraded to Pro plan"
}
)
puts response.success
puts response.devices_notifiedstart = activitysmith.live_activities.start(
{
content_state: {
title: "Nightly database backup",
subtitle: "create snapshot",
number_of_steps: 3,
current_step: 1,
type: "segmented_progress",
color: "yellow"
},
channels: ["devs", "ops"] # Optional
}
)
activity_id = start.activity_idupdate = activitysmith.live_activities.update(
{
activity_id: activity_id,
content_state: {
title: "Nightly database backup",
subtitle: "upload archive",
current_step: 2
}
}
)
puts update.devices_notifiedfinish = activitysmith.live_activities.end(
{
activity_id: activity_id,
content_state: {
title: "Nightly database backup",
subtitle: "verify restore",
current_step: 3,
auto_dismiss_minutes: 2
}
}
)
puts finish.successChannels are used to target specific team members or devices. Can be used for both push notifications and live activities.
response = activitysmith.notifications.send(
{
title: "New subscription ๐ธ",
message: "Customer upgraded to Pro plan",
channels: ["sales", "customer-success"] # Optional
}
)Push notification redirection and actions are optional and can be used to redirect the user to a specific URL when they tap the notification or to trigger a specific action when they long-press the notification. Webhooks are executed by ActivitySmith backend.
response = activitysmith.notifications.send(
{
title: "New subscription ๐ธ",
message: "Customer upgraded to Pro plan",
redirection: "https://crm.example.com/customers/cus_9f3a1d", # Optional
actions: [ # Optional (max 4)
{
title: "Open CRM Profile",
type: "open_url",
url: "https://crm.example.com/customers/cus_9f3a1d"
},
{
title: "Start Onboarding Workflow",
type: "webhook",
url: "https://hooks.example.com/activitysmith/onboarding/start",
method: "POST",
body: {
customer_id: "cus_9f3a1d",
plan: "pro"
}
}
]
}
)begin
activitysmith.notifications.send(
{ title: "New subscription ๐ธ" }
)
rescue OpenapiClient::ApiError => err
puts "Request failed: #{err.code} #{err.message}"
end- Ruby 3.0+
MIT



