late-sdk 0.0.686 → 0.0.688
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 +3 -0
- data/docs/CommentAutomationTemplate.md +20 -0
- data/docs/CommentAutomationTemplateElement.md +24 -0
- data/docs/CommentAutomationTemplateElementButtonsInner.md +24 -0
- data/docs/CreateCommentAutomation200ResponseAutomation.md +2 -0
- data/docs/CreateCommentAutomationRequest.md +2 -0
- data/docs/GetCommentAutomation200ResponseAutomation.md +2 -0
- data/docs/ListCommentAutomations200ResponseAutomationsInner.md +2 -0
- data/docs/MessagesApi.md +2 -2
- data/docs/SendInboxMessageRequest.md +1 -1
- data/docs/UpdateCommentAutomation200ResponseAutomation.md +2 -0
- data/docs/UpdateCommentAutomationRequest.md +2 -0
- data/docs/WebhookEventsApi.md +1 -1
- data/lib/zernio-sdk/api/messages_api.rb +4 -4
- data/lib/zernio-sdk/api/webhook_events_api.rb +2 -2
- data/lib/zernio-sdk/models/comment_automation_template.rb +235 -0
- data/lib/zernio-sdk/models/comment_automation_template_element.rb +244 -0
- data/lib/zernio-sdk/models/comment_automation_template_element_buttons_inner.rb +243 -0
- data/lib/zernio-sdk/models/create_comment_automation200_response_automation.rb +11 -1
- data/lib/zernio-sdk/models/create_comment_automation_request.rb +12 -1
- data/lib/zernio-sdk/models/get_comment_automation200_response_automation.rb +11 -1
- data/lib/zernio-sdk/models/list_comment_automations200_response_automations_inner.rb +10 -1
- data/lib/zernio-sdk/models/send_inbox_message_request.rb +1 -1
- data/lib/zernio-sdk/models/send_inbox_message_request_template.rb +1 -1
- data/lib/zernio-sdk/models/update_comment_automation200_response_automation.rb +11 -1
- data/lib/zernio-sdk/models/update_comment_automation_request.rb +11 -1
- data/lib/zernio-sdk/models/webhook_payload_reaction.rb +1 -1
- data/lib/zernio-sdk/models/webhook_payload_reaction_reaction_sender.rb +1 -1
- data/lib/zernio-sdk/version.rb +1 -1
- data/lib/zernio-sdk.rb +3 -0
- data/openapi.yaml +77 -9
- data/spec/api/messages_api_spec.rb +2 -2
- data/spec/models/comment_automation_template_element_buttons_inner_spec.rb +58 -0
- data/spec/models/comment_automation_template_element_spec.rb +54 -0
- data/spec/models/comment_automation_template_spec.rb +46 -0
- data/spec/models/create_comment_automation200_response_automation_spec.rb +6 -0
- data/spec/models/create_comment_automation_request_spec.rb +6 -0
- data/spec/models/get_comment_automation200_response_automation_spec.rb +6 -0
- data/spec/models/list_comment_automations200_response_automations_inner_spec.rb +6 -0
- data/spec/models/update_comment_automation200_response_automation_spec.rb +6 -0
- data/spec/models/update_comment_automation_request_spec.rb +6 -0
- data/zernio-sdk-0.0.688.gem +0 -0
- metadata +1584 -1572
- data/zernio-sdk-0.0.686.gem +0 -0
|
@@ -45,6 +45,8 @@ module Zernio
|
|
|
45
45
|
# Inline DM buttons (up to 3). Omitted when none are set.
|
|
46
46
|
attr_accessor :buttons
|
|
47
47
|
|
|
48
|
+
attr_accessor :template
|
|
49
|
+
|
|
48
50
|
attr_accessor :comment_reply
|
|
49
51
|
|
|
50
52
|
# Alternate DM texts rotated at random with dmMessage. Omitted when none.
|
|
@@ -109,6 +111,7 @@ module Zernio
|
|
|
109
111
|
:'typo_tolerance' => :'typoTolerance',
|
|
110
112
|
:'dm_message' => :'dmMessage',
|
|
111
113
|
:'buttons' => :'buttons',
|
|
114
|
+
:'template' => :'template',
|
|
112
115
|
:'comment_reply' => :'commentReply',
|
|
113
116
|
:'dm_message_variations' => :'dmMessageVariations',
|
|
114
117
|
:'comment_reply_variations' => :'commentReplyVariations',
|
|
@@ -148,6 +151,7 @@ module Zernio
|
|
|
148
151
|
:'typo_tolerance' => :'Boolean',
|
|
149
152
|
:'dm_message' => :'String',
|
|
150
153
|
:'buttons' => :'Array<DmButton>',
|
|
154
|
+
:'template' => :'CommentAutomationTemplate',
|
|
151
155
|
:'comment_reply' => :'String',
|
|
152
156
|
:'dm_message_variations' => :'Array<String>',
|
|
153
157
|
:'comment_reply_variations' => :'Array<String>',
|
|
@@ -241,6 +245,10 @@ module Zernio
|
|
|
241
245
|
end
|
|
242
246
|
end
|
|
243
247
|
|
|
248
|
+
if attributes.key?(:'template')
|
|
249
|
+
self.template = attributes[:'template']
|
|
250
|
+
end
|
|
251
|
+
|
|
244
252
|
if attributes.key?(:'comment_reply')
|
|
245
253
|
self.comment_reply = attributes[:'comment_reply']
|
|
246
254
|
end
|
|
@@ -355,6 +363,7 @@ module Zernio
|
|
|
355
363
|
typo_tolerance == o.typo_tolerance &&
|
|
356
364
|
dm_message == o.dm_message &&
|
|
357
365
|
buttons == o.buttons &&
|
|
366
|
+
template == o.template &&
|
|
358
367
|
comment_reply == o.comment_reply &&
|
|
359
368
|
dm_message_variations == o.dm_message_variations &&
|
|
360
369
|
comment_reply_variations == o.comment_reply_variations &&
|
|
@@ -376,7 +385,7 @@ module Zernio
|
|
|
376
385
|
# Calculates hash code according to all attributes.
|
|
377
386
|
# @return [Integer] Hash code
|
|
378
387
|
def hash
|
|
379
|
-
[id, name, platform, trigger, account_id, platform_post_id, post_title, keywords, match_mode, exclude_keywords, typo_tolerance, dm_message, buttons, comment_reply, dm_message_variations, comment_reply_variations, link_tracking, click_tag, dm_delay_seconds, comment_reply_delay_seconds, is_active, stats, created_at].hash
|
|
388
|
+
[id, name, platform, trigger, account_id, platform_post_id, post_title, keywords, match_mode, exclude_keywords, typo_tolerance, dm_message, buttons, template, comment_reply, dm_message_variations, comment_reply_variations, link_tracking, click_tag, dm_delay_seconds, comment_reply_delay_seconds, is_active, stats, created_at].hash
|
|
380
389
|
end
|
|
381
390
|
|
|
382
391
|
# Builds the object from hash
|
|
@@ -39,7 +39,7 @@ module Zernio
|
|
|
39
39
|
# Quick reply buttons. Mutually exclusive with buttons. Max 13 items.
|
|
40
40
|
attr_accessor :quick_replies
|
|
41
41
|
|
|
42
|
-
# Action buttons. Mutually exclusive with quickReplies. Max 3 items. WhatsApp: buttons always render as interactive reply buttons. Only `title` and `payload` are used — `type`, `url`, and `phone` are ignored (WhatsApp has no URL/phone button in this field; use the `interactive` field with `type: cta_url` for a link button). `payload` becomes the button reply ID delivered on the `message.received` webhook when the user taps. To send a simple reply-button message, provide `title` + `payload` and set `type: postback`, e.g. `{ \"type\": \"postback\", \"title\": \"Yes\", \"payload\": \"yes\" }`.
|
|
42
|
+
# Action buttons. Mutually exclusive with quickReplies. Max 3 items. Instagram / Facebook: also mutually exclusive with `template`. A Meta message carries one body shape, so sending both is a 400 rather than a silent drop of the buttons. WhatsApp: buttons always render as interactive reply buttons. Only `title` and `payload` are used — `type`, `url`, and `phone` are ignored (WhatsApp has no URL/phone button in this field; use the `interactive` field with `type: cta_url` for a link button). `payload` becomes the button reply ID delivered on the `message.received` webhook when the user taps. To send a simple reply-button message, provide `title` + `payload` and set `type: postback`, e.g. `{ \"type\": \"postback\", \"title\": \"Yes\", \"payload\": \"yes\" }`.
|
|
43
43
|
attr_accessor :buttons
|
|
44
44
|
|
|
45
45
|
attr_accessor :template
|
|
@@ -14,7 +14,7 @@ require 'date'
|
|
|
14
14
|
require 'time'
|
|
15
15
|
|
|
16
16
|
module Zernio
|
|
17
|
-
# Platform-dependent template payload. Ignored on Telegram. Instagram / Facebook: a generic template (carousel). Set `type: generic` and provide up to 10 `elements`, each with a `title` (required) and optional `subtitle`, `imageUrl`, and `buttons`. WhatsApp: sends an approved WhatsApp template message, the only message type WhatsApp accepts when the 24-hour customer-service window is closed. Provide exactly one element carrying the template reference: `{ \"elements\": [{ \"name\": \"order_update\", \"language\": \"en_US\", \"components\": [...] }] }` (`type` is ignored on WhatsApp). `components` is optional and is forwarded unchanged as the `template.components` array of Meta's Cloud API send payload; use it to fill body/header variables and button parameters, e.g. `[{ \"type\": \"body\", \"parameters\": [{ \"type\": \"text\", \"text\": \"John\" }] }]`. Templates with media headers (image, video, document) must include the header component with its media link here at send time. To send a template to a phone number with no existing conversation, or to have media headers filled in automatically from the template definition, use the create-conversation endpoint (POST /v1/inbox/conversations) instead.
|
|
17
|
+
# Platform-dependent template payload. Ignored on Telegram. Instagram / Facebook: a generic template (carousel). Set `type: generic` and provide up to 10 `elements`, each with a `title` (required) and optional `subtitle`, `imageUrl`, and `buttons`. Mutually exclusive with the top-level `buttons` field (sending both is a 400); put the card's buttons on its `elements` instead. WhatsApp: sends an approved WhatsApp template message, the only message type WhatsApp accepts when the 24-hour customer-service window is closed. Provide exactly one element carrying the template reference: `{ \"elements\": [{ \"name\": \"order_update\", \"language\": \"en_US\", \"components\": [...] }] }` (`type` is ignored on WhatsApp). `components` is optional and is forwarded unchanged as the `template.components` array of Meta's Cloud API send payload; use it to fill body/header variables and button parameters, e.g. `[{ \"type\": \"body\", \"parameters\": [{ \"type\": \"text\", \"text\": \"John\" }] }]`. Templates with media headers (image, video, document) must include the header component with its media link here at send time. To send a template to a phone number with no existing conversation, or to have media headers filled in automatically from the template definition, use the create-conversation endpoint (POST /v1/inbox/conversations) instead.
|
|
18
18
|
class SendInboxMessageRequestTemplate < ApiModelBase
|
|
19
19
|
# Template type. Required for Instagram/Facebook generic templates; ignored on WhatsApp.
|
|
20
20
|
attr_accessor :type
|
|
@@ -35,6 +35,8 @@ module Zernio
|
|
|
35
35
|
# Inline DM buttons (up to 3). Omitted when none are set.
|
|
36
36
|
attr_accessor :buttons
|
|
37
37
|
|
|
38
|
+
attr_accessor :template
|
|
39
|
+
|
|
38
40
|
attr_accessor :comment_reply
|
|
39
41
|
|
|
40
42
|
# Alternate DM texts rotated at random with dmMessage. Omitted when none.
|
|
@@ -84,6 +86,7 @@ module Zernio
|
|
|
84
86
|
:'typo_tolerance' => :'typoTolerance',
|
|
85
87
|
:'dm_message' => :'dmMessage',
|
|
86
88
|
:'buttons' => :'buttons',
|
|
89
|
+
:'template' => :'template',
|
|
87
90
|
:'comment_reply' => :'commentReply',
|
|
88
91
|
:'dm_message_variations' => :'dmMessageVariations',
|
|
89
92
|
:'comment_reply_variations' => :'commentReplyVariations',
|
|
@@ -115,6 +118,7 @@ module Zernio
|
|
|
115
118
|
:'typo_tolerance' => :'Boolean',
|
|
116
119
|
:'dm_message' => :'String',
|
|
117
120
|
:'buttons' => :'Array<DmButton>',
|
|
121
|
+
:'template' => :'CommentAutomationTemplate',
|
|
118
122
|
:'comment_reply' => :'String',
|
|
119
123
|
:'dm_message_variations' => :'Array<String>',
|
|
120
124
|
:'comment_reply_variations' => :'Array<String>',
|
|
@@ -128,6 +132,7 @@ module Zernio
|
|
|
128
132
|
# List of attributes with nullable: true
|
|
129
133
|
def self.openapi_nullable
|
|
130
134
|
Set.new([
|
|
135
|
+
:'template',
|
|
131
136
|
])
|
|
132
137
|
end
|
|
133
138
|
|
|
@@ -185,6 +190,10 @@ module Zernio
|
|
|
185
190
|
end
|
|
186
191
|
end
|
|
187
192
|
|
|
193
|
+
if attributes.key?(:'template')
|
|
194
|
+
self.template = attributes[:'template']
|
|
195
|
+
end
|
|
196
|
+
|
|
188
197
|
if attributes.key?(:'comment_reply')
|
|
189
198
|
self.comment_reply = attributes[:'comment_reply']
|
|
190
199
|
end
|
|
@@ -258,6 +267,7 @@ module Zernio
|
|
|
258
267
|
typo_tolerance == o.typo_tolerance &&
|
|
259
268
|
dm_message == o.dm_message &&
|
|
260
269
|
buttons == o.buttons &&
|
|
270
|
+
template == o.template &&
|
|
261
271
|
comment_reply == o.comment_reply &&
|
|
262
272
|
dm_message_variations == o.dm_message_variations &&
|
|
263
273
|
comment_reply_variations == o.comment_reply_variations &&
|
|
@@ -276,7 +286,7 @@ module Zernio
|
|
|
276
286
|
# Calculates hash code according to all attributes.
|
|
277
287
|
# @return [Integer] Hash code
|
|
278
288
|
def hash
|
|
279
|
-
[id, name, keywords, match_mode, exclude_keywords, typo_tolerance, dm_message, buttons, comment_reply, dm_message_variations, comment_reply_variations, audience, follow_gate, is_active, updated_at].hash
|
|
289
|
+
[id, name, keywords, match_mode, exclude_keywords, typo_tolerance, dm_message, buttons, template, comment_reply, dm_message_variations, comment_reply_variations, audience, follow_gate, is_active, updated_at].hash
|
|
280
290
|
end
|
|
281
291
|
|
|
282
292
|
# Builds the object from hash
|
|
@@ -36,6 +36,8 @@ module Zernio
|
|
|
36
36
|
# Inline DM buttons (1-3). Pass [] to clear all buttons.
|
|
37
37
|
attr_accessor :buttons
|
|
38
38
|
|
|
39
|
+
attr_accessor :template
|
|
40
|
+
|
|
39
41
|
attr_accessor :comment_reply
|
|
40
42
|
|
|
41
43
|
# Alternate DM texts for random rotation (see create). Pass [] to clear.
|
|
@@ -95,6 +97,7 @@ module Zernio
|
|
|
95
97
|
:'typo_tolerance' => :'typoTolerance',
|
|
96
98
|
:'dm_message' => :'dmMessage',
|
|
97
99
|
:'buttons' => :'buttons',
|
|
100
|
+
:'template' => :'template',
|
|
98
101
|
:'comment_reply' => :'commentReply',
|
|
99
102
|
:'dm_message_variations' => :'dmMessageVariations',
|
|
100
103
|
:'comment_reply_variations' => :'commentReplyVariations',
|
|
@@ -129,6 +132,7 @@ module Zernio
|
|
|
129
132
|
:'typo_tolerance' => :'Boolean',
|
|
130
133
|
:'dm_message' => :'String',
|
|
131
134
|
:'buttons' => :'Array<DmButton>',
|
|
135
|
+
:'template' => :'CommentAutomationTemplate',
|
|
132
136
|
:'comment_reply' => :'String',
|
|
133
137
|
:'dm_message_variations' => :'Array<String>',
|
|
134
138
|
:'comment_reply_variations' => :'Array<String>',
|
|
@@ -145,6 +149,7 @@ module Zernio
|
|
|
145
149
|
# List of attributes with nullable: true
|
|
146
150
|
def self.openapi_nullable
|
|
147
151
|
Set.new([
|
|
152
|
+
:'template',
|
|
148
153
|
])
|
|
149
154
|
end
|
|
150
155
|
|
|
@@ -202,6 +207,10 @@ module Zernio
|
|
|
202
207
|
end
|
|
203
208
|
end
|
|
204
209
|
|
|
210
|
+
if attributes.key?(:'template')
|
|
211
|
+
self.template = attributes[:'template']
|
|
212
|
+
end
|
|
213
|
+
|
|
205
214
|
if attributes.key?(:'comment_reply')
|
|
206
215
|
self.comment_reply = attributes[:'comment_reply']
|
|
207
216
|
end
|
|
@@ -412,6 +421,7 @@ module Zernio
|
|
|
412
421
|
typo_tolerance == o.typo_tolerance &&
|
|
413
422
|
dm_message == o.dm_message &&
|
|
414
423
|
buttons == o.buttons &&
|
|
424
|
+
template == o.template &&
|
|
415
425
|
comment_reply == o.comment_reply &&
|
|
416
426
|
dm_message_variations == o.dm_message_variations &&
|
|
417
427
|
comment_reply_variations == o.comment_reply_variations &&
|
|
@@ -433,7 +443,7 @@ module Zernio
|
|
|
433
443
|
# Calculates hash code according to all attributes.
|
|
434
444
|
# @return [Integer] Hash code
|
|
435
445
|
def hash
|
|
436
|
-
[name, trigger, keywords, match_mode, exclude_keywords, typo_tolerance, dm_message, buttons, comment_reply, dm_message_variations, comment_reply_variations, link_tracking, click_tag, dm_delay_seconds, comment_reply_delay_seconds, audience, follow_gate, is_active].hash
|
|
446
|
+
[name, trigger, keywords, match_mode, exclude_keywords, typo_tolerance, dm_message, buttons, template, comment_reply, dm_message_variations, comment_reply_variations, link_tracking, click_tag, dm_delay_seconds, comment_reply_delay_seconds, audience, follow_gate, is_active].hash
|
|
437
447
|
end
|
|
438
448
|
|
|
439
449
|
# Builds the object from hash
|
|
@@ -14,7 +14,7 @@ require 'date'
|
|
|
14
14
|
require 'time'
|
|
15
15
|
|
|
16
16
|
module Zernio
|
|
17
|
-
# Webhook payload for reaction received events (WhatsApp, Telegram)
|
|
17
|
+
# Webhook payload for reaction received events (WhatsApp, Telegram, Slack, Instagram, Facebook Messenger)
|
|
18
18
|
class WebhookPayloadReaction < ApiModelBase
|
|
19
19
|
# Stable webhook event ID
|
|
20
20
|
attr_accessor :id
|
|
@@ -14,7 +14,7 @@ require 'date'
|
|
|
14
14
|
require 'time'
|
|
15
15
|
|
|
16
16
|
module Zernio
|
|
17
|
-
#
|
|
17
|
+
# Whoever added or removed the reaction. Usually the participant, but on Slack, Instagram and Facebook Messenger it is the business own platform id when the reaction was made from the native app: compare it with conversation.participantId.
|
|
18
18
|
class WebhookPayloadReactionReactionSender < ApiModelBase
|
|
19
19
|
attr_accessor :id
|
|
20
20
|
|
data/lib/zernio-sdk/version.rb
CHANGED
data/lib/zernio-sdk.rb
CHANGED
|
@@ -134,6 +134,9 @@ require 'zernio-sdk/models/check_verification200_response'
|
|
|
134
134
|
require 'zernio-sdk/models/check_verification_request'
|
|
135
135
|
require 'zernio-sdk/models/comment_automation_audience'
|
|
136
136
|
require 'zernio-sdk/models/comment_automation_follow_gate'
|
|
137
|
+
require 'zernio-sdk/models/comment_automation_template'
|
|
138
|
+
require 'zernio-sdk/models/comment_automation_template_element'
|
|
139
|
+
require 'zernio-sdk/models/comment_automation_template_element_buttons_inner'
|
|
137
140
|
require 'zernio-sdk/models/complete_google_business_verification_request'
|
|
138
141
|
require 'zernio-sdk/models/complete_telegram_connect200_response'
|
|
139
142
|
require 'zernio-sdk/models/complete_whats_app_phone_selection200_response'
|
data/openapi.yaml
CHANGED
|
@@ -158,7 +158,7 @@ x-documentation:
|
|
|
158
158
|
- `message.delivered` - An outgoing message was delivered (WhatsApp, Messenger)
|
|
159
159
|
- `message.read` - An outgoing message was read by the recipient (WhatsApp, Messenger, Instagram)
|
|
160
160
|
- `message.failed` - An outgoing message failed delivery (WhatsApp)
|
|
161
|
-
- `reaction.received` - A participant added or removed an emoji reaction on a message (WhatsApp, Telegram)
|
|
161
|
+
- `reaction.received` - A participant added or removed an emoji reaction on a message (WhatsApp, Telegram, Slack, Instagram, Facebook Messenger)
|
|
162
162
|
- `comment.received` - New comment received on a post
|
|
163
163
|
- `review.new` - New review posted on a connected account (Google Business Profile)
|
|
164
164
|
- `review.updated` - Review updated or reply added (Google Business Profile, or via reply API)
|
|
@@ -1461,6 +1461,44 @@ components:
|
|
|
1461
1461
|
url: { type: string, format: uri, description: Target URL (required when type is url) }
|
|
1462
1462
|
payload: { type: string, description: Postback payload delivered via the messaging_postbacks webhook (required when type is postback) }
|
|
1463
1463
|
phone: { type: string, description: "Phone number, e.g. +14155551234 (required when type is phone; Facebook only)" }
|
|
1464
|
+
CommentAutomationTemplate:
|
|
1465
|
+
type: object
|
|
1466
|
+
description: |
|
|
1467
|
+
A Meta generic template (product card) sent as the automation's first DM.
|
|
1468
|
+
It REPLACES the plain `dmMessage` bubble: a Meta message carries one body
|
|
1469
|
+
shape, and a comment gets exactly one private reply, so the card and the
|
|
1470
|
+
text cannot both be delivered. Put your selling copy in `subtitle`.
|
|
1471
|
+
Mutually exclusive with `buttons` (sending both is a 400). Works on both
|
|
1472
|
+
the `comment` and `story_reply` triggers.
|
|
1473
|
+
Up to 10 elements, rendered as a horizontally swipeable carousel.
|
|
1474
|
+
Rendering confirmed on the Instagram and Messenger mobile apps.
|
|
1475
|
+
required: [type, elements]
|
|
1476
|
+
properties:
|
|
1477
|
+
type: { type: string, enum: [generic] }
|
|
1478
|
+
elements:
|
|
1479
|
+
type: array
|
|
1480
|
+
minItems: 1
|
|
1481
|
+
maxItems: 10
|
|
1482
|
+
items: { $ref: '#/components/schemas/CommentAutomationTemplateElement' }
|
|
1483
|
+
CommentAutomationTemplateElement:
|
|
1484
|
+
type: object
|
|
1485
|
+
required: [title]
|
|
1486
|
+
properties:
|
|
1487
|
+
title: { type: string, maxLength: 80, description: 'Card headline (80 chars max). Also used as the Inbox preview for the sent DM.' }
|
|
1488
|
+
subtitle: { type: string, maxLength: 80, description: 'Card description, e.g. the price or a short pitch (80 chars max).' }
|
|
1489
|
+
imageUrl: { type: string, format: uri, description: 'Publicly reachable http(s) image rendered large above the card.' }
|
|
1490
|
+
buttons:
|
|
1491
|
+
type: array
|
|
1492
|
+
maxItems: 3
|
|
1493
|
+
description: 'Up to 3 card buttons. A generic template has NO phone button, on either platform. `url` buttons are click-tracked when linkTracking is on.'
|
|
1494
|
+
items:
|
|
1495
|
+
type: object
|
|
1496
|
+
required: [type, title]
|
|
1497
|
+
properties:
|
|
1498
|
+
type: { type: string, enum: [url, postback] }
|
|
1499
|
+
title: { type: string, maxLength: 20 }
|
|
1500
|
+
url: { type: string, format: uri, description: 'Target URL (required when type is url)' }
|
|
1501
|
+
payload: { type: string, description: 'Postback payload delivered via the messaging_postbacks webhook (required when type is postback)' }
|
|
1464
1502
|
WhatsAppTemplateButton:
|
|
1465
1503
|
type: object
|
|
1466
1504
|
required: [type]
|
|
@@ -3211,7 +3249,7 @@ components:
|
|
|
3211
3249
|
# ────────────────────────────────────────────────────────────────────────
|
|
3212
3250
|
WebhookPayloadReaction:
|
|
3213
3251
|
type: object
|
|
3214
|
-
description: Webhook payload for reaction received events (WhatsApp, Telegram)
|
|
3252
|
+
description: 'Webhook payload for reaction received events (WhatsApp, Telegram, Slack, Instagram, Facebook Messenger)'
|
|
3215
3253
|
required: [id, event, reaction, conversation, account, timestamp]
|
|
3216
3254
|
properties:
|
|
3217
3255
|
id:
|
|
@@ -3241,7 +3279,7 @@ components:
|
|
|
3241
3279
|
sender:
|
|
3242
3280
|
type: object
|
|
3243
3281
|
required: [id]
|
|
3244
|
-
description:
|
|
3282
|
+
description: 'Whoever added or removed the reaction. Usually the participant, but on Slack, Instagram and Facebook Messenger it is the business own platform id when the reaction was made from the native app: compare it with conversation.participantId.'
|
|
3245
3283
|
properties:
|
|
3246
3284
|
id:
|
|
3247
3285
|
type: string
|
|
@@ -8317,11 +8355,15 @@ webhooks:
|
|
|
8317
8355
|
summary: Reaction received event
|
|
8318
8356
|
description: |
|
|
8319
8357
|
Fired when a participant adds or removes an emoji reaction on a message.
|
|
8320
|
-
Supported on WhatsApp
|
|
8321
|
-
reaction (e.g. a thumbs-up) is not
|
|
8322
|
-
|
|
8323
|
-
|
|
8324
|
-
|
|
8358
|
+
Supported on WhatsApp, Telegram, Slack, Instagram and Facebook Messenger.
|
|
8359
|
+
Distinct from message.received so a reaction (e.g. a thumbs-up) is not
|
|
8360
|
+
mistaken for an inbound message.
|
|
8361
|
+
The `reaction.action` field is `added` or `removed`. On WhatsApp and Meta
|
|
8362
|
+
removals the platform does not report which emoji was removed, so
|
|
8363
|
+
`reaction.emoji` may be an empty string.
|
|
8364
|
+
Instagram and Facebook accounts connected before reactions shipped only
|
|
8365
|
+
emit this event after their webhook subscription is refreshed; reconnect
|
|
8366
|
+
the account if reactions never arrive. Requires the Inbox add-on.
|
|
8325
8367
|
tags: [Webhook Events]
|
|
8326
8368
|
requestBody:
|
|
8327
8369
|
required: true
|
|
@@ -24358,6 +24400,10 @@ paths:
|
|
|
24358
24400
|
description: |
|
|
24359
24401
|
Action buttons. Mutually exclusive with quickReplies. Max 3 items.
|
|
24360
24402
|
|
|
24403
|
+
Instagram / Facebook: also mutually exclusive with `template`.
|
|
24404
|
+
A Meta message carries one body shape, so sending both is a 400
|
|
24405
|
+
rather than a silent drop of the buttons.
|
|
24406
|
+
|
|
24361
24407
|
WhatsApp: buttons always render as interactive reply buttons.
|
|
24362
24408
|
Only `title` and `payload` are used — `type`, `url`, and `phone`
|
|
24363
24409
|
are ignored (WhatsApp has no URL/phone button in this field; use
|
|
@@ -24383,7 +24429,9 @@ paths:
|
|
|
24383
24429
|
|
|
24384
24430
|
Instagram / Facebook: a generic template (carousel). Set `type: generic`
|
|
24385
24431
|
and provide up to 10 `elements`, each with a `title` (required) and
|
|
24386
|
-
optional `subtitle`, `imageUrl`, and `buttons`.
|
|
24432
|
+
optional `subtitle`, `imageUrl`, and `buttons`. Mutually exclusive with
|
|
24433
|
+
the top-level `buttons` field (sending both is a 400); put the card's
|
|
24434
|
+
buttons on its `elements` instead.
|
|
24387
24435
|
|
|
24388
24436
|
WhatsApp: sends an approved WhatsApp template message, the only message
|
|
24389
24437
|
type WhatsApp accepts when the 24-hour customer-service window is closed.
|
|
@@ -25078,6 +25126,8 @@ paths:
|
|
|
25078
25126
|
Add an emoji reaction to a message. Platform support:
|
|
25079
25127
|
- Telegram: Supports a subset of Unicode emoji reactions
|
|
25080
25128
|
- WhatsApp: Supports any standard emoji (one reaction per message per sender)
|
|
25129
|
+
- Instagram and Facebook Messenger: Any standard emoji, subject to Meta's 24h messaging window
|
|
25130
|
+
- Slack: The emoji must have a Slack name (e.g. `:thumbsup:`); unnamed characters return 400
|
|
25081
25131
|
- All others: Returns 400 (not supported)
|
|
25082
25132
|
tags: [Messages]
|
|
25083
25133
|
security: [{ bearerAuth: [] }]
|
|
@@ -25126,6 +25176,8 @@ paths:
|
|
|
25126
25176
|
Remove a reaction from a message. Platform support:
|
|
25127
25177
|
- Telegram: Send empty reaction array to clear
|
|
25128
25178
|
- WhatsApp: Send empty emoji to remove
|
|
25179
|
+
- Instagram and Facebook Messenger: Sends Meta's `unreact` action; the emoji does not need to be repeated
|
|
25180
|
+
- Slack: Removes the reaction we previously sent on that message
|
|
25129
25181
|
- All others: Returns 400 (not supported)
|
|
25130
25182
|
tags: [Messages]
|
|
25131
25183
|
security: [{ bearerAuth: [] }]
|
|
@@ -35865,6 +35917,8 @@ paths:
|
|
|
35865
35917
|
type: array
|
|
35866
35918
|
items: { $ref: '#/components/schemas/DmButton' }
|
|
35867
35919
|
description: Inline DM buttons (up to 3). Omitted when none are set.
|
|
35920
|
+
template:
|
|
35921
|
+
$ref: '#/components/schemas/CommentAutomationTemplate'
|
|
35868
35922
|
commentReply: { type: string }
|
|
35869
35923
|
dmMessageVariations: { type: array, items: { type: string }, description: "Alternate DM texts rotated at random with dmMessage. Omitted when none." }
|
|
35870
35924
|
commentReplyVariations: { type: array, items: { type: string }, description: "Alternate public replies rotated at random with commentReply. Omitted when none." }
|
|
@@ -35952,6 +36006,9 @@ paths:
|
|
|
35952
36006
|
maxItems: 3
|
|
35953
36007
|
items: { $ref: '#/components/schemas/DmButton' }
|
|
35954
36008
|
description: "Optional inline DM buttons (1-3). Phone buttons are Facebook-only. Omit or pass [] for a plain-text DM."
|
|
36009
|
+
template:
|
|
36010
|
+
allOf: [{ $ref: '#/components/schemas/CommentAutomationTemplate' }]
|
|
36011
|
+
description: "Optional product card sent INSTEAD of the plain dmMessage bubble. Mutually exclusive with buttons. dmMessage stays required: it is what gets sent the moment the card is cleared."
|
|
35955
36012
|
commentReply: { type: string, description: Optional public reply to the comment }
|
|
35956
36013
|
dmMessageVariations:
|
|
35957
36014
|
type: array
|
|
@@ -35995,6 +36052,8 @@ paths:
|
|
|
35995
36052
|
type: array
|
|
35996
36053
|
items: { $ref: '#/components/schemas/DmButton' }
|
|
35997
36054
|
description: Inline DM buttons (up to 3). Omitted when none are set.
|
|
36055
|
+
template:
|
|
36056
|
+
$ref: '#/components/schemas/CommentAutomationTemplate'
|
|
35998
36057
|
commentReply: { type: string }
|
|
35999
36058
|
dmMessageVariations: { type: array, items: { type: string }, description: "Alternate DM texts rotated at random with dmMessage. Omitted when none." }
|
|
36000
36059
|
commentReplyVariations: { type: array, items: { type: string }, description: "Alternate public replies rotated at random with commentReply. Omitted when none." }
|
|
@@ -36051,6 +36110,8 @@ paths:
|
|
|
36051
36110
|
type: array
|
|
36052
36111
|
items: { $ref: '#/components/schemas/DmButton' }
|
|
36053
36112
|
description: Inline DM buttons (up to 3). Omitted when none are set.
|
|
36113
|
+
template:
|
|
36114
|
+
$ref: '#/components/schemas/CommentAutomationTemplate'
|
|
36054
36115
|
commentReply: { type: string }
|
|
36055
36116
|
dmMessageVariations: { type: array, items: { type: string }, description: "Alternate DM texts rotated at random with dmMessage. Omitted when none." }
|
|
36056
36117
|
commentReplyVariations: { type: array, items: { type: string }, description: "Alternate public replies rotated at random with commentReply. Omitted when none." }
|
|
@@ -36116,6 +36177,11 @@ paths:
|
|
|
36116
36177
|
maxItems: 3
|
|
36117
36178
|
items: { $ref: '#/components/schemas/DmButton' }
|
|
36118
36179
|
description: "Inline DM buttons (1-3). Pass [] to clear all buttons."
|
|
36180
|
+
template:
|
|
36181
|
+
oneOf:
|
|
36182
|
+
- $ref: '#/components/schemas/CommentAutomationTemplate'
|
|
36183
|
+
- type: 'null'
|
|
36184
|
+
description: "Product card sent instead of the plain dmMessage bubble. Pass null to clear it and fall back to dmMessage. Mutually exclusive with buttons, including with the buttons already stored on the automation."
|
|
36119
36185
|
commentReply: { type: string }
|
|
36120
36186
|
dmMessageVariations:
|
|
36121
36187
|
type: array
|
|
@@ -36157,6 +36223,8 @@ paths:
|
|
|
36157
36223
|
type: array
|
|
36158
36224
|
items: { $ref: '#/components/schemas/DmButton' }
|
|
36159
36225
|
description: Inline DM buttons (up to 3). Omitted when none are set.
|
|
36226
|
+
template:
|
|
36227
|
+
$ref: '#/components/schemas/CommentAutomationTemplate'
|
|
36160
36228
|
commentReply: { type: string }
|
|
36161
36229
|
dmMessageVariations: { type: array, items: { type: string }, description: "Alternate DM texts rotated at random with dmMessage. Omitted when none." }
|
|
36162
36230
|
commentReplyVariations: { type: array, items: { type: string }, description: "Alternate public replies rotated at random with commentReply. Omitted when none." }
|
|
@@ -34,7 +34,7 @@ describe 'MessagesApi' do
|
|
|
34
34
|
|
|
35
35
|
# unit tests for add_message_reaction
|
|
36
36
|
# Add reaction
|
|
37
|
-
# Add an emoji reaction to a message. Platform support: - Telegram: Supports a subset of Unicode emoji reactions - WhatsApp: Supports any standard emoji (one reaction per message per sender) - All others: Returns 400 (not supported)
|
|
37
|
+
# Add an emoji reaction to a message. Platform support: - Telegram: Supports a subset of Unicode emoji reactions - WhatsApp: Supports any standard emoji (one reaction per message per sender) - Instagram and Facebook Messenger: Any standard emoji, subject to Meta's 24h messaging window - Slack: The emoji must have a Slack name (e.g. `:thumbsup:`); unnamed characters return 400 - All others: Returns 400 (not supported)
|
|
38
38
|
# @param conversation_id The conversation ID
|
|
39
39
|
# @param message_id The platform message ID to react to
|
|
40
40
|
# @param add_message_reaction_request
|
|
@@ -148,7 +148,7 @@ describe 'MessagesApi' do
|
|
|
148
148
|
|
|
149
149
|
# unit tests for remove_message_reaction
|
|
150
150
|
# Remove reaction
|
|
151
|
-
# Remove a reaction from a message. Platform support: - Telegram: Send empty reaction array to clear - WhatsApp: Send empty emoji to remove - All others: Returns 400 (not supported)
|
|
151
|
+
# Remove a reaction from a message. Platform support: - Telegram: Send empty reaction array to clear - WhatsApp: Send empty emoji to remove - Instagram and Facebook Messenger: Sends Meta's `unreact` action; the emoji does not need to be repeated - Slack: Removes the reaction we previously sent on that message - All others: Returns 400 (not supported)
|
|
152
152
|
# @param conversation_id The conversation ID
|
|
153
153
|
# @param message_id The platform message ID
|
|
154
154
|
# @param account_id Social account ID
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Zernio API
|
|
3
|
+
|
|
4
|
+
#API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.4
|
|
7
|
+
Contact: support@zernio.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.19.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
require 'date'
|
|
16
|
+
|
|
17
|
+
# Unit tests for Zernio::CommentAutomationTemplateElementButtonsInner
|
|
18
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
19
|
+
# Please update as you see appropriate
|
|
20
|
+
describe Zernio::CommentAutomationTemplateElementButtonsInner do
|
|
21
|
+
#let(:instance) { Zernio::CommentAutomationTemplateElementButtonsInner.new }
|
|
22
|
+
|
|
23
|
+
describe 'test an instance of CommentAutomationTemplateElementButtonsInner' do
|
|
24
|
+
it 'should create an instance of CommentAutomationTemplateElementButtonsInner' do
|
|
25
|
+
# uncomment below to test the instance creation
|
|
26
|
+
#expect(instance).to be_instance_of(Zernio::CommentAutomationTemplateElementButtonsInner)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe 'test attribute "type"' do
|
|
31
|
+
it 'should work' do
|
|
32
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
33
|
+
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["url", "postback"])
|
|
34
|
+
# validator.allowable_values.each do |value|
|
|
35
|
+
# expect { instance.type = value }.not_to raise_error
|
|
36
|
+
# end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
describe 'test attribute "title"' do
|
|
41
|
+
it 'should work' do
|
|
42
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
describe 'test attribute "url"' do
|
|
47
|
+
it 'should work' do
|
|
48
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
describe 'test attribute "payload"' do
|
|
53
|
+
it 'should work' do
|
|
54
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Zernio API
|
|
3
|
+
|
|
4
|
+
#API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.4
|
|
7
|
+
Contact: support@zernio.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.19.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
require 'date'
|
|
16
|
+
|
|
17
|
+
# Unit tests for Zernio::CommentAutomationTemplateElement
|
|
18
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
19
|
+
# Please update as you see appropriate
|
|
20
|
+
describe Zernio::CommentAutomationTemplateElement do
|
|
21
|
+
#let(:instance) { Zernio::CommentAutomationTemplateElement.new }
|
|
22
|
+
|
|
23
|
+
describe 'test an instance of CommentAutomationTemplateElement' do
|
|
24
|
+
it 'should create an instance of CommentAutomationTemplateElement' do
|
|
25
|
+
# uncomment below to test the instance creation
|
|
26
|
+
#expect(instance).to be_instance_of(Zernio::CommentAutomationTemplateElement)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe 'test attribute "title"' do
|
|
31
|
+
it 'should work' do
|
|
32
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
describe 'test attribute "subtitle"' do
|
|
37
|
+
it 'should work' do
|
|
38
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe 'test attribute "image_url"' do
|
|
43
|
+
it 'should work' do
|
|
44
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
describe 'test attribute "buttons"' do
|
|
49
|
+
it 'should work' do
|
|
50
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Zernio API
|
|
3
|
+
|
|
4
|
+
#API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.4
|
|
7
|
+
Contact: support@zernio.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.19.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
require 'date'
|
|
16
|
+
|
|
17
|
+
# Unit tests for Zernio::CommentAutomationTemplate
|
|
18
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
19
|
+
# Please update as you see appropriate
|
|
20
|
+
describe Zernio::CommentAutomationTemplate do
|
|
21
|
+
#let(:instance) { Zernio::CommentAutomationTemplate.new }
|
|
22
|
+
|
|
23
|
+
describe 'test an instance of CommentAutomationTemplate' do
|
|
24
|
+
it 'should create an instance of CommentAutomationTemplate' do
|
|
25
|
+
# uncomment below to test the instance creation
|
|
26
|
+
#expect(instance).to be_instance_of(Zernio::CommentAutomationTemplate)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe 'test attribute "type"' do
|
|
31
|
+
it 'should work' do
|
|
32
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
33
|
+
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["generic"])
|
|
34
|
+
# validator.allowable_values.each do |value|
|
|
35
|
+
# expect { instance.type = value }.not_to raise_error
|
|
36
|
+
# end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
describe 'test attribute "elements"' do
|
|
41
|
+
it 'should work' do
|
|
42
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end
|
|
@@ -101,6 +101,12 @@ describe Zernio::CreateCommentAutomation200ResponseAutomation do
|
|
|
101
101
|
end
|
|
102
102
|
end
|
|
103
103
|
|
|
104
|
+
describe 'test attribute "template"' do
|
|
105
|
+
it 'should work' do
|
|
106
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
|
|
104
110
|
describe 'test attribute "comment_reply"' do
|
|
105
111
|
it 'should work' do
|
|
106
112
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
@@ -113,6 +113,12 @@ describe Zernio::CreateCommentAutomationRequest do
|
|
|
113
113
|
end
|
|
114
114
|
end
|
|
115
115
|
|
|
116
|
+
describe 'test attribute "template"' do
|
|
117
|
+
it 'should work' do
|
|
118
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
116
122
|
describe 'test attribute "comment_reply"' do
|
|
117
123
|
it 'should work' do
|
|
118
124
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
@@ -119,6 +119,12 @@ describe Zernio::GetCommentAutomation200ResponseAutomation do
|
|
|
119
119
|
end
|
|
120
120
|
end
|
|
121
121
|
|
|
122
|
+
describe 'test attribute "template"' do
|
|
123
|
+
it 'should work' do
|
|
124
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
122
128
|
describe 'test attribute "comment_reply"' do
|
|
123
129
|
it 'should work' do
|
|
124
130
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|