late-sdk 0.0.871 → 0.0.873
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 +17 -8
- data/docs/AccountGroupsApi.md +1 -1
- data/docs/AccountWithFollowerStatsAllOfAccountStats.md +2 -2
- data/docs/AccountsApi.md +5 -5
- data/docs/Ad.md +4 -4
- data/docs/AdAccountsApi.md +9 -9
- data/docs/AdAudiencesApi.md +4 -4
- data/docs/AdCampaignsApi.md +46 -46
- data/docs/AdCreative.md +6 -6
- data/docs/AdCreativesApi.md +12 -12
- data/docs/AdDailyMetrics.md +4 -4
- data/docs/AdFunnelCounts.md +3 -3
- data/docs/AdInsightsApi.md +3 -3
- data/docs/AdKeyword.md +1 -1
- data/docs/AdLibraryApi.md +2 -2
- data/docs/AdMetrics.md +4 -4
- data/docs/AdTargetingApi.md +5 -5
- data/docs/AdTreeAdSet.md +1 -1
- data/docs/AdTreeCampaign.md +4 -4
- data/docs/AddAdKeywordsRequest.md +1 -1
- data/docs/AddMessageReactionRequest.md +1 -1
- data/docs/AdjustConversionsRequestAdjustmentsInner.md +4 -4
- data/docs/AdsTimelineResponseRowsInner.md +1 -1
- data/docs/AnalyticsApi.md +22 -22
- data/docs/AnalyticsDeltaEntry.md +1 -1
- data/docs/AnalyticsListResponse.md +1 -1
- data/docs/ApiKey.md +1 -1
- data/docs/AppealSmsRegistrationRequest.md +1 -1
- data/docs/AssignGoogleBusinessLocation200ResponseAccount.md +1 -1
- data/docs/AssignGoogleBusinessLocationRequest.md +2 -2
- data/docs/AttachCampaignAssetsRequest.md +2 -2
- data/docs/BillingSnapshotPlan.md +1 -1
- data/docs/BlockWhatsAppUsersRequest.md +1 -1
- data/docs/BookmarkPostRequest.md +1 -1
- data/docs/BoostPostRequest.md +5 -5
- data/docs/BusinessCenter.md +1 -1
- data/docs/CallRecord.md +2 -2
- data/docs/CampaignAnalyticsResponseAnalyticsDailyInner.md +4 -4
- data/docs/CheckPhoneNumberAvailability200Response.md +1 -1
- data/docs/CheckPhoneNumberPortability200ResponseResultsInner.md +2 -2
- data/docs/CommentsApi.md +11 -11
- data/docs/ConnectApi.md +102 -35
- data/docs/ConnectWhatsAppEmbeddedSignupRequest.md +4 -4
- data/docs/Conversation.md +34 -0
- data/docs/ConversionEvent.md +1 -1
- data/docs/ConversionsApi.md +6 -6
- data/docs/CreateAdCampaignRequest.md +1 -1
- data/docs/CreateAdCreativeRequest.md +1 -1
- data/docs/CreateApiKeyRequest.md +1 -1
- data/docs/CreateInboxConversation201ResponseData.md +2 -2
- data/docs/CreateInboxConversationRequest.md +3 -3
- data/docs/CreatePhoneNumberPortInRequestEndUser.md +2 -2
- data/docs/CreateStandaloneAdRequest.md +22 -22
- data/docs/CreateStandaloneAdRequestVideo.md +2 -2
- data/docs/CreateWhatsAppFlowRequest.md +1 -1
- data/docs/CreateWhatsAppGroupChatRequest.md +1 -1
- data/docs/CreateWhatsAppTemplateRequest.md +1 -1
- data/docs/CtwaAdRequestBodyVideo.md +1 -1
- data/docs/CustomConversion.md +1 -1
- data/docs/DeleteWhatsappBusinessUsernameRequest.md +1 -1
- data/docs/DiscordApi.md +9 -9
- data/docs/DiscordScheduledEvent.md +1 -1
- data/docs/EditInboxCommentRequest.md +1 -1
- data/docs/EditInboxMessageRequest.md +1 -1
- data/docs/EnableSmsOnNumber200Response.md +1 -1
- data/docs/ErrorResponse.md +1 -1
- data/docs/EstimateAdReachRequest.md +1 -1
- data/docs/ExternalPostWebhookPost.md +2 -2
- data/docs/FollowUserRequest.md +2 -2
- data/docs/GMBAttributesApi.md +3 -3
- data/docs/GMBFoodMenusApi.md +2 -2
- data/docs/GMBLocationDetailsApi.md +2 -2
- data/docs/GMBMediaApi.md +1 -1
- data/docs/GMBPlaceActionsApi.md +1 -1
- data/docs/GMBReviewsApi.md +4 -4
- data/docs/GetAdComments200ResponseMeta.md +4 -4
- data/docs/GetAdMedia200Response.md +1 -1
- data/docs/GetAdMedia200ResponseMediaInner.md +1 -1
- data/docs/GetAdsSearchTerms200ResponseDataInner.md +1 -1
- data/docs/GetGoogleBusinessLocationDetails200ResponseLocation.md +1 -1
- data/docs/GetInboxConversation200ResponseData.md +1 -1
- data/docs/GetInboxConversationMessages200ResponseMessagesInner.md +1 -1
- data/docs/GetInboxPostComments200ResponseCommentsInner.md +2 -2
- data/docs/GetInboxPostComments200ResponseCommentsInnerFrom.md +1 -1
- data/docs/GetInboxTopAccounts200ResponseAccountsInner.md +1 -1
- data/docs/GetLinkedInBidPricingRequest.md +1 -1
- data/docs/GetPhoneNumber200ResponsePhoneNumber.md +1 -1
- data/docs/GetPhoneNumberKycForm200ResponseReusable.md +1 -1
- data/docs/GetPhoneNumberKycForm200ResponseReusableOptionsInner.md +2 -2
- data/docs/GetPhoneNumberKycForm200ResponseReusableOptionsInnerDetailsInner.md +1 -1
- data/docs/GetPhoneNumberPortInRequirements200Response.md +1 -1
- data/docs/GetWhatsAppNumberKycForm200ResponseFieldsInner.md +1 -1
- data/docs/GetWhatsAppSdkConfig200Response.md +22 -0
- data/docs/GoogleBusinessPlatformData.md +1 -1
- data/docs/HideInboxCommentRequest.md +1 -1
- data/docs/InboxAnalyticsApi.md +5 -5
- data/docs/InboxWebhookAccount.md +3 -3
- data/docs/InboxWebhookConversation.md +1 -1
- data/docs/InboxWebhookMessageSender.md +3 -3
- data/docs/InstagramApi.md +1 -1
- data/docs/LeadGenApi.md +2 -2
- data/docs/LikeInboxCommentRequest.md +1 -1
- data/docs/LikePostRequest.md +1 -1
- data/docs/LinkedInMentionsApi.md +1 -1
- data/docs/LinkedInPlatformData.md +1 -1
- data/docs/ListAdAudiences200ResponseAudiencesInner.md +1 -1
- data/docs/ListCalls200ResponseCallsInner.md +2 -2
- data/docs/ListGoogleBusinessLocations200ResponseLocationsInner.md +1 -1
- data/docs/ListInboxComments200ResponseDataInner.md +3 -3
- data/docs/ListInboxConversations200ResponseDataInner.md +3 -1
- data/docs/ListInboxReviews200ResponseDataInner.md +6 -6
- data/docs/ListPhoneNumbers200Response.md +1 -1
- data/docs/ListPhoneNumbers200ResponseNumbersInner.md +3 -3
- data/docs/ListSipTrunks200Response.md +1 -1
- data/docs/ListWhatsAppAccountEvents200ResponseEventsInner.md +1 -1
- data/docs/LogsApi.md +2 -2
- data/docs/MediaItem.md +1 -1
- data/docs/MentionsApi.md +3 -3
- data/docs/MessagesApi.md +95 -23
- data/docs/MessagingAdsApi.md +1 -1
- data/docs/PhoneNumbersApi.md +14 -14
- data/docs/PinterestPlatformData.md +1 -1
- data/docs/PostAnalytics.md +1 -1
- data/docs/PostsApi.md +5 -5
- data/docs/ProfilesApi.md +1 -1
- data/docs/PurchasePhoneNumberRequest.md +1 -1
- data/docs/PurchaseWhatsAppPhoneNumberRequest.md +1 -1
- data/docs/ReachAndFrequencyApi.md +2 -2
- data/docs/RecyclingConfig.md +1 -1
- data/docs/ReplyToMentionRequest.md +1 -1
- data/docs/RetweetPostRequest.md +1 -1
- data/docs/ReviewWebhookReview.md +1 -1
- data/docs/ReviewWebhookReviewReviewer.md +1 -1
- data/docs/ReviewsApi.md +6 -6
- data/docs/SMSApi.md +11 -11
- data/docs/SavedTargetingAudience.md +1 -1
- data/docs/SelectGoogleBusinessLocation200ResponseAccount.md +1 -1
- data/docs/SelectGoogleBusinessLocationRequest.md +2 -2
- data/docs/SendDiscordDirectMessage200Response.md +1 -1
- data/docs/SendInboxMessage200ResponseData.md +1 -1
- data/docs/SendInboxMessageRequest.md +3 -3
- data/docs/SendPrivateReplyToCommentRequest.md +2 -2
- data/docs/SendTypingIndicatorRequest.md +1 -1
- data/docs/SendWhatsAppFlowMessageRequest.md +1 -1
- data/docs/SetCommentModerationRequest.md +1 -1
- data/docs/SetConversationThreadControl200Response.md +20 -0
- data/docs/SetConversationThreadControl200ResponseControl.md +18 -0
- data/docs/SetConversationThreadControlRequest.md +24 -0
- data/docs/SetWhatsAppFlowsEncryptionKeyRequest.md +1 -1
- data/docs/SetWhatsappBusinessUsernameRequest.md +1 -1
- data/docs/StartSmsRegistrationRequest.md +1 -1
- data/docs/StartSmsRegistrationRequestCampaign.md +1 -1
- data/docs/SubmitPhoneNumberKycRequest.md +1 -1
- data/docs/SubmitWhatsAppNumberKycRequest.md +1 -1
- data/docs/SyncExternalPosts200Response.md +1 -1
- data/docs/SyncExternalPostsRequest.md +1 -1
- data/docs/TrackingTag.md +2 -2
- data/docs/TrackingTagsApi.md +6 -6
- data/docs/TwitterEngagementApi.md +9 -9
- data/docs/UnblockWhatsAppUsersRequest.md +1 -1
- data/docs/UpdateAccountRequestXCapabilities.md +1 -1
- data/docs/UpdateAdAccountRequest.md +1 -1
- data/docs/UpdateAdSetRequestPlatformSpecificData.md +1 -1
- data/docs/UpdateConversionDestinationRequest.md +1 -1
- data/docs/UpdateGmbLocationRequest.md +1 -1
- data/docs/UpdateInboxConversationRequest.md +1 -1
- data/docs/UpdatePostMetadataRequest.md +1 -1
- data/docs/UpdateWhatsAppBusinessProfileRequest.md +1 -1
- data/docs/UpdateWhatsAppDisplayNameRequest.md +1 -1
- data/docs/UpdateWhatsAppFlowRequest.md +1 -1
- data/docs/UpdateWhatsAppTemplateByIdRequest.md +1 -1
- data/docs/UpdateWhatsAppTemplateRequest.md +1 -1
- data/docs/UpdateWorkflowRequest.md +1 -1
- data/docs/UploadWhatsAppFlowJsonRequest.md +1 -1
- data/docs/UploadWhatsAppProfilePhotoRequest1.md +1 -1
- data/docs/UploadedOrDerivedAudience.md +2 -2
- data/docs/UsageApi.md +12 -12
- data/docs/UsageMetering.md +1 -1
- data/docs/UsageStats.md +1 -1
- data/docs/UsageStatsSpend.md +1 -1
- data/docs/UsageStatsUsage.md +2 -2
- data/docs/UsersApi.md +1 -1
- data/docs/ValidateApi.md +3 -3
- data/docs/VerifyApi.md +1 -1
- data/docs/VoiceApi.md +2 -2
- data/docs/WebhookEventsApi.md +76 -7
- data/docs/WebhookPayloadAdStatusChangedError.md +3 -3
- data/docs/WebhookPayloadAdStatusChangedStatus.md +1 -1
- data/docs/WebhookPayloadCommentAccount.md +2 -2
- data/docs/WebhookPayloadCommentPost.md +1 -1
- data/docs/WebhookPayloadConversationControlChanged.md +30 -0
- data/docs/WebhookPayloadConversationControlChangedControl.md +22 -0
- data/docs/WebhookPayloadLeadAccount.md +2 -2
- data/docs/WebhookPayloadMessageMessageSender.md +3 -3
- data/docs/WebhookPayloadMessageMetadata.md +3 -1
- data/docs/WebhookPayloadMessageSentMessage.md +1 -1
- data/docs/WebhookPayloadReviewNewAccount.md +1 -1
- data/docs/WhatsAppApi.md +51 -51
- data/docs/WhatsAppCallingApi.md +3 -3
- data/docs/WhatsAppFlowsApi.md +18 -18
- data/docs/WhatsAppPhoneNumbersApi.md +12 -12
- data/docs/WhatsAppSandboxApi.md +2 -2
- data/docs/WhatsAppTemplatesApi.md +2 -2
- data/docs/WorkflowEdge.md +1 -1
- data/docs/WorkflowExecutionEvent.md +1 -1
- data/docs/WorkflowsApi.md +3 -3
- data/docs/XApiOperation.md +2 -2
- data/docs/XApiOperationTriggeredByInner.md +1 -1
- data/docs/XApiPricing.md +1 -1
- data/lib/zernio-sdk/api/account_groups_api.rb +2 -2
- data/lib/zernio-sdk/api/accounts_api.rb +10 -10
- data/lib/zernio-sdk/api/ad_accounts_api.rb +12 -12
- data/lib/zernio-sdk/api/ad_audiences_api.rb +6 -6
- data/lib/zernio-sdk/api/ad_campaigns_api.rb +60 -60
- data/lib/zernio-sdk/api/ad_creatives_api.rb +20 -20
- data/lib/zernio-sdk/api/ad_insights_api.rb +4 -4
- data/lib/zernio-sdk/api/ad_library_api.rb +2 -2
- data/lib/zernio-sdk/api/ad_targeting_api.rb +6 -6
- data/lib/zernio-sdk/api/analytics_api.rb +22 -22
- data/lib/zernio-sdk/api/comments_api.rb +20 -20
- data/lib/zernio-sdk/api/connect_api.rb +91 -34
- data/lib/zernio-sdk/api/conversions_api.rb +12 -12
- data/lib/zernio-sdk/api/discord_api.rb +18 -18
- data/lib/zernio-sdk/api/gmb_attributes_api.rb +4 -4
- data/lib/zernio-sdk/api/gmb_food_menus_api.rb +4 -4
- data/lib/zernio-sdk/api/gmb_location_details_api.rb +4 -4
- data/lib/zernio-sdk/api/gmb_media_api.rb +2 -2
- data/lib/zernio-sdk/api/gmb_place_actions_api.rb +2 -2
- data/lib/zernio-sdk/api/gmb_reviews_api.rb +8 -8
- data/lib/zernio-sdk/api/inbox_analytics_api.rb +10 -10
- data/lib/zernio-sdk/api/instagram_api.rb +2 -2
- data/lib/zernio-sdk/api/lead_gen_api.rb +4 -4
- data/lib/zernio-sdk/api/linked_in_mentions_api.rb +2 -2
- data/lib/zernio-sdk/api/logs_api.rb +2 -2
- data/lib/zernio-sdk/api/mentions_api.rb +4 -4
- data/lib/zernio-sdk/api/messages_api.rb +104 -30
- data/lib/zernio-sdk/api/messaging_ads_api.rb +2 -2
- data/lib/zernio-sdk/api/phone_numbers_api.rb +24 -24
- data/lib/zernio-sdk/api/posts_api.rb +8 -8
- data/lib/zernio-sdk/api/profiles_api.rb +2 -2
- data/lib/zernio-sdk/api/reach_and_frequency_api.rb +4 -4
- data/lib/zernio-sdk/api/reviews_api.rb +8 -8
- data/lib/zernio-sdk/api/sms_api.rb +20 -20
- data/lib/zernio-sdk/api/tracking_tags_api.rb +12 -12
- data/lib/zernio-sdk/api/twitter_engagement_api.rb +12 -12
- data/lib/zernio-sdk/api/usage_api.rb +14 -14
- data/lib/zernio-sdk/api/users_api.rb +2 -2
- data/lib/zernio-sdk/api/validate_api.rb +4 -4
- data/lib/zernio-sdk/api/verify_api.rb +2 -2
- data/lib/zernio-sdk/api/voice_api.rb +4 -4
- data/lib/zernio-sdk/api/webhook_events_api.rb +80 -14
- data/lib/zernio-sdk/api/whats_app_api.rb +54 -54
- data/lib/zernio-sdk/api/whats_app_calling_api.rb +4 -4
- data/lib/zernio-sdk/api/whats_app_flows_api.rb +20 -20
- data/lib/zernio-sdk/api/whats_app_phone_numbers_api.rb +20 -20
- data/lib/zernio-sdk/api/whats_app_sandbox_api.rb +4 -4
- data/lib/zernio-sdk/api/whats_app_templates_api.rb +2 -2
- data/lib/zernio-sdk/api/workflows_api.rb +6 -6
- data/lib/zernio-sdk/models/account_with_follower_stats_all_of_account_stats.rb +2 -2
- data/lib/zernio-sdk/models/ad.rb +4 -4
- data/lib/zernio-sdk/models/ad_creative.rb +6 -6
- data/lib/zernio-sdk/models/ad_daily_metrics.rb +4 -4
- data/lib/zernio-sdk/models/ad_engagement_counts.rb +1 -1
- data/lib/zernio-sdk/models/ad_funnel_counts.rb +4 -4
- data/lib/zernio-sdk/models/ad_keyword.rb +1 -1
- data/lib/zernio-sdk/models/ad_metrics.rb +4 -4
- data/lib/zernio-sdk/models/ad_tree_ad_set.rb +1 -1
- data/lib/zernio-sdk/models/ad_tree_campaign.rb +4 -4
- data/lib/zernio-sdk/models/add_ad_keywords_request.rb +1 -1
- data/lib/zernio-sdk/models/add_message_reaction_request.rb +1 -1
- data/lib/zernio-sdk/models/adjust_conversions_request_adjustments_inner.rb +4 -4
- data/lib/zernio-sdk/models/adjust_conversions_request_adjustments_inner_user.rb +1 -1
- data/lib/zernio-sdk/models/ads_timeline_response_rows_inner.rb +1 -1
- data/lib/zernio-sdk/models/analytics_delta_entry.rb +1 -1
- data/lib/zernio-sdk/models/analytics_list_response.rb +1 -1
- data/lib/zernio-sdk/models/api_key.rb +1 -1
- data/lib/zernio-sdk/models/appeal_sms_registration_request.rb +1 -1
- data/lib/zernio-sdk/models/assign_google_business_location200_response_account.rb +1 -1
- data/lib/zernio-sdk/models/assign_google_business_location_request.rb +2 -2
- data/lib/zernio-sdk/models/attach_campaign_assets_request.rb +2 -2
- data/lib/zernio-sdk/models/billing_snapshot.rb +1 -1
- data/lib/zernio-sdk/models/billing_snapshot_plan.rb +1 -1
- data/lib/zernio-sdk/models/block_whats_app_users_request.rb +1 -1
- data/lib/zernio-sdk/models/bookmark_post_request.rb +1 -1
- data/lib/zernio-sdk/models/boost_post_request.rb +5 -5
- data/lib/zernio-sdk/models/boost_post_request_platform_specific_data.rb +1 -1
- data/lib/zernio-sdk/models/business_center.rb +2 -2
- data/lib/zernio-sdk/models/call_record.rb +2 -2
- data/lib/zernio-sdk/models/campaign_analytics_response_analytics_daily_inner.rb +4 -4
- data/lib/zernio-sdk/models/check_phone_number_availability200_response.rb +1 -1
- data/lib/zernio-sdk/models/check_phone_number_portability200_response_results_inner.rb +2 -2
- data/lib/zernio-sdk/models/connect_whats_app_embedded_signup_request.rb +4 -3
- data/lib/zernio-sdk/models/conversation.rb +334 -0
- data/lib/zernio-sdk/models/conversion_destination.rb +1 -1
- data/lib/zernio-sdk/models/conversion_event.rb +1 -1
- data/lib/zernio-sdk/models/create_ad_campaign_request.rb +1 -1
- data/lib/zernio-sdk/models/create_ad_creative_request.rb +1 -1
- data/lib/zernio-sdk/models/create_api_key_request.rb +1 -1
- data/lib/zernio-sdk/models/create_inbox_conversation201_response_data.rb +2 -2
- data/lib/zernio-sdk/models/create_inbox_conversation_request.rb +3 -3
- data/lib/zernio-sdk/models/create_phone_number_port_in_request_end_user.rb +3 -3
- data/lib/zernio-sdk/models/create_standalone_ad201_response_one_of.rb +1 -1
- data/lib/zernio-sdk/models/create_standalone_ad201_response_one_of1.rb +1 -1
- data/lib/zernio-sdk/models/create_standalone_ad_request.rb +22 -22
- data/lib/zernio-sdk/models/create_standalone_ad_request_placement_assets.rb +1 -1
- data/lib/zernio-sdk/models/create_standalone_ad_request_placement_assets_rules_inner_placements.rb +1 -1
- data/lib/zernio-sdk/models/create_standalone_ad_request_placements.rb +1 -1
- data/lib/zernio-sdk/models/create_standalone_ad_request_platform_specific_data.rb +1 -1
- data/lib/zernio-sdk/models/create_standalone_ad_request_video.rb +3 -3
- data/lib/zernio-sdk/models/create_whats_app_flow_request.rb +1 -1
- data/lib/zernio-sdk/models/create_whats_app_group_chat_request.rb +1 -1
- data/lib/zernio-sdk/models/create_whats_app_template_request.rb +1 -1
- data/lib/zernio-sdk/models/ctwa_ad_request_body_video.rb +1 -1
- data/lib/zernio-sdk/models/custom_conversion.rb +1 -1
- data/lib/zernio-sdk/models/delete_whatsapp_business_username_request.rb +1 -1
- data/lib/zernio-sdk/models/discord_scheduled_event.rb +2 -2
- data/lib/zernio-sdk/models/edit_inbox_comment_request.rb +1 -1
- data/lib/zernio-sdk/models/edit_inbox_message_request.rb +1 -1
- data/lib/zernio-sdk/models/enable_sms_on_number200_response.rb +1 -1
- data/lib/zernio-sdk/models/error_response.rb +1 -1
- data/lib/zernio-sdk/models/estimate_ad_reach_request.rb +1 -1
- data/lib/zernio-sdk/models/external_post_webhook_post.rb +2 -2
- data/lib/zernio-sdk/models/follow_user_request.rb +2 -2
- data/lib/zernio-sdk/models/geo_restriction.rb +1 -1
- data/lib/zernio-sdk/models/get_ad_comments200_response_meta.rb +4 -4
- data/lib/zernio-sdk/models/get_ad_media200_response.rb +1 -1
- data/lib/zernio-sdk/models/get_ad_media200_response_media_inner.rb +1 -1
- data/lib/zernio-sdk/models/get_ads_search_terms200_response_data_inner.rb +1 -1
- data/lib/zernio-sdk/models/get_google_business_location_details200_response_location.rb +1 -1
- data/lib/zernio-sdk/models/get_inbox_conversation200_response_data.rb +1 -1
- data/lib/zernio-sdk/models/get_inbox_conversation_messages200_response_messages_inner.rb +1 -1
- data/lib/zernio-sdk/models/get_inbox_post_comments200_response_comments_inner.rb +2 -2
- data/lib/zernio-sdk/models/get_inbox_post_comments200_response_comments_inner_from.rb +1 -1
- data/lib/zernio-sdk/models/get_inbox_post_comments200_response_meta_ad_comments.rb +1 -1
- data/lib/zernio-sdk/models/get_inbox_top_accounts200_response_accounts_inner.rb +1 -1
- data/lib/zernio-sdk/models/get_linked_in_bid_pricing_request.rb +1 -1
- data/lib/zernio-sdk/models/get_phone_number200_response_phone_number.rb +1 -1
- data/lib/zernio-sdk/models/get_phone_number_kyc_form200_response_reusable.rb +1 -1
- data/lib/zernio-sdk/models/get_phone_number_kyc_form200_response_reusable_options_inner.rb +2 -2
- data/lib/zernio-sdk/models/get_phone_number_kyc_form200_response_reusable_options_inner_details_inner.rb +1 -1
- data/lib/zernio-sdk/models/get_phone_number_port_in_requirements200_response.rb +1 -1
- data/lib/zernio-sdk/models/get_whats_app_number_kyc_form200_response_fields_inner.rb +1 -1
- data/lib/zernio-sdk/models/get_whats_app_sdk_config200_response.rb +219 -0
- data/lib/zernio-sdk/models/google_business_platform_data.rb +2 -2
- data/lib/zernio-sdk/models/hide_inbox_comment_request.rb +1 -1
- data/lib/zernio-sdk/models/inbox_webhook_account.rb +3 -3
- data/lib/zernio-sdk/models/inbox_webhook_conversation.rb +1 -1
- data/lib/zernio-sdk/models/inbox_webhook_message_sender.rb +3 -3
- data/lib/zernio-sdk/models/like_inbox_comment_request.rb +1 -1
- data/lib/zernio-sdk/models/like_post_request.rb +1 -1
- data/lib/zernio-sdk/models/linked_in_ads_platform_data_thought_leader.rb +1 -1
- data/lib/zernio-sdk/models/linked_in_platform_data.rb +1 -1
- data/lib/zernio-sdk/models/list_ad_audiences200_response_audiences_inner.rb +1 -1
- data/lib/zernio-sdk/models/list_calls200_response_calls_inner.rb +2 -2
- data/lib/zernio-sdk/models/list_discord_pinned_messages200_response_data_inner.rb +1 -1
- data/lib/zernio-sdk/models/list_google_business_locations200_response_locations_inner.rb +1 -1
- data/lib/zernio-sdk/models/list_inbox_comments200_response_data_inner.rb +3 -3
- data/lib/zernio-sdk/models/list_inbox_conversations200_response_data_inner.rb +24 -2
- data/lib/zernio-sdk/models/list_inbox_reviews200_response_data_inner.rb +6 -6
- data/lib/zernio-sdk/models/list_phone_numbers200_response.rb +1 -1
- data/lib/zernio-sdk/models/list_phone_numbers200_response_numbers_inner.rb +3 -3
- data/lib/zernio-sdk/models/list_sip_trunks200_response.rb +1 -1
- data/lib/zernio-sdk/models/list_sms_sender_ids200_response_budget.rb +1 -1
- data/lib/zernio-sdk/models/list_whats_app_account_events200_response_events_inner.rb +1 -1
- data/lib/zernio-sdk/models/media_item.rb +1 -1
- data/lib/zernio-sdk/models/pinterest_platform_data.rb +1 -1
- data/lib/zernio-sdk/models/post_analytics.rb +1 -1
- data/lib/zernio-sdk/models/purchase_phone_number_request.rb +1 -1
- data/lib/zernio-sdk/models/purchase_whats_app_phone_number_request.rb +1 -1
- data/lib/zernio-sdk/models/recycling_config.rb +2 -2
- data/lib/zernio-sdk/models/reply_to_mention_request.rb +1 -1
- data/lib/zernio-sdk/models/retweet_post_request.rb +1 -1
- data/lib/zernio-sdk/models/review_webhook_review.rb +1 -1
- data/lib/zernio-sdk/models/review_webhook_review_reviewer.rb +1 -1
- data/lib/zernio-sdk/models/saved_targeting_audience.rb +1 -1
- data/lib/zernio-sdk/models/select_google_business_location200_response_account.rb +1 -1
- data/lib/zernio-sdk/models/select_google_business_location_request.rb +2 -2
- data/lib/zernio-sdk/models/send_discord_direct_message200_response.rb +1 -1
- data/lib/zernio-sdk/models/send_inbox_message200_response_data.rb +1 -1
- data/lib/zernio-sdk/models/send_inbox_message_request.rb +3 -3
- data/lib/zernio-sdk/models/send_private_reply_to_comment_request.rb +2 -2
- data/lib/zernio-sdk/models/send_typing_indicator_request.rb +1 -1
- data/lib/zernio-sdk/models/send_whats_app_flow_message_request.rb +1 -1
- data/lib/zernio-sdk/models/set_comment_moderation_request.rb +1 -1
- data/lib/zernio-sdk/models/set_conversation_thread_control200_response.rb +156 -0
- data/lib/zernio-sdk/models/set_conversation_thread_control200_response_control.rb +181 -0
- data/lib/zernio-sdk/models/set_conversation_thread_control_request.rb +266 -0
- data/lib/zernio-sdk/models/set_whats_app_flows_encryption_key_request.rb +1 -1
- data/lib/zernio-sdk/models/set_whatsapp_business_username_request.rb +1 -1
- data/lib/zernio-sdk/models/slack_platform_data.rb +1 -1
- data/lib/zernio-sdk/models/start_sms_registration_request.rb +1 -1
- data/lib/zernio-sdk/models/start_sms_registration_request_campaign.rb +2 -2
- data/lib/zernio-sdk/models/submit_phone_number_kyc_request.rb +1 -1
- data/lib/zernio-sdk/models/submit_whats_app_number_kyc_request.rb +1 -1
- data/lib/zernio-sdk/models/sync_external_posts200_response.rb +1 -1
- data/lib/zernio-sdk/models/sync_external_posts_request.rb +1 -1
- data/lib/zernio-sdk/models/tracking_tag.rb +3 -3
- data/lib/zernio-sdk/models/unblock_whats_app_users_request.rb +1 -1
- data/lib/zernio-sdk/models/update_account_request_x_capabilities.rb +2 -2
- data/lib/zernio-sdk/models/update_ad_account_request.rb +1 -1
- data/lib/zernio-sdk/models/update_ad_request_creative.rb +1 -1
- data/lib/zernio-sdk/models/update_ad_set_request_platform_specific_data.rb +1 -1
- data/lib/zernio-sdk/models/update_ad_tracking_tags_request_creative.rb +1 -1
- data/lib/zernio-sdk/models/update_conversion_destination_request.rb +1 -1
- data/lib/zernio-sdk/models/update_gmb_location_request.rb +1 -1
- data/lib/zernio-sdk/models/update_inbox_conversation_request.rb +1 -1
- data/lib/zernio-sdk/models/update_post_metadata_request.rb +1 -1
- data/lib/zernio-sdk/models/update_whats_app_business_profile_request.rb +1 -1
- data/lib/zernio-sdk/models/update_whats_app_display_name_request.rb +1 -1
- data/lib/zernio-sdk/models/update_whats_app_flow_request.rb +1 -1
- data/lib/zernio-sdk/models/update_whats_app_template_by_id_request.rb +1 -1
- data/lib/zernio-sdk/models/update_whats_app_template_request.rb +1 -1
- data/lib/zernio-sdk/models/update_workflow_request.rb +1 -1
- data/lib/zernio-sdk/models/upload_whats_app_flow_json_request.rb +1 -1
- data/lib/zernio-sdk/models/upload_whats_app_profile_photo_request1.rb +1 -1
- data/lib/zernio-sdk/models/uploaded_or_derived_audience.rb +2 -2
- data/lib/zernio-sdk/models/usage_metering.rb +2 -2
- data/lib/zernio-sdk/models/usage_metering_peaks.rb +1 -1
- data/lib/zernio-sdk/models/usage_stats.rb +2 -2
- data/lib/zernio-sdk/models/usage_stats_limits.rb +1 -1
- data/lib/zernio-sdk/models/usage_stats_spend.rb +2 -2
- data/lib/zernio-sdk/models/usage_stats_usage.rb +3 -3
- data/lib/zernio-sdk/models/usage_stats_usage_x_api_calls.rb +1 -1
- data/lib/zernio-sdk/models/webhook_payload_ad_status_changed_error.rb +3 -3
- data/lib/zernio-sdk/models/webhook_payload_ad_status_changed_status.rb +1 -1
- data/lib/zernio-sdk/models/webhook_payload_analytics_synced.rb +1 -1
- data/lib/zernio-sdk/models/webhook_payload_analytics_synced_sync.rb +1 -1
- data/lib/zernio-sdk/models/webhook_payload_comment.rb +1 -1
- data/lib/zernio-sdk/models/webhook_payload_comment_account.rb +2 -2
- data/lib/zernio-sdk/models/webhook_payload_comment_post.rb +1 -1
- data/lib/zernio-sdk/models/webhook_payload_conversation_control_changed.rb +347 -0
- data/lib/zernio-sdk/models/webhook_payload_conversation_control_changed_control.rb +224 -0
- data/lib/zernio-sdk/models/webhook_payload_conversation_started.rb +1 -1
- data/lib/zernio-sdk/models/webhook_payload_lead_account.rb +2 -2
- data/lib/zernio-sdk/models/webhook_payload_message_message_sender.rb +3 -3
- data/lib/zernio-sdk/models/webhook_payload_message_metadata.rb +13 -3
- data/lib/zernio-sdk/models/webhook_payload_message_sent_message.rb +3 -3
- data/lib/zernio-sdk/models/webhook_payload_post_platform.rb +1 -1
- data/lib/zernio-sdk/models/webhook_payload_post_platform_account.rb +1 -1
- data/lib/zernio-sdk/models/webhook_payload_post_platform_platform.rb +1 -1
- data/lib/zernio-sdk/models/webhook_payload_review_new_account.rb +1 -1
- data/lib/zernio-sdk/models/workflow_edge.rb +1 -1
- data/lib/zernio-sdk/models/workflow_execution_event.rb +1 -1
- data/lib/zernio-sdk/models/x_api_operation.rb +2 -2
- data/lib/zernio-sdk/models/x_api_operation_triggered_by_inner.rb +1 -1
- data/lib/zernio-sdk/models/x_api_pricing.rb +2 -2
- data/lib/zernio-sdk/version.rb +1 -1
- data/lib/zernio-sdk.rb +7 -0
- data/openapi.yaml +1073 -853
- data/spec/api/account_groups_api_spec.rb +1 -1
- data/spec/api/accounts_api_spec.rb +5 -5
- data/spec/api/ad_accounts_api_spec.rb +6 -6
- data/spec/api/ad_audiences_api_spec.rb +3 -3
- data/spec/api/ad_campaigns_api_spec.rb +30 -30
- data/spec/api/ad_creatives_api_spec.rb +10 -10
- data/spec/api/ad_insights_api_spec.rb +2 -2
- data/spec/api/ad_library_api_spec.rb +1 -1
- data/spec/api/ad_targeting_api_spec.rb +3 -3
- data/spec/api/analytics_api_spec.rb +11 -11
- data/spec/api/comments_api_spec.rb +10 -10
- data/spec/api/connect_api_spec.rb +28 -17
- data/spec/api/conversions_api_spec.rb +6 -6
- data/spec/api/discord_api_spec.rb +9 -9
- data/spec/api/gmb_attributes_api_spec.rb +2 -2
- data/spec/api/gmb_food_menus_api_spec.rb +2 -2
- data/spec/api/gmb_location_details_api_spec.rb +2 -2
- data/spec/api/gmb_media_api_spec.rb +1 -1
- data/spec/api/gmb_place_actions_api_spec.rb +1 -1
- data/spec/api/gmb_reviews_api_spec.rb +4 -4
- data/spec/api/inbox_analytics_api_spec.rb +5 -5
- data/spec/api/instagram_api_spec.rb +1 -1
- data/spec/api/lead_gen_api_spec.rb +2 -2
- data/spec/api/linked_in_mentions_api_spec.rb +1 -1
- data/spec/api/logs_api_spec.rb +1 -1
- data/spec/api/mentions_api_spec.rb +2 -2
- data/spec/api/messages_api_spec.rb +28 -15
- data/spec/api/messaging_ads_api_spec.rb +1 -1
- data/spec/api/phone_numbers_api_spec.rb +12 -12
- data/spec/api/posts_api_spec.rb +4 -4
- data/spec/api/profiles_api_spec.rb +1 -1
- data/spec/api/reach_and_frequency_api_spec.rb +2 -2
- data/spec/api/reviews_api_spec.rb +4 -4
- data/spec/api/sms_api_spec.rb +10 -10
- data/spec/api/tracking_tags_api_spec.rb +6 -6
- data/spec/api/twitter_engagement_api_spec.rb +6 -6
- data/spec/api/usage_api_spec.rb +7 -7
- data/spec/api/users_api_spec.rb +1 -1
- data/spec/api/validate_api_spec.rb +2 -2
- data/spec/api/verify_api_spec.rb +1 -1
- data/spec/api/voice_api_spec.rb +2 -2
- data/spec/api/whats_app_api_spec.rb +27 -27
- data/spec/api/whats_app_calling_api_spec.rb +2 -2
- data/spec/api/whats_app_flows_api_spec.rb +10 -10
- data/spec/api/whats_app_phone_numbers_api_spec.rb +10 -10
- data/spec/api/whats_app_sandbox_api_spec.rb +2 -2
- data/spec/api/whats_app_templates_api_spec.rb +1 -1
- data/spec/api/workflows_api_spec.rb +3 -3
- data/spec/models/conversation_spec.rb +92 -0
- data/spec/models/create_webhook_settings_request_spec.rb +1 -1
- data/spec/models/get_whats_app_sdk_config200_response_spec.rb +48 -0
- data/spec/models/list_inbox_conversations200_response_data_inner_spec.rb +10 -0
- data/spec/models/set_conversation_thread_control200_response_control_spec.rb +40 -0
- data/spec/models/set_conversation_thread_control200_response_spec.rb +42 -0
- data/spec/models/set_conversation_thread_control_request_spec.rb +62 -0
- data/spec/models/update_webhook_settings_request_spec.rb +1 -1
- data/spec/models/webhook_payload_conversation_control_changed_control_spec.rb +56 -0
- data/spec/models/webhook_payload_conversation_control_changed_spec.rb +76 -0
- data/spec/models/webhook_payload_message_metadata_spec.rb +6 -0
- data/spec/models/webhook_payload_message_sent_message_spec.rb +1 -1
- data/spec/models/webhook_spec.rb +1 -1
- data/zernio-sdk-0.0.873.gem +0 -0
- metadata +30 -2
- data/zernio-sdk-0.0.871.gem +0 -0
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **_id** | **String** | | [optional] |
|
|
8
|
-
| **account_id** | **String** | Owning
|
|
8
|
+
| **account_id** | **String** | Owning account. The unified /v1/calls/{id} detail + recording endpoints work for any channel; the channel-specific endpoints remain for account-scoped access. | [optional] |
|
|
9
9
|
| **conversation_id** | **String** | Inbox conversation with the counterparty, when one exists. | [optional] |
|
|
10
10
|
| **contact_id** | **String** | CRM Contact for the counterparty, when resolved. | [optional] |
|
|
11
11
|
| **channel** | **String** | | [optional] |
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
| **transferred_at** | **Time** | When the call was blind-transferred (POST /v1/voice/calls/{id}/transfer). | [optional] |
|
|
29
29
|
| **duration_seconds** | **Integer** | | [optional] |
|
|
30
30
|
| **end_reason** | **String** | | [optional] |
|
|
31
|
-
| **hangup_cause** | **String** | Raw carrier hangup cause behind endReason (e.g. normal_clearing, not_found, time_limit)
|
|
31
|
+
| **hangup_cause** | **String** | Raw carrier hangup cause behind endReason (e.g. normal_clearing, not_found, time_limit). The actual motive when endReason is a coarse bucket. | [optional] |
|
|
32
32
|
| **sip_hangup_cause** | **String** | SIP response code that ended the call, when SIP-signalled (e.g. '403', '488'). The real failure reason for SIP legs. | [optional] |
|
|
33
33
|
| **call_errors** | [**Array<CallRecordCallErrorsInner>**](CallRecordCallErrorsInner.md) | Per-call failure log (dial failed, bridge failed, recording error). | [optional] |
|
|
34
34
|
| **recording_url** | **String** | May be expired. Resolve a fresh playable URL via GET /v1/calls/{id}/recording (any channel). | [optional] |
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **id** | **String** | Location ID | [optional] |
|
|
8
8
|
| **name** | **String** | Business name | [optional] |
|
|
9
|
-
| **account_id** | **String** | Google Business Account ID | [optional] |
|
|
9
|
+
| **account_id** | **String** | Google Business Profile Account ID | [optional] |
|
|
10
10
|
| **account_name** | **String** | Account name | [optional] |
|
|
11
11
|
| **address** | **String** | Business address | [optional] |
|
|
12
12
|
| **category** | **String** | Business category | [optional] |
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
| **platform** | **String** | | [optional] |
|
|
9
9
|
| **account_id** | **String** | | [optional] |
|
|
10
10
|
| **account_username** | **String** | | [optional] |
|
|
11
|
-
| **content** | **String** | The post text/caption. On ad rows (isAd: true) this is the AD NAME, not the underlying post's caption
|
|
11
|
+
| **content** | **String** | The post text/caption. On ad rows (isAd: true) this is the AD NAME, not the underlying post's caption. The creative text isn't exposed here. | [optional] |
|
|
12
12
|
| **picture** | **String** | Post media thumbnail. On ad rows this is the ad creative thumbnail. | [optional] |
|
|
13
13
|
| **permalink** | **String** | Public URL of the post. On ad rows: the Facebook dark-post URL (facebook placement) or the IG media permalink (instagram placement); may be null when unknown. | [optional] |
|
|
14
14
|
| **created_time** | **Time** | | [optional] |
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
| **cid** | **String** | Bluesky content identifier | [optional] |
|
|
18
18
|
| **subreddit** | **String** | Reddit subreddit name | [optional] |
|
|
19
19
|
| **is_ad** | **Boolean** | True when this row is an ad (boosted/dark post). `platform` is then the placement (facebook = the Page dark post / instagram = the IG media), `id` is `{adId}:{placement}`, and the thread is at GET /v1/ads/{adId}/comments?placement={placement}. | [optional] |
|
|
20
|
-
| **ad_id** | **String** | Internal Zernio ad id
|
|
21
|
-
| **placement** | **String** | Which side of the ad this row's comments are on
|
|
20
|
+
| **ad_id** | **String** | Internal Zernio ad id, only on ad rows. | [optional] |
|
|
21
|
+
| **placement** | **String** | Which side of the ad this row's comments are on, only on ad rows. | [optional] |
|
|
22
22
|
|
|
23
23
|
## Example
|
|
24
24
|
|
|
@@ -11,11 +11,12 @@
|
|
|
11
11
|
| **participant_id** | **String** | | [optional] |
|
|
12
12
|
| **participant_name** | **String** | | [optional] |
|
|
13
13
|
| **participant_picture** | **String** | | [optional] |
|
|
14
|
-
| **participant_verified_type** | **String** | X
|
|
14
|
+
| **participant_verified_type** | **String** | X verified badge type. Only present for X conversations. | [optional] |
|
|
15
15
|
| **last_message** | **String** | | [optional] |
|
|
16
16
|
| **updated_time** | **Time** | | [optional] |
|
|
17
17
|
| **status** | **String** | | [optional] |
|
|
18
18
|
| **unread_count** | **Integer** | Number of unread messages | [optional] |
|
|
19
|
+
| **thread_control** | **String** | WhatsApp only, present once Meta Business Agent has touched the thread. ai_agent: the agent answers and new inbound arrive flagged metadata.standby; app: you hold control; other: another partner app does. Change it with POST /v1/inbox/conversations/{conversationId}/thread-control. | [optional] |
|
|
19
20
|
| **url** | **String** | Direct link to open the conversation on the platform (if available) | [optional] |
|
|
20
21
|
| **instagram_profile** | [**ListInboxConversations200ResponseDataInnerInstagramProfile**](ListInboxConversations200ResponseDataInnerInstagramProfile.md) | | [optional] |
|
|
21
22
|
| **metadata** | [**ListInboxConversations200ResponseDataInnerMetadata**](ListInboxConversations200ResponseDataInnerMetadata.md) | | [optional] |
|
|
@@ -38,6 +39,7 @@ instance = Zernio::ListInboxConversations200ResponseDataInner.new(
|
|
|
38
39
|
updated_time: null,
|
|
39
40
|
status: null,
|
|
40
41
|
unread_count: null,
|
|
42
|
+
thread_control: null,
|
|
41
43
|
url: null,
|
|
42
44
|
instagram_profile: null,
|
|
43
45
|
metadata: null
|
|
@@ -4,20 +4,20 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **id** | **String** | Review identifier. For Google Business this is the full review resource name (accounts/{accountId}/locations/{locationId}/reviews/{reviewId}), so it also encodes the location. | [optional] |
|
|
7
|
+
| **id** | **String** | Review identifier. For Google Business Profile this is the full review resource name (accounts/{accountId}/locations/{locationId}/reviews/{reviewId}), so it also encodes the location. | [optional] |
|
|
8
8
|
| **platform** | **String** | | [optional] |
|
|
9
9
|
| **account_id** | **String** | | [optional] |
|
|
10
10
|
| **account_username** | **String** | | [optional] |
|
|
11
|
-
| **location_id** | **String** | Bare
|
|
12
|
-
| **location_name** | **String** | Human-readable
|
|
11
|
+
| **location_id** | **String** | Bare Google Business Profile location id the review belongs to. Google Business Profile only; absent for other platforms. | [optional] |
|
|
12
|
+
| **location_name** | **String** | Human-readable Google Business Profile location display name. Google Business Profile only; absent for other platforms. | [optional] |
|
|
13
13
|
| **reviewer** | [**ListInboxReviews200ResponseDataInnerReviewer**](ListInboxReviews200ResponseDataInnerReviewer.md) | | [optional] |
|
|
14
14
|
| **rating** | **Integer** | | [optional] |
|
|
15
15
|
| **text** | **String** | | [optional] |
|
|
16
16
|
| **created** | **Time** | | [optional] |
|
|
17
17
|
| **has_reply** | **Boolean** | | [optional] |
|
|
18
|
-
| **has_photos** | **Boolean** | Whether the review has at least one photo. Google Business only; always false for other platforms. | [optional] |
|
|
19
|
-
| **photo_count** | **Integer** | Number of photos attached to the review (photos only; videos are not counted). Google Business only; 0 for other platforms. | [optional] |
|
|
20
|
-
| **photos** | [**Array<ListInboxReviews200ResponseDataInnerPhotosInner>**](ListInboxReviews200ResponseDataInnerPhotosInner.md) | Photos attached to the review. Google Business only; always an empty array for other platforms. | [optional] |
|
|
18
|
+
| **has_photos** | **Boolean** | Whether the review has at least one photo. Google Business Profile only; always false for other platforms. | [optional] |
|
|
19
|
+
| **photo_count** | **Integer** | Number of photos attached to the review (photos only; videos are not counted). Google Business Profile only; 0 for other platforms. | [optional] |
|
|
20
|
+
| **photos** | [**Array<ListInboxReviews200ResponseDataInnerPhotosInner>**](ListInboxReviews200ResponseDataInnerPhotosInner.md) | Photos attached to the review. Google Business Profile only; always an empty array for other platforms. | [optional] |
|
|
21
21
|
| **reply** | [**ListInboxReviews200ResponseDataInnerReply**](ListInboxReviews200ResponseDataInnerReply.md) | | [optional] |
|
|
22
22
|
| **review_url** | **String** | | [optional] |
|
|
23
23
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **numbers** | [**Array<ListPhoneNumbers200ResponseNumbersInner>**](ListPhoneNumbers200ResponseNumbersInner.md) | | [optional] |
|
|
8
|
-
| **connected** | [**Array<ListPhoneNumbers200ResponseConnectedInner>**](ListPhoneNumbers200ResponseConnectedInner.md) | Connected (bring-your-own) WhatsApp numbers
|
|
8
|
+
| **connected** | [**Array<ListPhoneNumbers200ResponseConnectedInner>**](ListPhoneNumbers200ResponseConnectedInner.md) | Connected (bring-your-own) WhatsApp numbers: your own WABA numbers linked via Embedded Signup. Not provisioned or billed by Zernio, so they are not in `numbers`; `accountId` is the social-account id used by the messaging and inbox endpoints. Included only on the default and `status=active` views. | [optional] |
|
|
9
9
|
| **sandbox** | [**ListPhoneNumbers200ResponseSandbox**](ListPhoneNumbers200ResponseSandbox.md) | | [optional] |
|
|
10
10
|
|
|
11
11
|
## Example
|
|
@@ -8,16 +8,16 @@
|
|
|
8
8
|
| **phone_number** | **String** | | [optional] |
|
|
9
9
|
| **country** | **String** | | [optional] |
|
|
10
10
|
| **status** | **String** | | [optional] |
|
|
11
|
-
| **registrant_name** | **String** | For regulated numbers, who it's registered for (company or person)
|
|
11
|
+
| **registrant_name** | **String** | For regulated numbers, who it's registered for (company or person), set from the submitted KYC. | [optional] |
|
|
12
12
|
| **telnyx_order_id** | **String** | Present once the number order has been placed (i.e. the requirement group was approved). Absent while still in identity review. | [optional] |
|
|
13
13
|
| **monthly_cents** | **Integer** | What this number bills each month, in cents. Stamped when the number was bought, so an existing number keeps its price when the rate card changes. | [optional] |
|
|
14
|
-
| **hosted_by_zernio** | **Boolean** | False for numbers you brought yourself (connected via Meta embedded signup)
|
|
14
|
+
| **hosted_by_zernio** | **Boolean** | False for numbers you brought yourself (connected via Meta embedded signup). They live on your own carrier, so SMS/Calls can't be enabled on them. | [optional] |
|
|
15
15
|
| **sip_trunk_id** | **String** | SIP trunk the number is attached to; null when not trunked. While attached, enabling Calls or WhatsApp calling, requesting WhatsApp verification, and releasing the number all return 409. | [optional] |
|
|
16
16
|
| **profile_id** | **Object** | | [optional] |
|
|
17
17
|
| **provisioned_at** | **Time** | | [optional] |
|
|
18
18
|
| **meta_preverified_id** | **String** | | [optional] |
|
|
19
19
|
| **meta_verification_status** | **String** | | [optional] |
|
|
20
|
-
| **onfido_verification_url** | **String** | For regulated (Tier 3/4) numbers with an Onfido ID-verification step
|
|
20
|
+
| **onfido_verification_url** | **String** | For regulated (Tier 3/4) numbers with an Onfido ID-verification step: the link to forward to the end user. Set once the order is placed; null otherwise. Poll this field after submitting KYC. | [optional] |
|
|
21
21
|
| **end_user_first_name** | **String** | | [optional] |
|
|
22
22
|
| **end_user_last_name** | **String** | | [optional] |
|
|
23
23
|
| **regulatory_decline_reason** | **String** | Reviewer rejection reason when status is regulatory_declined. | [optional] |
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **trunks** | [**Array<ListSipTrunks200ResponseTrunksInner>**](ListSipTrunks200ResponseTrunksInner.md) | | [optional] |
|
|
8
|
-
| **enabled** | **Boolean** | Whether this
|
|
8
|
+
| **enabled** | **Boolean** | Whether this team can create SIP trunks. Managing existing trunks always works. | [optional] |
|
|
9
9
|
|
|
10
10
|
## Example
|
|
11
11
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **id** | **String** | | [optional] |
|
|
8
|
-
| **account_id** | **String** | WhatsApp
|
|
8
|
+
| **account_id** | **String** | WhatsApp account the event belongs to | [optional] |
|
|
9
9
|
| **type** | **String** | Event kind, e.g. template_approved, template_rejected, account_restricted, account_disconnected | [optional] |
|
|
10
10
|
| **severity** | **String** | | [optional] |
|
|
11
11
|
| **title** | **String** | | [optional] |
|
data/docs/LogsApi.md
CHANGED
|
@@ -38,7 +38,7 @@ opts = {
|
|
|
38
38
|
skip: 56, # Integer | Number of logs to skip (for pagination)
|
|
39
39
|
account_id: 'account_id_example', # String | Filter by connected account ID
|
|
40
40
|
event: 'event_example', # String | Filter webhook logs by event (e.g. post.published, message.received)
|
|
41
|
-
request_id: 'request_id_example', # String | Correlation ID
|
|
41
|
+
request_id: 'request_id_example', # String | Correlation ID. Returns every log spawned by a single API request
|
|
42
42
|
from: Time.parse('2013-10-20T19:20:30+01:00'), # Time | Precise start instant (ISO 8601); narrows within the day range
|
|
43
43
|
to: Time.parse('2013-10-20T19:20:30+01:00'), # Time | Precise end instant (ISO 8601)
|
|
44
44
|
status_code: 56, # Integer | Filter by exact HTTP status code (api_request logs)
|
|
@@ -87,7 +87,7 @@ end
|
|
|
87
87
|
| **skip** | **Integer** | Number of logs to skip (for pagination) | [optional][default to 0] |
|
|
88
88
|
| **account_id** | **String** | Filter by connected account ID | [optional] |
|
|
89
89
|
| **event** | **String** | Filter webhook logs by event (e.g. post.published, message.received) | [optional] |
|
|
90
|
-
| **request_id** | **String** | Correlation ID
|
|
90
|
+
| **request_id** | **String** | Correlation ID. Returns every log spawned by a single API request | [optional] |
|
|
91
91
|
| **from** | **Time** | Precise start instant (ISO 8601); narrows within the day range | [optional] |
|
|
92
92
|
| **to** | **Time** | Precise end instant (ISO 8601) | [optional] |
|
|
93
93
|
| **status_code** | **Integer** | Filter by exact HTTP status code (api_request logs) | [optional] |
|
data/docs/MediaItem.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
| **type** | **String** | | [optional] |
|
|
8
8
|
| **url** | **String** | | [optional] |
|
|
9
9
|
| **title** | **String** | Optional title for the media item. Used as the document title for LinkedIn PDF/carousel posts. If omitted, falls back to the post title, then the filename. | [optional] |
|
|
10
|
-
| **alt_text** | **String** | Accessibility alternative text for an image, applied on every platform that supports it: Instagram (feed images only, not Reels/Stories), Facebook, Threads, X
|
|
10
|
+
| **alt_text** | **String** | Accessibility alternative text for an image, applied on every platform that supports it: Instagram (feed images only, not Reels/Stories), Facebook, Threads, X (max 1000 chars), LinkedIn, Bluesky, and Pinterest (max 500 chars). Ignored on platforms without alt-text support (TikTok, YouTube, Snapchat, Telegram, Reddit, Google Business Profile, WhatsApp) and on video items where the platform does not accept it. Set once per image; the same value is sent to each selected platform. | [optional] |
|
|
11
11
|
| **filename** | **String** | | [optional] |
|
|
12
12
|
| **size** | **Integer** | Optional file size in bytes | [optional] |
|
|
13
13
|
| **mime_type** | **String** | Optional MIME type (e.g. image/jpeg, video/mp4) | [optional] |
|
data/docs/MentionsApi.md
CHANGED
|
@@ -29,7 +29,7 @@ end
|
|
|
29
29
|
|
|
30
30
|
api_instance = Zernio::MentionsApi.new
|
|
31
31
|
opts = {
|
|
32
|
-
account_id: 'account_id_example', # String | Filter by
|
|
32
|
+
account_id: 'account_id_example', # String | Filter by account ID
|
|
33
33
|
profile_id: 'profile_id_example', # String | Filter by profile ID
|
|
34
34
|
sort_order: 'asc', # String | Sort order by publishedAt
|
|
35
35
|
limit: 56, # Integer |
|
|
@@ -67,7 +67,7 @@ end
|
|
|
67
67
|
|
|
68
68
|
| Name | Type | Description | Notes |
|
|
69
69
|
| ---- | ---- | ----------- | ----- |
|
|
70
|
-
| **account_id** | **String** | Filter by
|
|
70
|
+
| **account_id** | **String** | Filter by account ID | [optional] |
|
|
71
71
|
| **profile_id** | **String** | Filter by profile ID | [optional] |
|
|
72
72
|
| **sort_order** | **String** | Sort order by publishedAt | [optional][default to 'desc'] |
|
|
73
73
|
| **limit** | **Integer** | | [optional][default to 25] |
|
|
@@ -93,7 +93,7 @@ end
|
|
|
93
93
|
|
|
94
94
|
Reply to a mention
|
|
95
95
|
|
|
96
|
-
Reply to a mention of the connected account. Supported on Instagram only. Two shapes, selected by whether `commentId` is present: - **Comment mention** (someone @mentioned the account inside a comment): pass both `mediaId` and `commentId`. Instagram posts a reply under that comment. - **Caption mention** (someone @mentioned the account in their media caption, so no comment exists): pass `mediaId` only. Instagram posts a comment on their media. Story mentions are not supported by Instagram's API.
|
|
96
|
+
Reply to a mention of the connected account. Supported on Instagram only. Two shapes, selected by whether `commentId` is present: - **Comment mention** (someone @mentioned the account inside a comment): pass both `mediaId` and `commentId`. Instagram posts a reply under that comment. - **Caption mention** (someone @mentioned the account in their media caption, so no comment exists): pass `mediaId` only. Instagram posts a comment on their media. Story mentions are not supported by Instagram's API. `GET /v1/inbox/mentions` currently returns LinkedIn mentions only and does not surface Instagram mentions. Source `mediaId` and `commentId` from Instagram's `comments` webhook, which is where mention notifications are delivered for accounts connected through Instagram Login.
|
|
97
97
|
|
|
98
98
|
### Examples
|
|
99
99
|
|
data/docs/MessagesApi.md
CHANGED
|
@@ -17,6 +17,7 @@ All URIs are relative to *https://zernio.com/api*
|
|
|
17
17
|
| [**search_inbox_conversations**](MessagesApi.md#search_inbox_conversations) | **GET** /v1/inbox/conversations/search | Search conversations |
|
|
18
18
|
| [**send_inbox_message**](MessagesApi.md#send_inbox_message) | **POST** /v1/inbox/conversations/{conversationId}/messages | Send message |
|
|
19
19
|
| [**send_typing_indicator**](MessagesApi.md#send_typing_indicator) | **POST** /v1/inbox/conversations/{conversationId}/typing | Send typing indicator |
|
|
20
|
+
| [**set_conversation_thread_control**](MessagesApi.md#set_conversation_thread_control) | **POST** /v1/inbox/conversations/{conversationId}/thread-control | Hand a conversation to or from Meta Business Agent |
|
|
20
21
|
| [**update_inbox_conversation**](MessagesApi.md#update_inbox_conversation) | **PUT** /v1/inbox/conversations/{conversationId} | Update conversation status |
|
|
21
22
|
| [**upload_media_direct**](MessagesApi.md#upload_media_direct) | **POST** /v1/media/upload-direct | Upload media file |
|
|
22
23
|
|
|
@@ -100,7 +101,7 @@ end
|
|
|
100
101
|
|
|
101
102
|
Create conversation
|
|
102
103
|
|
|
103
|
-
|
|
104
|
+
Start a direct message conversation with a user. If a conversation with that recipient already exists, the message is added to the existing thread. Supported platforms: X, Bluesky, Reddit, WhatsApp, SMS, and Slack. Other platforms return PLATFORM_NOT_SUPPORTED. **Slack.** Pass a workspace member id as participantId (list them with GET /v1/accounts/{accountId}/slack-members). Zernio opens the DM channel with that member and sends the message; the thread then behaves like any other Slack conversation in the inbox. The member must belong to the connected workspace. **WhatsApp.** This is the endpoint for sending an approved template message to a phone number. Provide templateName, templateLanguage, and templateParams (variable values for the text header, body and dynamic URL buttons, in that order), with the recipient phone in participantId. A template is required because WhatsApp does not permit freeform messages to open a conversation; a missing template returns TEMPLATE_REQUIRED. - Templates with media headers (image, video, document) are handled automatically: Zernio reads the approved template definition and fills the header at send time with the template's approved sample asset. To send a DIFFERENT asset per message (e.g. a distinct invoice PDF for each recipient), pass the headerMedia field with a public link (or a Meta media id); it overrides the sample for that send. - A template whose approved header format is LOCATION has no header asset to reconstruct at all: Meta only accepts the location at send time, so pass headerLocation (latitude and longitude required) whenever such a template is sent; headerMedia and headerLocation cannot both be supplied. - A button that carries its own value at send time (a copy-code button holding a Pix payment code or a coupon, a flow token) is sent with templateButtonParams, addressed by the button's index; templateParams covers text variables and dynamic URL buttons only. - Template fields are accepted on the JSON body only, not on multipart requests. For a number you already have a thread with, this sends the template into that thread, which also makes it the way to re-engage a contact after the 24-hour customer-service window has closed. Once the recipient replies (opening the 24h window), send freeform messages with the send-message endpoint (POST /v1/inbox/conversations/{conversationId}/messages). Alternatively, WhatsApp Business Accounts eligible for Meta Direct Send can open a conversation with a business-initiated utility text message and no template: pass category: 'utility' together with message (and no templateName). See the category field below. **DM eligibility (X).** Before sending, the endpoint checks if the recipient accepts DMs from your account (via the receives_your_dm field). If not, a 422 error with code DM_NOT_ALLOWED is returned. You can skip this check with skipDmCheck: true if you have already verified eligibility. **X API tier requirement.** DM write endpoints require X API Pro tier ($5,000/month) or Enterprise access. This applies to BYOK (Bring Your Own Key) users who provide their own X API credentials. **Rate limits (X only).** X's DM API enforces 200 requests per 15 minutes, 1,000 per 24 hours per connected X account, and 15,000 per 24 hours per X developer app (shared across all DM endpoints). These limits do NOT apply to other platforms. WhatsApp sends are governed by Meta's per-number messaging tiers (unique business-initiated conversations per 24 hours) and per-number throughput instead.
|
|
104
105
|
|
|
105
106
|
### Examples
|
|
106
107
|
|
|
@@ -169,7 +170,7 @@ end
|
|
|
169
170
|
|
|
170
171
|
Delete message
|
|
171
172
|
|
|
172
|
-
Delete a message from a conversation. Platform support varies: - Telegram: Full delete (bot's own messages anytime, others if admin) - X
|
|
173
|
+
Delete a message from a conversation. Platform support varies: - Telegram: Full delete (bot's own messages anytime, others if admin) - X: Full delete (own DM events only) - Bluesky: Delete for self only (recipient still sees it) - Reddit: Delete from sender's view only - Facebook, Instagram, WhatsApp: Not supported (returns 400)
|
|
173
174
|
|
|
174
175
|
### Examples
|
|
175
176
|
|
|
@@ -185,7 +186,7 @@ end
|
|
|
185
186
|
api_instance = Zernio::MessagesApi.new
|
|
186
187
|
conversation_id = 'conversation_id_example' # String | The conversation ID
|
|
187
188
|
message_id = 'message_id_example' # String | The platform message ID to delete
|
|
188
|
-
account_id = 'account_id_example' # String |
|
|
189
|
+
account_id = 'account_id_example' # String | Account ID
|
|
189
190
|
|
|
190
191
|
begin
|
|
191
192
|
# Delete message
|
|
@@ -220,7 +221,7 @@ end
|
|
|
220
221
|
| ---- | ---- | ----------- | ----- |
|
|
221
222
|
| **conversation_id** | **String** | The conversation ID | |
|
|
222
223
|
| **message_id** | **String** | The platform message ID to delete | |
|
|
223
|
-
| **account_id** | **String** |
|
|
224
|
+
| **account_id** | **String** | Account ID | |
|
|
224
225
|
|
|
225
226
|
### Return type
|
|
226
227
|
|
|
@@ -330,7 +331,7 @@ end
|
|
|
330
331
|
|
|
331
332
|
api_instance = Zernio::MessagesApi.new
|
|
332
333
|
conversation_id = 'conversation_id_example' # String | Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.
|
|
333
|
-
account_id = 'account_id_example' # String | The
|
|
334
|
+
account_id = 'account_id_example' # String | The account ID
|
|
334
335
|
|
|
335
336
|
begin
|
|
336
337
|
# Get conversation
|
|
@@ -364,7 +365,7 @@ end
|
|
|
364
365
|
| Name | Type | Description | Notes |
|
|
365
366
|
| ---- | ---- | ----------- | ----- |
|
|
366
367
|
| **conversation_id** | **String** | Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed. | |
|
|
367
|
-
| **account_id** | **String** | The
|
|
368
|
+
| **account_id** | **String** | The account ID | |
|
|
368
369
|
|
|
369
370
|
### Return type
|
|
370
371
|
|
|
@@ -386,7 +387,7 @@ end
|
|
|
386
387
|
|
|
387
388
|
List messages
|
|
388
389
|
|
|
389
|
-
Fetch messages for a specific conversation, with cursor-based pagination and ordering control. Pagination: pass `pagination.nextCursor` from a prior response back as the `cursor` query param to fetch the next page. The cursor is opaque; do not parse or construct it client-side. Sort order: defaults to `asc` (oldest first, chat style). For the \"show me the latest messages\" pattern, pass `?sortOrder=desc&limit=N`.
|
|
390
|
+
Fetch messages for a specific conversation, with cursor-based pagination and ordering control. Pagination: pass `pagination.nextCursor` from a prior response back as the `cursor` query param to fetch the next page. The cursor is opaque; do not parse or construct it client-side. Sort order: defaults to `asc` (oldest first, chat style). For the \"show me the latest messages\" pattern, pass `?sortOrder=desc&limit=N`. X, Instagram, Telegram, WhatsApp and Reddit honor the requested order from the local message store. For Facebook and Bluesky, the upstream APIs only return newest-first and have no order parameter, so sort order is best-effort and only reverses items within a single page (pages still walk newest→oldest). The response field `sortOrderApplied` tells you what was actually applied. Reddit threads are paginated client-side because Reddit's API has no per-thread cursor. Very long threads may be upstream-truncated by Reddit's inbox/sent windows (~100 most-recent items each); this is a Reddit platform limitation. Instagram and Facebook conversations include history from before the account was connected, replayed from Meta. That replay covers the 500 most recent messages per conversation: a longer thread keeps its newest 500 and older messages are not retrievable. Messages that arrived after the account was connected are unaffected. Replayed messages are stored as already read and emit no webhooks. X limitation: X's encrypted \"X Chat\" messages are not accessible via the API. Conversations where the other participant uses encrypted X Chat may only show your outgoing messages. See the list conversations endpoint for more details. This endpoint is read-only and does NOT mark messages as read or send read receipts. To mark a conversation read (and send WhatsApp blue ticks on eligible accounts), call `POST /v1/inbox/conversations/{conversationId}/read`.
|
|
390
391
|
|
|
391
392
|
### Examples
|
|
392
393
|
|
|
@@ -401,11 +402,11 @@ end
|
|
|
401
402
|
|
|
402
403
|
api_instance = Zernio::MessagesApi.new
|
|
403
404
|
conversation_id = 'conversation_id_example' # String | Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed.
|
|
404
|
-
account_id = 'account_id_example' # String |
|
|
405
|
+
account_id = 'account_id_example' # String | Account ID
|
|
405
406
|
opts = {
|
|
406
407
|
limit: 56, # Integer | Number of messages to return per page. Default 100, max 100.
|
|
407
408
|
cursor: 'cursor_example', # String | Opaque pagination cursor. Pass `pagination.nextCursor` from a prior response verbatim: a cursor we cannot parse returns 400 rather than silently restarting from the first page.
|
|
408
|
-
sort_order: 'asc' # String | Order of returned messages. Default `asc` (oldest first, chat style).
|
|
409
|
+
sort_order: 'asc' # String | Order of returned messages. Default `asc` (oldest first, chat style). X, Instagram, Telegram, WhatsApp and Reddit honor this order across cursor pages. For Facebook and Bluesky, only intra-page ordering is affected. Pages always walk newest→oldest. See `sortOrderApplied` in the response.
|
|
409
410
|
}
|
|
410
411
|
|
|
411
412
|
begin
|
|
@@ -440,10 +441,10 @@ end
|
|
|
440
441
|
| Name | Type | Description | Notes |
|
|
441
442
|
| ---- | ---- | ----------- | ----- |
|
|
442
443
|
| **conversation_id** | **String** | Opaque conversation identifier, accepted verbatim from the list endpoint or from the conversationId on inbox webhooks. Format not to be assumed. | |
|
|
443
|
-
| **account_id** | **String** |
|
|
444
|
+
| **account_id** | **String** | Account ID | |
|
|
444
445
|
| **limit** | **Integer** | Number of messages to return per page. Default 100, max 100. | [optional][default to 100] |
|
|
445
446
|
| **cursor** | **String** | Opaque pagination cursor. Pass `pagination.nextCursor` from a prior response verbatim: a cursor we cannot parse returns 400 rather than silently restarting from the first page. | [optional] |
|
|
446
|
-
| **sort_order** | **String** | Order of returned messages. Default `asc` (oldest first, chat style).
|
|
447
|
+
| **sort_order** | **String** | Order of returned messages. Default `asc` (oldest first, chat style). X, Instagram, Telegram, WhatsApp and Reddit honor this order across cursor pages. For Facebook and Bluesky, only intra-page ordering is affected. Pages always walk newest→oldest. See `sortOrderApplied` in the response. | [optional][default to 'asc'] |
|
|
447
448
|
|
|
448
449
|
### Return type
|
|
449
450
|
|
|
@@ -465,7 +466,7 @@ end
|
|
|
465
466
|
|
|
466
467
|
Resolve message attachment
|
|
467
468
|
|
|
468
|
-
Resolve one attachment on a message to a media url that works right now. Instagram and Facebook sign DM media urls per request and expire them, so the `url` on a message is a snapshot: it works when you read the message and stops working later. This endpoint checks the stored url and, when it has gone stale, re-mints the message's media from Meta and persists it before answering. The message id never expires, so this URL is the one to store. It is returned ready-made on each attachment as `refreshUrl` when you read a message over REST. **Webhook payloads do not carry `refreshUrl`**, so a webhook-driven integration builds this URL itself. Every piece is in the event: `message.conversationId`, `message.platformMessageId`, the attachment's zero-based position, and `account.accountId`.
|
|
469
|
+
Resolve one attachment on a message to a media url that works right now. Instagram and Facebook sign DM media urls per request and expire them, so the `url` on a message is a snapshot: it works when you read the message and stops working later. This endpoint checks the stored url and, when it has gone stale, re-mints the message's media from Meta and persists it before answering. The message id never expires, so this URL is the one to store. It is returned ready-made on each attachment as `refreshUrl` when you read a message over REST. **Webhook payloads do not carry `refreshUrl`**, so a webhook-driven integration builds this URL itself. Every piece is in the event: `message.conversationId`, `message.platformMessageId`, the attachment's zero-based position, and `account.accountId`. **`accountId` is a required query parameter**; omitting it returns `400` `missing_required_field`, which is the same requirement `GET /v1/whatsapp/media/{mediaId}` has. By default it responds `302` to the live media url, so it can be used directly as an `<img src>` on a browser session. API-key integrators should pass `?format=json` and read `url` off the body, since a browser cannot attach an Authorization header to an image request. Only Instagram and Facebook media can be re-minted. On other platforms the stored url is returned as-is when it still resolves, and `404` otherwise.
|
|
469
470
|
|
|
470
471
|
### Examples
|
|
471
472
|
|
|
@@ -482,7 +483,7 @@ api_instance = Zernio::MessagesApi.new
|
|
|
482
483
|
conversation_id = 'conversation_id_example' # String | The conversation ID (Zernio id or platform conversation id)
|
|
483
484
|
message_id = 'message_id_example' # String | The message id as returned by the list-messages endpoint (the platform message id)
|
|
484
485
|
index = 56 # Integer | Zero-based position of the attachment in the message's attachments array
|
|
485
|
-
account_id = 'account_id_example' # String |
|
|
486
|
+
account_id = 'account_id_example' # String | Account ID. Required: without it the request returns 400 missing_required_field.
|
|
486
487
|
opts = {
|
|
487
488
|
format: 'redirect' # String | `redirect` (default) answers 302 to the media; `json` returns the url in the body
|
|
488
489
|
}
|
|
@@ -521,7 +522,7 @@ end
|
|
|
521
522
|
| **conversation_id** | **String** | The conversation ID (Zernio id or platform conversation id) | |
|
|
522
523
|
| **message_id** | **String** | The message id as returned by the list-messages endpoint (the platform message id) | |
|
|
523
524
|
| **index** | **Integer** | Zero-based position of the attachment in the message's attachments array | |
|
|
524
|
-
| **account_id** | **String** |
|
|
525
|
+
| **account_id** | **String** | Account ID. Required: without it the request returns 400 missing_required_field. | |
|
|
525
526
|
| **format** | **String** | `redirect` (default) answers 302 to the media; `json` returns the url in the body | [optional][default to 'redirect'] |
|
|
526
527
|
|
|
527
528
|
### Return type
|
|
@@ -544,7 +545,7 @@ end
|
|
|
544
545
|
|
|
545
546
|
List conversations
|
|
546
547
|
|
|
547
|
-
Fetch conversations (DMs) from all connected messaging accounts in a single API call. Supports filtering by profile and platform. Results are aggregated and deduplicated.
|
|
548
|
+
Fetch conversations (DMs) from all connected messaging accounts in a single API call. Supports filtering by profile and platform. Results are aggregated and deduplicated. Supported platforms: Facebook, Instagram, X, Bluesky, Reddit, Telegram. **X limitation.** X has replaced traditional DMs with encrypted \"X Chat\" for many accounts. Messages sent or received through encrypted X Chat are not accessible via X's API (the /2/dm_events endpoint only returns legacy unencrypted DMs). This means some X conversations may show only outgoing messages or appear empty. This is an X platform limitation that affects all third-party applications. See X's docs on encrypted messaging for more details. **Instagram and Facebook pre-connect history.** When one of these accounts is connected, Zernio replays the DM history the account already holds on Meta, so conversations that began before the account was connected appear here. Up to 500 conversations per account are replayed. - The replay runs in the background and can finish after a listing you have already taken, and replayed conversations keep their original lastMessageAt, so they sort into date order rather than appearing at the top. If you mirror this endpoint into your own store, re-run the sweep rather than relying on a single pass at connect time. - Replayed history emits no webhooks and is stored as already read, so it never affects unread counts. - Threads that Meta refuses to serve are skipped, and an account whose Instagram \"connected tools\" message access is turned off is not replayed at all.
|
|
548
549
|
|
|
549
550
|
### Examples
|
|
550
551
|
|
|
@@ -565,7 +566,7 @@ opts = {
|
|
|
565
566
|
sort_order: 'asc', # String | Sort order by updated time
|
|
566
567
|
limit: 56, # Integer | Maximum number of conversations to return
|
|
567
568
|
cursor: 'cursor_example', # String | Pagination cursor for next page
|
|
568
|
-
account_id: 'account_id_example' # String | Filter by specific
|
|
569
|
+
account_id: 'account_id_example' # String | Filter by specific account ID
|
|
569
570
|
}
|
|
570
571
|
|
|
571
572
|
begin
|
|
@@ -605,7 +606,7 @@ end
|
|
|
605
606
|
| **sort_order** | **String** | Sort order by updated time | [optional][default to 'desc'] |
|
|
606
607
|
| **limit** | **Integer** | Maximum number of conversations to return | [optional][default to 50] |
|
|
607
608
|
| **cursor** | **String** | Pagination cursor for next page | [optional] |
|
|
608
|
-
| **account_id** | **String** | Filter by specific
|
|
609
|
+
| **account_id** | **String** | Filter by specific account ID | [optional] |
|
|
609
610
|
|
|
610
611
|
### Return type
|
|
611
612
|
|
|
@@ -714,7 +715,7 @@ end
|
|
|
714
715
|
api_instance = Zernio::MessagesApi.new
|
|
715
716
|
conversation_id = 'conversation_id_example' # String | The conversation ID
|
|
716
717
|
message_id = 'message_id_example' # String | The platform message ID (as returned by GET /messages) or the Zernio message ID (as returned by the reaction webhook)
|
|
717
|
-
account_id = 'account_id_example' # String |
|
|
718
|
+
account_id = 'account_id_example' # String | Account ID
|
|
718
719
|
|
|
719
720
|
begin
|
|
720
721
|
# Remove reaction
|
|
@@ -749,7 +750,7 @@ end
|
|
|
749
750
|
| ---- | ---- | ----------- | ----- |
|
|
750
751
|
| **conversation_id** | **String** | The conversation ID | |
|
|
751
752
|
| **message_id** | **String** | The platform message ID (as returned by GET /messages) or the Zernio message ID (as returned by the reaction webhook) | |
|
|
752
|
-
| **account_id** | **String** |
|
|
753
|
+
| **account_id** | **String** | Account ID | |
|
|
753
754
|
|
|
754
755
|
### Return type
|
|
755
756
|
|
|
@@ -771,7 +772,7 @@ end
|
|
|
771
772
|
|
|
772
773
|
Search conversations
|
|
773
774
|
|
|
774
|
-
Search your conversations two ways at once, and get back the matching conversations, most-recent match first: - Message text: matches words inside message bodies. Case-insensitive and accent-insensitive, exact tokens only (no substrings, no stemming). Each hit carries up to 3 most-recent matching messages. With direction=outgoing you can collect examples of how you write to customers, for example to teach an AI agent your tone of voice. - Contact identity: matches the participant's name, username, or phone number as a case-insensitive substring. These hits have matchCount 0 and an empty matches array. A conversation that matches both ways is returned once, carrying its message matches. Only platforms whose messages are stored by Zernio are searchable: WhatsApp, SMS, Telegram, Facebook, Instagram,
|
|
775
|
+
Search your conversations two ways at once, and get back the matching conversations, most-recent match first: - Message text: matches words inside message bodies. Case-insensitive and accent-insensitive, exact tokens only (no substrings, no stemming). Each hit carries up to 3 most-recent matching messages. With direction=outgoing you can collect examples of how you write to customers, for example to teach an AI agent your tone of voice. - Contact identity: matches the participant's name, username, or phone number as a case-insensitive substring. These hits have matchCount 0 and an empty matches array. A conversation that matches both ways is returned once, carrying its message matches. Only platforms whose messages are stored by Zernio are searchable: WhatsApp, SMS, Telegram, Facebook, Instagram, X and Reddit. Bluesky conversations are fetched live from the platform and cannot be searched; those accounts are listed in meta.accountsSkipped.
|
|
775
776
|
|
|
776
777
|
### Examples
|
|
777
778
|
|
|
@@ -790,7 +791,7 @@ opts = {
|
|
|
790
791
|
direction: 'incoming', # String | Only match messages sent to you (incoming) or by you (outgoing). Contact-identity matching is not applied when this is set.
|
|
791
792
|
profile_id: 'profile_id_example', # String | Filter by profile ID
|
|
792
793
|
platform: 'facebook', # String | Filter by platform (searchable platforms only)
|
|
793
|
-
account_id: 'account_id_example', # String | Filter by specific
|
|
794
|
+
account_id: 'account_id_example', # String | Filter by specific account ID
|
|
794
795
|
limit: 56, # Integer | Maximum number of conversations to return
|
|
795
796
|
cursor: 'cursor_example' # String | Opaque pagination cursor. Pass back pagination.nextCursor verbatim; do not construct one.
|
|
796
797
|
}
|
|
@@ -830,7 +831,7 @@ end
|
|
|
830
831
|
| **direction** | **String** | Only match messages sent to you (incoming) or by you (outgoing). Contact-identity matching is not applied when this is set. | [optional] |
|
|
831
832
|
| **profile_id** | **String** | Filter by profile ID | [optional] |
|
|
832
833
|
| **platform** | **String** | Filter by platform (searchable platforms only) | [optional] |
|
|
833
|
-
| **account_id** | **String** | Filter by specific
|
|
834
|
+
| **account_id** | **String** | Filter by specific account ID | [optional] |
|
|
834
835
|
| **limit** | **Integer** | Maximum number of conversations to return | [optional][default to 20] |
|
|
835
836
|
| **cursor** | **String** | Opaque pagination cursor. Pass back pagination.nextCursor verbatim; do not construct one. | [optional] |
|
|
836
837
|
|
|
@@ -994,6 +995,77 @@ end
|
|
|
994
995
|
- **Accept**: application/json
|
|
995
996
|
|
|
996
997
|
|
|
998
|
+
## set_conversation_thread_control
|
|
999
|
+
|
|
1000
|
+
> <SetConversationThreadControl200Response> set_conversation_thread_control(conversation_id, set_conversation_thread_control_request)
|
|
1001
|
+
|
|
1002
|
+
Hand a conversation to or from Meta Business Agent
|
|
1003
|
+
|
|
1004
|
+
WhatsApp only, on numbers with Meta Business Agent enabled. Wraps Meta's thread control: - `release`: hand the conversation back to the agent so it resumes answering. You must currently hold control (sending any message takes it implicitly). - `take`: take control before sending anything, so the agent stops replying while an operator reads the thread. Meta accepts this only from the business configured as the number's escalation partner; other apps take control by sending a message. - `pass`: transfer control to the number's configured escalation partner, or to the agent with `target: ai_agent`. The conversation's `threadControl` follows the result; a `conversation.control_changed` webhook fires when Meta later reports the change.
|
|
1005
|
+
|
|
1006
|
+
### Examples
|
|
1007
|
+
|
|
1008
|
+
```ruby
|
|
1009
|
+
require 'time'
|
|
1010
|
+
require 'zernio-sdk'
|
|
1011
|
+
# setup authorization
|
|
1012
|
+
Zernio.configure do |config|
|
|
1013
|
+
# Configure Bearer authorization (JWT): bearerAuth
|
|
1014
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
1015
|
+
end
|
|
1016
|
+
|
|
1017
|
+
api_instance = Zernio::MessagesApi.new
|
|
1018
|
+
conversation_id = 'conversation_id_example' # String | The conversation ID
|
|
1019
|
+
set_conversation_thread_control_request = Zernio::SetConversationThreadControlRequest.new({account_id: 'account_id_example', action: 'release'}) # SetConversationThreadControlRequest |
|
|
1020
|
+
|
|
1021
|
+
begin
|
|
1022
|
+
# Hand a conversation to or from Meta Business Agent
|
|
1023
|
+
result = api_instance.set_conversation_thread_control(conversation_id, set_conversation_thread_control_request)
|
|
1024
|
+
p result
|
|
1025
|
+
rescue Zernio::ApiError => e
|
|
1026
|
+
puts "Error when calling MessagesApi->set_conversation_thread_control: #{e}"
|
|
1027
|
+
end
|
|
1028
|
+
```
|
|
1029
|
+
|
|
1030
|
+
#### Using the set_conversation_thread_control_with_http_info variant
|
|
1031
|
+
|
|
1032
|
+
This returns an Array which contains the response data, status code and headers.
|
|
1033
|
+
|
|
1034
|
+
> <Array(<SetConversationThreadControl200Response>, Integer, Hash)> set_conversation_thread_control_with_http_info(conversation_id, set_conversation_thread_control_request)
|
|
1035
|
+
|
|
1036
|
+
```ruby
|
|
1037
|
+
begin
|
|
1038
|
+
# Hand a conversation to or from Meta Business Agent
|
|
1039
|
+
data, status_code, headers = api_instance.set_conversation_thread_control_with_http_info(conversation_id, set_conversation_thread_control_request)
|
|
1040
|
+
p status_code # => 2xx
|
|
1041
|
+
p headers # => { ... }
|
|
1042
|
+
p data # => <SetConversationThreadControl200Response>
|
|
1043
|
+
rescue Zernio::ApiError => e
|
|
1044
|
+
puts "Error when calling MessagesApi->set_conversation_thread_control_with_http_info: #{e}"
|
|
1045
|
+
end
|
|
1046
|
+
```
|
|
1047
|
+
|
|
1048
|
+
### Parameters
|
|
1049
|
+
|
|
1050
|
+
| Name | Type | Description | Notes |
|
|
1051
|
+
| ---- | ---- | ----------- | ----- |
|
|
1052
|
+
| **conversation_id** | **String** | The conversation ID | |
|
|
1053
|
+
| **set_conversation_thread_control_request** | [**SetConversationThreadControlRequest**](SetConversationThreadControlRequest.md) | | |
|
|
1054
|
+
|
|
1055
|
+
### Return type
|
|
1056
|
+
|
|
1057
|
+
[**SetConversationThreadControl200Response**](SetConversationThreadControl200Response.md)
|
|
1058
|
+
|
|
1059
|
+
### Authorization
|
|
1060
|
+
|
|
1061
|
+
[bearerAuth](../README.md#bearerAuth)
|
|
1062
|
+
|
|
1063
|
+
### HTTP request headers
|
|
1064
|
+
|
|
1065
|
+
- **Content-Type**: application/json
|
|
1066
|
+
- **Accept**: application/json
|
|
1067
|
+
|
|
1068
|
+
|
|
997
1069
|
## update_inbox_conversation
|
|
998
1070
|
|
|
999
1071
|
> <UpdateInboxConversation200Response> update_inbox_conversation(conversation_id, update_inbox_conversation_request)
|
|
@@ -1071,7 +1143,7 @@ end
|
|
|
1071
1143
|
|
|
1072
1144
|
Upload media file
|
|
1073
1145
|
|
|
1074
|
-
Upload a media file using API key authentication and get back a publicly accessible URL. The URL can be used as attachmentUrl when sending inbox messages. Files are stored in temporary storage and auto-delete after 7 days. Maximum file size is 25MB. Unlike /v1/media/upload (which uses upload tokens for end-user flows), this endpoint
|
|
1146
|
+
Upload a media file using API key authentication and get back a publicly accessible URL. The URL can be used as attachmentUrl when sending inbox messages. Files are stored in temporary storage and auto-delete after 7 days. Maximum file size is 25MB. Unlike /v1/media/upload (which uses upload tokens for end-user flows), this endpoint takes your API key in the Authorization header, for programmatic use.
|
|
1075
1147
|
|
|
1076
1148
|
### Examples
|
|
1077
1149
|
|
data/docs/MessagingAdsApi.md
CHANGED
|
@@ -83,7 +83,7 @@ nil (empty response body)
|
|
|
83
83
|
|
|
84
84
|
Create Click-to-WhatsApp ad (deprecated)
|
|
85
85
|
|
|
86
|
-
Deprecated: use POST /v1/ads/messaging with `destination: whatsapp`. This endpoint stays available for back-compat; no removal planned. Creates one or more Click-to-WhatsApp (CTWA) ads on Meta under a single campaign and ad set. When tapped, each ad opens a WhatsApp conversation with the business attached to the supplied Facebook Page. The full hierarchy (campaign, ad set, creative(s), ad(s)) is created and activated in one call. The CTA is locked to WHATSAPP_MESSAGE and the destination is hard-coded to api.whatsapp.com/send; Meta resolves the actual WhatsApp number from the Page-to-WA pairing configured in Page settings or Business Manager. Supports two mutually-exclusive shapes: - **Single-creative**: supply top-level `headline`, `body`, and one of `imageUrl` / `video`. Creates 1 campaign + 1 ad set + 1 ad. - **Multi-creative**: supply a `creatives[]` array with N entries (each carrying its own headline, body, and image/video). Creates 1 campaign + 1 ad set + N ads sharing budget and targeting so Meta A/Bs the creatives inside a single auction instead of fragmenting budget across N parallel campaigns. Recommended when launching multiple creative variants for the same campaign. **Attach shape.** Send `adSetId` (with either creative shape) to add the ads to an EXISTING messaging ad set instead of building a campaign, so the ad set keeps its learning phase
|
|
86
|
+
Deprecated: use POST /v1/ads/messaging with `destination: whatsapp`. This endpoint stays available for back-compat; no removal planned. Creates one or more Click-to-WhatsApp (CTWA) ads on Meta under a single campaign and ad set. When tapped, each ad opens a WhatsApp conversation with the business attached to the supplied Facebook Page. The full hierarchy (campaign, ad set, creative(s), ad(s)) is created and activated in one call. The CTA is locked to WHATSAPP_MESSAGE and the destination is hard-coded to api.whatsapp.com/send; Meta resolves the actual WhatsApp number from the Page-to-WA pairing configured in Page settings or Business Manager. Supports two mutually-exclusive shapes: - **Single-creative**: supply top-level `headline`, `body`, and one of `imageUrl` / `video`. Creates 1 campaign + 1 ad set + 1 ad. - **Multi-creative**: supply a `creatives[]` array with N entries (each carrying its own headline, body, and image/video). Creates 1 campaign + 1 ad set + N ads sharing budget and targeting so Meta A/Bs the creatives inside a single auction instead of fragmenting budget across N parallel campaigns. Recommended when launching multiple creative variants for the same campaign. **Attach shape.** Send `adSetId` (with either creative shape) to add the ads to an EXISTING messaging ad set instead of building a campaign, so the ad set keeps its learning phase, the way to refresh a CTWA creative without resetting delivery. The ad set then owns budget, targeting and schedule, so `budgetAmount`, `budgetType`, `endDate`, `objective`, `countries`, `interests` and `audienceId` are rejected with a 400 alongside it rather than silently dropped. The target ad set's `destination_type` must match the ad's destination (a WhatsApp ad needs a `WHATSAPP` ad set), otherwise Meta would accept an ad that never delivers. Prerequisites enforced by Meta (surfaced as platform_error on failure): the Facebook Page must be paired with a verified WhatsApp Business number, the WhatsApp Business Account must be business-verified, and the Meta access token must carry ads_management.
|
|
87
87
|
|
|
88
88
|
### Examples
|
|
89
89
|
|