Skip to content

ActivitySmithHQ/activitysmith-ruby

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

31 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ActivitySmith Ruby SDK

The ActivitySmith Ruby SDK provides convenient access to the ActivitySmith API from Ruby applications.

Documentation

See API reference.

Installation

gem install activitysmith

Setup

require "activitysmith"

activitysmith = ActivitySmith::Client.new(api_key: ENV.fetch("ACTIVITYSMITH_API_KEY"))

Usage

Send a Push Notification

Push notification example

response = activitysmith.notifications.send(
  {
    title: "New subscription ๐Ÿ’ธ",
    message: "Customer upgraded to Pro plan"
  }
)

puts response.success
puts response.devices_notified

Start a Live Activity

Start live activity example

start = 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_id

Update a Live Activity

Update live activity example

update = activitysmith.live_activities.update(
  {
    activity_id: activity_id,
    content_state: {
      title: "Nightly database backup",
      subtitle: "upload archive",
      current_step: 2
    }
  }
)

puts update.devices_notified

End a Live Activity

End live activity example

finish = 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.success

Channels

Channels 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

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"
        }
      }
    ]
  }
)

Error Handling

begin
  activitysmith.notifications.send(
    { title: "New subscription ๐Ÿ’ธ" }
  )
rescue OpenapiClient::ApiError => err
  puts "Request failed: #{err.code} #{err.message}"
end

Requirements

  • Ruby 3.0+

License

MIT

About

Ruby library for the ActivitySmith API

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages