activitysmith 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +44 -374
- data/generated/activitysmith_openapi/api/live_activities_api.rb +16 -16
- data/generated/activitysmith_openapi/version.rb +1 -1
- data/lib/activitysmith/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 72834442fc339c835883f57e5911a1df7b5b425ca72e9378c8bf4875b19d26ec
|
|
4
|
+
data.tar.gz: 6ed94939eb8886ac94102e3ca7dc70efa39c02432a8f945d7da793fa5920a67e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 58df6742bc1758e8a1faba533f7a0f94f959c4e87e308d6306319026c5a37be285de28693bff0804fac2713e1aec8f9f81ae4ddf0561f07edd35e01557549863
|
|
7
|
+
data.tar.gz: 04ac9df1919119396b7b4e014f0d0cf99e6ccb4000d10c166a68ce184d68e3ddaeb12a1444f6ac6ee7c9811db9ac5e74899f9a50051f5324de23d6a592b2bf4a
|
data/README.md
CHANGED
|
@@ -15,12 +15,8 @@ See [API reference](https://activitysmith.com/docs/api-reference/introduction).
|
|
|
15
15
|
- [Rich Push Notifications with Media](#rich-push-notifications-with-media)
|
|
16
16
|
- [Actionable Push Notifications](#actionable-push-notifications)
|
|
17
17
|
- [Live Activities](#live-activities)
|
|
18
|
-
- [
|
|
19
|
-
- [
|
|
20
|
-
- [Stats Type](#stats-type)
|
|
21
|
-
- [Metrics Type](#metrics-type)
|
|
22
|
-
- [Segmented Progress Type](#segmented-progress-type)
|
|
23
|
-
- [Progress Type](#progress-type)
|
|
18
|
+
- [Start & Update Live Activity](#start--update-live-activity)
|
|
19
|
+
- [End Live Activity](#end-live-activity)
|
|
24
20
|
- [Live Activity Action](#live-activity-action)
|
|
25
21
|
- [Channels](#channels)
|
|
26
22
|
- [Widgets](#widgets)
|
|
@@ -124,47 +120,29 @@ activitysmith.notifications.send(
|
|
|
124
120
|
|
|
125
121
|
## Live Activities
|
|
126
122
|
|
|
127
|
-
<p align="center">
|
|
128
|
-
<img src="https://cdn.activitysmith.com/features/metrics-live-activity-action.png" alt="Metrics Live Activity screenshot" width="680" />
|
|
129
|
-
</p>
|
|
130
|
-
|
|
131
123
|
There are four types of Live Activities:
|
|
132
124
|
|
|
133
|
-
- `stats`: best for
|
|
134
|
-
- `metrics`: best for live
|
|
135
|
-
- `segmented_progress`: best for
|
|
136
|
-
- `progress`: best for
|
|
137
|
-
|
|
138
|
-
When working with Live Activities via our API, you have two approaches tailored
|
|
139
|
-
to different needs. First, the stateless mode is the simplest path - one API
|
|
140
|
-
call can initiate or update an activity, and another ends it - no state
|
|
141
|
-
tracking on your side.
|
|
125
|
+
- `stats`: best for showing business numbers side by side, such as revenue, sales, new users, conversion, refunds, or any other value you want visible at a glance
|
|
126
|
+
- `metrics`: best for live percentage values that change often, like server CPU, memory usage, disk usage, or error rate
|
|
127
|
+
- `segmented_progress`: best for anything that moves through clear stages, like deployments, onboarding flows, backups, ETL pipelines, migrations, and AI agent runs
|
|
128
|
+
- `progress`: best for tracking real-time progress with percentage, like tasks, backups, migrations, syncs, or uploads
|
|
142
129
|
|
|
143
|
-
|
|
144
|
-
like cron jobs.
|
|
130
|
+
### Start & Update Live Activity
|
|
145
131
|
|
|
146
|
-
|
|
147
|
-
distinct calls for start, updates, and end, giving you full control over the
|
|
148
|
-
activity's state.
|
|
149
|
-
|
|
150
|
-
In the following sections, we'll break down how to implement each method so you
|
|
151
|
-
can choose what fits your use case best.
|
|
152
|
-
|
|
153
|
-
### Simple: Let ActivitySmith manage the Live Activity for you
|
|
154
|
-
|
|
155
|
-
Use a stable `stream_key` to identify the system or workflow you are tracking,
|
|
156
|
-
such as a server, deployment, build pipeline, cron job, or charging session.
|
|
157
|
-
This is especially useful for cron jobs and other scheduled tasks where you do
|
|
158
|
-
not want to store `activity_id` between runs.
|
|
132
|
+
Use a stable `stream_key` to identify the metric, job, deployment, or system you want to keep visible. The first `stream(...)` call starts the Live Activity. Later calls with the same `stream_key` update it.
|
|
159
133
|
|
|
160
134
|
#### Stats
|
|
161
135
|
|
|
162
136
|
<p align="center">
|
|
163
|
-
<img
|
|
137
|
+
<img
|
|
138
|
+
src="https://cdn.activitysmith.com/features/stats-live-activity.png"
|
|
139
|
+
alt="Stats Live Activity stream example"
|
|
140
|
+
width="680"
|
|
141
|
+
/>
|
|
164
142
|
</p>
|
|
165
143
|
|
|
166
144
|
```ruby
|
|
167
|
-
|
|
145
|
+
activitysmith.live_activities.stream(
|
|
168
146
|
"sales-hourly",
|
|
169
147
|
{
|
|
170
148
|
content_state: {
|
|
@@ -187,11 +165,15 @@ status = activitysmith.live_activities.stream(
|
|
|
187
165
|
#### Metrics
|
|
188
166
|
|
|
189
167
|
<p align="center">
|
|
190
|
-
<img
|
|
168
|
+
<img
|
|
169
|
+
src="https://cdn.activitysmith.com/features/metrics-live-activity-start.png"
|
|
170
|
+
alt="Metrics Live Activity stream example"
|
|
171
|
+
width="680"
|
|
172
|
+
/>
|
|
191
173
|
</p>
|
|
192
174
|
|
|
193
175
|
```ruby
|
|
194
|
-
|
|
176
|
+
activitysmith.live_activities.stream(
|
|
195
177
|
"prod-web-1",
|
|
196
178
|
{
|
|
197
179
|
content_state: {
|
|
@@ -207,10 +189,14 @@ status = activitysmith.live_activities.stream(
|
|
|
207
189
|
)
|
|
208
190
|
```
|
|
209
191
|
|
|
210
|
-
#### Segmented
|
|
192
|
+
#### Segmented Progress
|
|
211
193
|
|
|
212
194
|
<p align="center">
|
|
213
|
-
<img
|
|
195
|
+
<img
|
|
196
|
+
src="https://cdn.activitysmith.com/features/update-live-activity.png"
|
|
197
|
+
alt="Segmented Progress Live Activity stream example"
|
|
198
|
+
width="680"
|
|
199
|
+
/>
|
|
214
200
|
</p>
|
|
215
201
|
|
|
216
202
|
```ruby
|
|
@@ -231,7 +217,11 @@ activitysmith.live_activities.stream(
|
|
|
231
217
|
#### Progress
|
|
232
218
|
|
|
233
219
|
<p align="center">
|
|
234
|
-
<img
|
|
220
|
+
<img
|
|
221
|
+
src="https://cdn.activitysmith.com/features/progress-live-activity.png"
|
|
222
|
+
alt="Progress Live Activity stream example"
|
|
223
|
+
width="680"
|
|
224
|
+
/>
|
|
235
225
|
</p>
|
|
236
226
|
|
|
237
227
|
```ruby
|
|
@@ -248,13 +238,9 @@ activitysmith.live_activities.stream(
|
|
|
248
238
|
)
|
|
249
239
|
```
|
|
250
240
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
#### End a stream
|
|
241
|
+
### End Live Activity
|
|
254
242
|
|
|
255
|
-
|
|
256
|
-
Activity on devices. `content_state` is optional here; include it if you want
|
|
257
|
-
to end the stream with a final state.
|
|
243
|
+
Call `end_stream(...)` with the same `stream_key` to dismiss the Live Activity. You can include final values before it is removed. By default, iOS removes the Live Activity after two minutes. Set `auto_dismiss_minutes` to choose a different dismissal time, including `0` for immediate dismissal.
|
|
258
244
|
|
|
259
245
|
```ruby
|
|
260
246
|
activitysmith.live_activities.end_stream(
|
|
@@ -267,109 +253,6 @@ activitysmith.live_activities.end_stream(
|
|
|
267
253
|
metrics: [
|
|
268
254
|
{ label: "CPU", value: 7, unit: "%" },
|
|
269
255
|
{ label: "MEM", value: 38, unit: "%" }
|
|
270
|
-
]
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
)
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
If you later send another `stream(...)` request with the same `stream_key`,
|
|
277
|
-
ActivitySmith starts a new Live Activity for that stream again.
|
|
278
|
-
|
|
279
|
-
Stream responses include an `operation` field:
|
|
280
|
-
|
|
281
|
-
- `started`: ActivitySmith started a new Live Activity for this `stream_key`
|
|
282
|
-
- `updated`: ActivitySmith updated the current Live Activity
|
|
283
|
-
- `rotated`: ActivitySmith ended the previous Live Activity and started a new one
|
|
284
|
-
- `noop`: the incoming state matched the current state, so no update was sent
|
|
285
|
-
- `paused`: the stream is paused, so no Live Activity was started or updated
|
|
286
|
-
- `ended`: returned by `end_stream(...)` after the stream is ended
|
|
287
|
-
|
|
288
|
-
### Advanced: Full lifecycle control
|
|
289
|
-
|
|
290
|
-
Use these methods when you want to manage the Live Activity lifecycle yourself:
|
|
291
|
-
|
|
292
|
-
1. Call `activitysmith.live_activities.start(...)`.
|
|
293
|
-
2. Save the returned `activity_id`.
|
|
294
|
-
3. Call `activitysmith.live_activities.update(...)` as progress changes.
|
|
295
|
-
4. Call `activitysmith.live_activities.end(...)` when the work is finished.
|
|
296
|
-
|
|
297
|
-
### Stats Type
|
|
298
|
-
|
|
299
|
-
Keep your key numbers on your Lock Screen. `stats` fits 1 to 8 labeled values,
|
|
300
|
-
such as revenue, orders, conversion, uptime, or any other business metric you
|
|
301
|
-
want visible at a glance. Each metric can use a formatted string or number as
|
|
302
|
-
its `value`. Add `color` to a metric to show an accent dot next to its label;
|
|
303
|
-
omit `color` to show the label without a dot.
|
|
304
|
-
|
|
305
|
-
#### Start
|
|
306
|
-
|
|
307
|
-
<p align="center">
|
|
308
|
-
<img src="https://cdn.activitysmith.com/features/stats-live-activity.png" alt="Stats Live Activity with sales revenue, orders, conversion, and average order value" width="680" />
|
|
309
|
-
</p>
|
|
310
|
-
|
|
311
|
-
```ruby
|
|
312
|
-
start = activitysmith.live_activities.start(
|
|
313
|
-
{
|
|
314
|
-
content_state: {
|
|
315
|
-
title: "Sales",
|
|
316
|
-
subtitle: "last hour",
|
|
317
|
-
type: "stats",
|
|
318
|
-
metrics: [
|
|
319
|
-
{ label: "Revenue", value: "$2430", color: "blue" },
|
|
320
|
-
{ label: "Orders", value: "37", color: "green" },
|
|
321
|
-
{ label: "Conversion", value: "4.8%", color: "magenta" },
|
|
322
|
-
{ label: "Avg Order", value: "$65.68", color: "yellow" },
|
|
323
|
-
{ label: "Refunds", value: "$84", color: "red" },
|
|
324
|
-
{ label: "New Buyers", value: "18", color: "cyan" }
|
|
325
|
-
]
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
)
|
|
329
|
-
|
|
330
|
-
activity_id = start.activity_id
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
#### Update
|
|
334
|
-
|
|
335
|
-
```ruby
|
|
336
|
-
activitysmith.live_activities.update(
|
|
337
|
-
{
|
|
338
|
-
activity_id: activity_id,
|
|
339
|
-
content_state: {
|
|
340
|
-
title: "Sales",
|
|
341
|
-
subtitle: "last hour",
|
|
342
|
-
type: "stats",
|
|
343
|
-
metrics: [
|
|
344
|
-
{ label: "Revenue", value: "$3180", color: "blue" },
|
|
345
|
-
{ label: "Orders", value: "51", color: "green" },
|
|
346
|
-
{ label: "Conversion", value: "5.2%", color: "magenta" },
|
|
347
|
-
{ label: "Avg Order", value: "$62.35", color: "yellow" },
|
|
348
|
-
{ label: "Refunds", value: "$126", color: "red" },
|
|
349
|
-
{ label: "New Buyers", value: "24", color: "cyan" }
|
|
350
|
-
]
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
)
|
|
354
|
-
```
|
|
355
|
-
|
|
356
|
-
#### End
|
|
357
|
-
|
|
358
|
-
```ruby
|
|
359
|
-
activitysmith.live_activities.end(
|
|
360
|
-
{
|
|
361
|
-
activity_id: activity_id,
|
|
362
|
-
content_state: {
|
|
363
|
-
title: "Sales",
|
|
364
|
-
subtitle: "last hour",
|
|
365
|
-
type: "stats",
|
|
366
|
-
metrics: [
|
|
367
|
-
{ label: "Revenue", value: "$3460", color: "blue" },
|
|
368
|
-
{ label: "Orders", value: "58", color: "green" },
|
|
369
|
-
{ label: "Conversion", value: "5.4%", color: "magenta" },
|
|
370
|
-
{ label: "Avg Order", value: "$59.66", color: "yellow" },
|
|
371
|
-
{ label: "Refunds", value: "$92", color: "red" },
|
|
372
|
-
{ label: "New Buyers", value: "31", color: "cyan" }
|
|
373
256
|
],
|
|
374
257
|
auto_dismiss_minutes: 2
|
|
375
258
|
}
|
|
@@ -377,231 +260,23 @@ activitysmith.live_activities.end(
|
|
|
377
260
|
)
|
|
378
261
|
```
|
|
379
262
|
|
|
380
|
-
### Metrics Type
|
|
381
|
-
|
|
382
|
-
Use `metrics` when you want to keep a small set of live stats visible, such as
|
|
383
|
-
server health, queue pressure, or database load.
|
|
384
|
-
|
|
385
|
-
#### Start
|
|
386
|
-
|
|
387
|
-
<p align="center">
|
|
388
|
-
<img src="https://cdn.activitysmith.com/features/metrics-live-activity-start.png" alt="Metrics start example" width="680" />
|
|
389
|
-
</p>
|
|
390
|
-
|
|
391
|
-
```ruby
|
|
392
|
-
start = activitysmith.live_activities.start(
|
|
393
|
-
{
|
|
394
|
-
content_state: {
|
|
395
|
-
title: "Server Health",
|
|
396
|
-
subtitle: "prod-web-1",
|
|
397
|
-
type: "metrics",
|
|
398
|
-
metrics: [
|
|
399
|
-
{ label: "CPU", value: 9, unit: "%" },
|
|
400
|
-
{ label: "MEM", value: 45, unit: "%" }
|
|
401
|
-
]
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
)
|
|
405
|
-
|
|
406
|
-
activity_id = start.activity_id
|
|
407
|
-
```
|
|
408
|
-
|
|
409
|
-
#### Update
|
|
410
|
-
|
|
411
|
-
<p align="center">
|
|
412
|
-
<img src="https://cdn.activitysmith.com/features/metrics-live-activity-update.png" alt="Metrics update example" width="680" />
|
|
413
|
-
</p>
|
|
414
|
-
|
|
415
|
-
```ruby
|
|
416
|
-
activitysmith.live_activities.update(
|
|
417
|
-
{
|
|
418
|
-
activity_id: activity_id,
|
|
419
|
-
content_state: {
|
|
420
|
-
title: "Server Health",
|
|
421
|
-
subtitle: "prod-web-1",
|
|
422
|
-
type: "metrics",
|
|
423
|
-
metrics: [
|
|
424
|
-
{ label: "CPU", value: 76, unit: "%" },
|
|
425
|
-
{ label: "MEM", value: 52, unit: "%" }
|
|
426
|
-
]
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
)
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
#### End
|
|
433
|
-
|
|
434
|
-
<p align="center">
|
|
435
|
-
<img src="https://cdn.activitysmith.com/features/metrics-live-activity-end.png" alt="Metrics end example" width="680" />
|
|
436
|
-
</p>
|
|
437
|
-
|
|
438
|
-
```ruby
|
|
439
|
-
activitysmith.live_activities.end(
|
|
440
|
-
{
|
|
441
|
-
activity_id: activity_id,
|
|
442
|
-
content_state: {
|
|
443
|
-
title: "Server Health",
|
|
444
|
-
subtitle: "prod-web-1",
|
|
445
|
-
type: "metrics",
|
|
446
|
-
metrics: [
|
|
447
|
-
{ label: "CPU", value: 7, unit: "%" },
|
|
448
|
-
{ label: "MEM", value: 38, unit: "%" }
|
|
449
|
-
],
|
|
450
|
-
auto_dismiss_minutes: 2
|
|
451
|
-
}
|
|
452
|
-
}
|
|
453
|
-
)
|
|
454
|
-
```
|
|
455
|
-
|
|
456
|
-
### Segmented Progress Type
|
|
457
|
-
|
|
458
|
-
Use `segmented_progress` for jobs and workflows that move through clear steps or
|
|
459
|
-
phases. It fits jobs like backups, deployments, ETL pipelines, and checklists.
|
|
460
|
-
`number_of_steps` is dynamic, so you can increase or decrease it later if the
|
|
461
|
-
workflow changes.
|
|
462
|
-
|
|
463
|
-
#### Start
|
|
464
|
-
|
|
465
|
-
<p align="center">
|
|
466
|
-
<img src="https://cdn.activitysmith.com/features/start-live-activity.png" alt="Segmented progress start example" width="680" />
|
|
467
|
-
</p>
|
|
468
|
-
|
|
469
|
-
```ruby
|
|
470
|
-
start = activitysmith.live_activities.start(
|
|
471
|
-
{
|
|
472
|
-
content_state: {
|
|
473
|
-
title: "Nightly database backup",
|
|
474
|
-
subtitle: "create snapshot",
|
|
475
|
-
number_of_steps: 3,
|
|
476
|
-
current_step: 1,
|
|
477
|
-
type: "segmented_progress",
|
|
478
|
-
color: "yellow"
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
)
|
|
482
|
-
|
|
483
|
-
activity_id = start.activity_id
|
|
484
|
-
```
|
|
485
|
-
|
|
486
|
-
#### Update
|
|
487
|
-
|
|
488
|
-
<p align="center">
|
|
489
|
-
<img src="https://cdn.activitysmith.com/features/update-live-activity.png" alt="Segmented progress update example" width="680" />
|
|
490
|
-
</p>
|
|
491
|
-
|
|
492
|
-
```ruby
|
|
493
|
-
activitysmith.live_activities.update(
|
|
494
|
-
{
|
|
495
|
-
activity_id: activity_id,
|
|
496
|
-
content_state: {
|
|
497
|
-
title: "Nightly database backup",
|
|
498
|
-
subtitle: "upload archive",
|
|
499
|
-
number_of_steps: 3,
|
|
500
|
-
current_step: 2
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
)
|
|
504
|
-
```
|
|
505
|
-
|
|
506
|
-
#### End
|
|
507
|
-
|
|
508
|
-
<p align="center">
|
|
509
|
-
<img src="https://cdn.activitysmith.com/features/end-live-activity.png" alt="Segmented progress end example" width="680" />
|
|
510
|
-
</p>
|
|
511
|
-
|
|
512
|
-
```ruby
|
|
513
|
-
activitysmith.live_activities.end(
|
|
514
|
-
{
|
|
515
|
-
activity_id: activity_id,
|
|
516
|
-
content_state: {
|
|
517
|
-
title: "Nightly database backup",
|
|
518
|
-
subtitle: "verify restore",
|
|
519
|
-
number_of_steps: 3,
|
|
520
|
-
current_step: 3,
|
|
521
|
-
auto_dismiss_minutes: 2
|
|
522
|
-
}
|
|
523
|
-
}
|
|
524
|
-
)
|
|
525
|
-
```
|
|
526
|
-
|
|
527
|
-
### Progress Type
|
|
528
|
-
|
|
529
|
-
Use `progress` when the state is naturally continuous. It fits charging,
|
|
530
|
-
downloads, sync jobs, uploads, timers, and any flow where a percentage or
|
|
531
|
-
numeric range is the clearest signal.
|
|
532
|
-
|
|
533
|
-
#### Start
|
|
534
|
-
|
|
535
|
-
<p align="center">
|
|
536
|
-
<img src="https://cdn.activitysmith.com/features/progress-live-activity-start.png" alt="Progress start example" width="680" />
|
|
537
|
-
</p>
|
|
538
|
-
|
|
539
|
-
```ruby
|
|
540
|
-
start = activitysmith.live_activities.start(
|
|
541
|
-
{
|
|
542
|
-
content_state: {
|
|
543
|
-
title: "EV Charging",
|
|
544
|
-
subtitle: "Added 30 mi range",
|
|
545
|
-
type: "progress",
|
|
546
|
-
percentage: 15
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
)
|
|
550
|
-
|
|
551
|
-
activity_id = start.activity_id
|
|
552
|
-
```
|
|
553
|
-
|
|
554
|
-
#### Update
|
|
555
|
-
|
|
556
|
-
<p align="center">
|
|
557
|
-
<img src="https://cdn.activitysmith.com/features/progress-live-activity-update.png" alt="Progress update example" width="680" />
|
|
558
|
-
</p>
|
|
559
|
-
|
|
560
|
-
```ruby
|
|
561
|
-
activitysmith.live_activities.update(
|
|
562
|
-
{
|
|
563
|
-
activity_id: activity_id,
|
|
564
|
-
content_state: {
|
|
565
|
-
title: "EV Charging",
|
|
566
|
-
subtitle: "Added 120 mi range",
|
|
567
|
-
percentage: 60
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
)
|
|
571
|
-
```
|
|
572
|
-
|
|
573
|
-
#### End
|
|
574
|
-
|
|
575
|
-
<p align="center">
|
|
576
|
-
<img src="https://cdn.activitysmith.com/features/progress-live-activity-end.png" alt="Progress end example" width="680" />
|
|
577
|
-
</p>
|
|
578
|
-
|
|
579
|
-
```ruby
|
|
580
|
-
activitysmith.live_activities.end(
|
|
581
|
-
{
|
|
582
|
-
activity_id: activity_id,
|
|
583
|
-
content_state: {
|
|
584
|
-
title: "EV Charging",
|
|
585
|
-
subtitle: "Added 200 mi range",
|
|
586
|
-
percentage: 100,
|
|
587
|
-
auto_dismiss_minutes: 2
|
|
588
|
-
}
|
|
589
|
-
}
|
|
590
|
-
)
|
|
591
|
-
```
|
|
592
|
-
|
|
593
263
|
### Live Activity Action
|
|
594
264
|
|
|
595
|
-
|
|
265
|
+
Live Activities can include one optional action button. Use it to open a URL from the Live Activity or trigger a backend webhook.
|
|
596
266
|
|
|
597
267
|
<p align="center">
|
|
598
|
-
<img
|
|
268
|
+
<img
|
|
269
|
+
src="https://cdn.activitysmith.com/features/live-activity-with-action.png?v=20260319-1"
|
|
270
|
+
alt="Live Activity with action button"
|
|
271
|
+
width="680"
|
|
272
|
+
/>
|
|
599
273
|
</p>
|
|
600
274
|
|
|
601
275
|
#### Open URL action
|
|
602
276
|
|
|
603
277
|
```ruby
|
|
604
|
-
|
|
278
|
+
activitysmith.live_activities.stream(
|
|
279
|
+
"prod-web-1",
|
|
605
280
|
{
|
|
606
281
|
content_state: {
|
|
607
282
|
title: "Server Health",
|
|
@@ -619,23 +294,18 @@ start = activitysmith.live_activities.start(
|
|
|
619
294
|
}
|
|
620
295
|
}
|
|
621
296
|
)
|
|
622
|
-
|
|
623
|
-
activity_id = start.activity_id
|
|
624
297
|
```
|
|
625
298
|
|
|
626
299
|
#### Webhook action
|
|
627
300
|
|
|
628
|
-
<p align="center">
|
|
629
|
-
<img src="https://cdn.activitysmith.com/features/live-activity-with-action.png?v=20260319-1" alt="Live Activity with action" width="680" />
|
|
630
|
-
</p>
|
|
631
|
-
|
|
632
301
|
```ruby
|
|
633
|
-
activitysmith.live_activities.
|
|
302
|
+
activitysmith.live_activities.stream(
|
|
303
|
+
"search-reindex",
|
|
634
304
|
{
|
|
635
|
-
activity_id: activity_id,
|
|
636
305
|
content_state: {
|
|
637
306
|
title: "Reindexing product search",
|
|
638
307
|
subtitle: "Shard 7 of 12",
|
|
308
|
+
type: "segmented_progress",
|
|
639
309
|
number_of_steps: 12,
|
|
640
310
|
current_step: 7
|
|
641
311
|
},
|
|
@@ -19,8 +19,8 @@ module OpenapiClient
|
|
|
19
19
|
def initialize(api_client = ApiClient.default)
|
|
20
20
|
@api_client = api_client
|
|
21
21
|
end
|
|
22
|
-
# End a Live Activity
|
|
23
|
-
# Ends a Live Activity and archives its lifecycle. Supports segmented_progress, progress, metrics, and stats activity types. For segmented_progress activities, you can send the latest number_of_steps here if the workflow changed after start.
|
|
22
|
+
# End a Live Activity (legacy manual lifecycle)
|
|
23
|
+
# Legacy manual lifecycle endpoint. For new integrations, use DELETE /live-activity/stream/{stream_key} to end a managed Live Activity stream. This endpoint remains supported for existing integrations and advanced lifecycle control. Ends a Live Activity and archives its lifecycle. Supports segmented_progress, progress, metrics, and stats activity types. For segmented_progress activities, you can send the latest number_of_steps here if the workflow changed after start.
|
|
24
24
|
# @param live_activity_end_request [LiveActivityEndRequest]
|
|
25
25
|
# @param [Hash] opts the optional parameters
|
|
26
26
|
# @return [LiveActivityEndResponse]
|
|
@@ -29,8 +29,8 @@ module OpenapiClient
|
|
|
29
29
|
data
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
-
# End a Live Activity
|
|
33
|
-
# Ends a Live Activity and archives its lifecycle. Supports segmented_progress, progress, metrics, and stats activity types. For segmented_progress activities, you can send the latest number_of_steps here if the workflow changed after start.
|
|
32
|
+
# End a Live Activity (legacy manual lifecycle)
|
|
33
|
+
# Legacy manual lifecycle endpoint. For new integrations, use DELETE /live-activity/stream/{stream_key} to end a managed Live Activity stream. This endpoint remains supported for existing integrations and advanced lifecycle control. Ends a Live Activity and archives its lifecycle. Supports segmented_progress, progress, metrics, and stats activity types. For segmented_progress activities, you can send the latest number_of_steps here if the workflow changed after start.
|
|
34
34
|
# @param live_activity_end_request [LiveActivityEndRequest]
|
|
35
35
|
# @param [Hash] opts the optional parameters
|
|
36
36
|
# @return [Array<(LiveActivityEndResponse, Integer, Hash)>] LiveActivityEndResponse data, response status code and response headers
|
|
@@ -166,8 +166,8 @@ module OpenapiClient
|
|
|
166
166
|
return data, status_code, headers
|
|
167
167
|
end
|
|
168
168
|
|
|
169
|
-
#
|
|
170
|
-
# Use
|
|
169
|
+
# Start a new Live Activity or update an existing one
|
|
170
|
+
# Use a stable stream_key for each ongoing thing you want to show as a Live Activity. Send the latest content_state whenever it changes, and ActivitySmith will keep the Live Activity in sync.
|
|
171
171
|
# @param stream_key [String] Stable identifier for one ongoing thing. Allowed characters: letters, numbers, underscores, and hyphens.
|
|
172
172
|
# @param live_activity_stream_request [LiveActivityStreamRequest]
|
|
173
173
|
# @param [Hash] opts the optional parameters
|
|
@@ -177,8 +177,8 @@ module OpenapiClient
|
|
|
177
177
|
data
|
|
178
178
|
end
|
|
179
179
|
|
|
180
|
-
#
|
|
181
|
-
# Use
|
|
180
|
+
# Start a new Live Activity or update an existing one
|
|
181
|
+
# Use a stable stream_key for each ongoing thing you want to show as a Live Activity. Send the latest content_state whenever it changes, and ActivitySmith will keep the Live Activity in sync.
|
|
182
182
|
# @param stream_key [String] Stable identifier for one ongoing thing. Allowed characters: letters, numbers, underscores, and hyphens.
|
|
183
183
|
# @param live_activity_stream_request [LiveActivityStreamRequest]
|
|
184
184
|
# @param [Hash] opts the optional parameters
|
|
@@ -249,8 +249,8 @@ module OpenapiClient
|
|
|
249
249
|
return data, status_code, headers
|
|
250
250
|
end
|
|
251
251
|
|
|
252
|
-
# Start a Live Activity
|
|
253
|
-
# Starts a Live Activity on devices matched by API key scope and optional target channels. Supports segmented_progress, progress, metrics, and stats activity types. For segmented_progress activities, number_of_steps can be changed later during update or end calls if the workflow changes.
|
|
252
|
+
# Start a Live Activity (legacy manual lifecycle)
|
|
253
|
+
# Legacy manual lifecycle endpoint. For new integrations, use PUT /live-activity/stream/{stream_key} so ActivitySmith can manage start, update, rotation, and end state for you. This endpoint remains supported for existing integrations and advanced lifecycle control. Starts a Live Activity on devices matched by API key scope and optional target channels. Supports segmented_progress, progress, metrics, and stats activity types. For segmented_progress activities, number_of_steps can be changed later during update or end calls if the workflow changes.
|
|
254
254
|
# @param live_activity_start_request [LiveActivityStartRequest]
|
|
255
255
|
# @param [Hash] opts the optional parameters
|
|
256
256
|
# @return [LiveActivityStartResponse]
|
|
@@ -259,8 +259,8 @@ module OpenapiClient
|
|
|
259
259
|
data
|
|
260
260
|
end
|
|
261
261
|
|
|
262
|
-
# Start a Live Activity
|
|
263
|
-
# Starts a Live Activity on devices matched by API key scope and optional target channels. Supports segmented_progress, progress, metrics, and stats activity types. For segmented_progress activities, number_of_steps can be changed later during update or end calls if the workflow changes.
|
|
262
|
+
# Start a Live Activity (legacy manual lifecycle)
|
|
263
|
+
# Legacy manual lifecycle endpoint. For new integrations, use PUT /live-activity/stream/{stream_key} so ActivitySmith can manage start, update, rotation, and end state for you. This endpoint remains supported for existing integrations and advanced lifecycle control. Starts a Live Activity on devices matched by API key scope and optional target channels. Supports segmented_progress, progress, metrics, and stats activity types. For segmented_progress activities, number_of_steps can be changed later during update or end calls if the workflow changes.
|
|
264
264
|
# @param live_activity_start_request [LiveActivityStartRequest]
|
|
265
265
|
# @param [Hash] opts the optional parameters
|
|
266
266
|
# @return [Array<(LiveActivityStartResponse, Integer, Hash)>] LiveActivityStartResponse data, response status code and response headers
|
|
@@ -317,8 +317,8 @@ module OpenapiClient
|
|
|
317
317
|
return data, status_code, headers
|
|
318
318
|
end
|
|
319
319
|
|
|
320
|
-
# Update a Live Activity
|
|
321
|
-
# Updates an existing Live Activity. If the per-activity token is not registered yet, the update is queued. Supports segmented_progress, progress, metrics, and stats activity types. For segmented_progress activities, you can increase or decrease number_of_steps here as the workflow changes.
|
|
320
|
+
# Update a Live Activity (legacy manual lifecycle)
|
|
321
|
+
# Legacy manual lifecycle endpoint. For new integrations, use PUT /live-activity/stream/{stream_key} so ActivitySmith can manage start, update, rotation, and end state for you. This endpoint remains supported for existing integrations and advanced lifecycle control. Updates an existing Live Activity. If the per-activity token is not registered yet, the update is queued. Supports segmented_progress, progress, metrics, and stats activity types. For segmented_progress activities, you can increase or decrease number_of_steps here as the workflow changes.
|
|
322
322
|
# @param live_activity_update_request [LiveActivityUpdateRequest]
|
|
323
323
|
# @param [Hash] opts the optional parameters
|
|
324
324
|
# @return [LiveActivityUpdateResponse]
|
|
@@ -327,8 +327,8 @@ module OpenapiClient
|
|
|
327
327
|
data
|
|
328
328
|
end
|
|
329
329
|
|
|
330
|
-
# Update a Live Activity
|
|
331
|
-
# Updates an existing Live Activity. If the per-activity token is not registered yet, the update is queued. Supports segmented_progress, progress, metrics, and stats activity types. For segmented_progress activities, you can increase or decrease number_of_steps here as the workflow changes.
|
|
330
|
+
# Update a Live Activity (legacy manual lifecycle)
|
|
331
|
+
# Legacy manual lifecycle endpoint. For new integrations, use PUT /live-activity/stream/{stream_key} so ActivitySmith can manage start, update, rotation, and end state for you. This endpoint remains supported for existing integrations and advanced lifecycle control. Updates an existing Live Activity. If the per-activity token is not registered yet, the update is queued. Supports segmented_progress, progress, metrics, and stats activity types. For segmented_progress activities, you can increase or decrease number_of_steps here as the workflow changes.
|
|
332
332
|
# @param live_activity_update_request [LiveActivityUpdateRequest]
|
|
333
333
|
# @param [Hash] opts the optional parameters
|
|
334
334
|
# @return [Array<(LiveActivityUpdateResponse, Integer, Hash)>] LiveActivityUpdateResponse data, response status code and response headers
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: activitysmith
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ActivitySmith
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-05-
|
|
11
|
+
date: 2026-05-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: json
|