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
data/docs/CallRecord.md
CHANGED
|
@@ -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] |
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
| **conversions** | **Float** | Count of conversion events over the requested date range. FRACTIONAL: attribution splits one conversion across touchpoints and Google additionally reports modeled conversions, so values like 0.347 are normal. Meta: events matching the campaign's promoted_object.custom_event_type (PURCHASE, LEAD, etc.). Google: the account's tracked conversions. X and LinkedIn: their reported website/lead conversions (added 2026-07). 0 for non-conversion campaigns or when no events have fired. | [optional] |
|
|
16
16
|
| **all_conversions** | **Float** | All conversions, including actions excluded from the Conversions column (Google metrics.all_conversions). 0 on platforms without the concept. | [optional] |
|
|
17
17
|
| **cost_per_conversion** | **Float** | Derived spend / conversions in the same currency as spend. 0 when conversions is 0. | [optional] |
|
|
18
|
-
| **actions** | **Hash<String, Integer>** | Per-action-type counts summed over the date range, keyed by the platform's action-type names. Meta: raw Insights action_type keys (link_click, offsite_conversion.fb_pixel_purchase, onsite_conversion.lead_grouped, ...)
|
|
19
|
-
| **action_values** | **Hash<String, Float>** | Monetary mirror of `actions`, from Meta's Insights `action_values[]` array. Same keying
|
|
20
|
-
| **purchase_value** | **Float** | Convenience sum of purchase-type action values
|
|
21
|
-
| **roas** | **Float** | Return on ad spend
|
|
18
|
+
| **actions** | **Hash<String, Integer>** | Per-action-type counts summed over the date range, keyed by the platform's action-type names. Meta: raw Insights action_type keys (link_click, offsite_conversion.fb_pixel_purchase, onsite_conversion.lead_grouped, ...), covering both engagement and conversion events. TikTok: pixel conversions (purchase, add_to_cart, initiate_checkout, view_content, complete_payment, lead) plus the paid-engagement family (follow, post_reaction for paid likes, comment, share). Follow is how FOLLOWERS-goal campaigns report their result. X: conversion types (purchase, sign_up, site_visit, download, custom). LinkedIn: conversion types (post_click, post_view, lead_gen). Google returns {} (its per-action names aren't synced per ad). Empty object when no actions are reported. NOTE: keys differ by platform, so branch on the ad's platform when interpreting them. | [optional] |
|
|
19
|
+
| **action_values** | **Hash<String, Float>** | Monetary mirror of `actions`, from Meta's Insights `action_values[]` array. Same keying: values are the revenue attributed to each action_type, in ad-account native currency (same unit as `spend`; see the campaign node's `currency` field). Use this to compute revenue-per-event (e.g. avg purchase value). Meta-only; other platforms return {}. | [optional] |
|
|
20
|
+
| **purchase_value** | **Float** | Convenience sum of purchase-type action values, picked from `actionValues` via the same priority list as `conversions` so both fields describe the same events. In ad-account native currency. 0 when the campaign has no purchase event configured. Meta-only. | [optional] |
|
|
21
|
+
| **roas** | **Float** | Return on ad spend, derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level. | [optional] |
|
|
22
22
|
| **cost_per_action** | **Hash<String, Float>** | Derived `spend / actions[type]` for every action type with a non-zero count, in ad-account native currency. Same keys as `actions`. Rounded to 4 decimals because cheap actions cost well under a cent. Recomputed from summed spend + counts at every rollup level. Empty object when spend is 0 or no actions are reported. | [optional] |
|
|
23
23
|
| **outbound_clicks** | **Integer** | Clicks leading off Meta's surfaces to the advertiser's destination. Meta-only; other platforms report 0. | [optional] |
|
|
24
24
|
| **outbound_clicks_ctr** | **Float** | Derived `outboundClicks / impressions * 100`, recomputed from sums at every rollup level. | [optional] |
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
| **number_type** | **String** | | [optional] |
|
|
9
9
|
| **available** | **Boolean** | Whether deliverable voice inventory exists right now. | [optional] |
|
|
10
10
|
| **address_constraint** | **String** | | [optional] |
|
|
11
|
-
| **areas** | **Array<String>** | For `geo` only
|
|
11
|
+
| **areas** | **Array<String>** | For `geo` only: the area(s) the registered address must be in. | [optional] |
|
|
12
12
|
| **area_options** | [**Array<CheckPhoneNumberAvailability200ResponseAreaOptionsInner>**](CheckPhoneNumberAvailability200ResponseAreaOptionsInner.md) | Live inventory grouped by area code. For US and CA this is the full country inventory (every area code with stock, recognizable metros listed first, then alphabetical); other countries are ordered largest stock first; they list the areas in the latest inventory page (up to 500 numbers, which for most countries is the entire pool). Empty when out of stock (or the area lookup failed). Pass a chosen `ndc` as `areaCode` on POST /v1/phone-numbers/purchase (or on the KYC submit for regulated countries) to require that area. | [optional] |
|
|
13
13
|
|
|
14
14
|
## Example
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
| **portable** | **Boolean** | | [optional] |
|
|
9
9
|
| **fast_portable** | **Boolean** | Qualifies for the carrier's accelerated FastPort lane. | [optional] |
|
|
10
10
|
| **line_type** | **String** | Line type when known (mobile, landline, voip…). A US/CA mobile number requires the transfer PIN at submit. | [optional] |
|
|
11
|
-
| **country_code** | **String** | ISO country of the number
|
|
12
|
-
| **phone_number_type** | **String** | Carrier number-type classification (local, mobile, national, toll_free…)
|
|
11
|
+
| **country_code** | **String** | ISO country of the number. Pass it to GET /v1/phone-numbers/port-in/requirements for international numbers. | [optional] |
|
|
12
|
+
| **phone_number_type** | **String** | Carrier number-type classification (local, mobile, national, toll_free…), the numberType for the requirements endpoint. | [optional] |
|
|
13
13
|
| **not_portable_reason** | **String** | Carrier reason when not portable; null when portable. | [optional] |
|
|
14
14
|
|
|
15
15
|
## Example
|
data/docs/CommentsApi.md
CHANGED
|
@@ -252,7 +252,7 @@ end
|
|
|
252
252
|
|
|
253
253
|
Hide comment
|
|
254
254
|
|
|
255
|
-
Hide a comment on a post. Supported by Facebook, Instagram, Threads, and X
|
|
255
|
+
Hide a comment on a post. Supported by Facebook, Instagram, Threads, and X. Hidden comments are only visible to the commenter and page admin. For X, the reply must belong to a conversation started by the authenticated user.
|
|
256
256
|
|
|
257
257
|
### Examples
|
|
258
258
|
|
|
@@ -325,7 +325,7 @@ end
|
|
|
325
325
|
|
|
326
326
|
Like comment
|
|
327
327
|
|
|
328
|
-
Like or upvote a comment on a post. Supported platforms: Facebook,
|
|
328
|
+
Like or upvote a comment on a post. Supported platforms: Facebook, X, Bluesky, Reddit, LinkedIn, and Instagram in limited release (see below). For Bluesky, the cid (content identifier) is required in the request body. For LinkedIn, pass the composite comment URN returned by the comments endpoints as commentId; an optional reactionType picks the reaction (defaults to LIKE), and accounts connected before the social-feed scopes were requested get a 403 with code `linkedin_reconnect_required`. Instagram is in LIMITED RELEASE and not generally available: the call needs `instagram_manage_engagement`, which Meta has so far granted this app only under Standard Access, so it works for app admins, developers and testers of our Meta app and returns a 403 with code `PLATFORM_BETA_RESTRICTED` for every other account. That restriction lifts when Meta App Review grants Advanced Access; the constraints below apply once it does. Instagram covers comments and replies on feed posts, reels and carousels. Only an account connected through Facebook Login can be granted `instagram_manage_engagement`: an Instagram Login connection returns a 400 with code `instagram_likes_require_facebook_login`, and an account whose token predates the permission returns a 403 with code `reconnect_required`. Content from private accounts cannot be liked. Instagram also enforces a burst limit of 50 like or unlike calls per 5 seconds per Instagram account, and exceeding it locks that account out of the like API for an hour, so pace bulk loops.
|
|
329
329
|
|
|
330
330
|
### Examples
|
|
331
331
|
|
|
@@ -398,7 +398,7 @@ end
|
|
|
398
398
|
|
|
399
399
|
Like post
|
|
400
400
|
|
|
401
|
-
Like (or react to) a post as a connected account. Supported platforms: LinkedIn,
|
|
401
|
+
Like (or react to) a post as a connected account. Supported platforms: LinkedIn, X, Facebook, YouTube, Bluesky, and Instagram in limited release (see below). Threads, TikTok and Pinterest expose no like endpoint in their APIs and return 400. Reddit returns 400 too, pointing at `POST /v1/accounts/{accountId}/reddit-vote`, which covers upvote, downvote and clear on both posts and comments. The account does not have to be the one that published the post, which is what makes executive engagement possible: pass an exec's `accountId` and the brand post's ID. `postId` accepts either a Zernio post ID or the platform's native post ID. A Zernio post ID resolves to the entry for `accountId`, falling back to the post's single entry on the same platform (two entries on that platform is a 400, so pass the native ID). LinkedIn requires the `w_member_social_feed` / `w_organization_social_feed` scopes, which are not retroactive: accounts connected before those were requested get a 403 with code `linkedin_reconnect_required` until the user reconnects the account. YouTube spends 50 quota units per call. Instagram is in LIMITED RELEASE and not generally available: the call needs `instagram_manage_engagement`, which Meta has so far granted this app only under Standard Access, so it works for app admins, developers and testers of our Meta app and returns a 403 with code `PLATFORM_BETA_RESTRICTED` for every other account. That restriction lifts when Meta App Review grants Advanced Access; the constraints below apply once it does. Instagram covers feed images, reels and carousels (stories and private-account media are not likeable). Only an account connected through Facebook Login can be granted `instagram_manage_engagement`: an Instagram Login connection returns a 400 with code `instagram_likes_require_facebook_login`, and an account whose token predates the permission returns a 403 with code `reconnect_required`. Instagram also enforces a burst limit of 50 like or unlike calls per 5 seconds per Instagram account, and exceeding it locks that account out of the like API for an hour, so pace bulk loops.
|
|
402
402
|
|
|
403
403
|
### Examples
|
|
404
404
|
|
|
@@ -469,7 +469,7 @@ end
|
|
|
469
469
|
|
|
470
470
|
List commented posts
|
|
471
471
|
|
|
472
|
-
Returns posts with comment counts from all connected accounts. Aggregates data across multiple accounts. Responses are cached for up to 10 minutes, so the feed may lag new comments by that window. Do not poll this endpoint for real-time updates: subscribe to the `comment.received` webhook, which fires for every new comment across your posts and carries the post reference needed to keep this list current. For users with the Ads add-on (
|
|
472
|
+
Returns posts with comment counts from all connected accounts. Aggregates data across multiple accounts. Responses are cached for up to 10 minutes, so the feed may lag new comments by that window. Do not poll this endpoint for real-time updates: subscribe to the `comment.received` webhook, which fires for every new comment across your posts and carries the post reference needed to keep this list current. For users with the Ads add-on (accounts on usage-based billing always qualify), the user's Meta ads (boosted/dark posts) are included too. There's one row per (ad, placement-with-comments): an ad that runs on both Facebook feed and Instagram feed produces up to two rows (the Page dark post and the IG media have separate comment threads), each flagged `isAd: true` with `adId` and `placement` (`id` is `{adId}:{placement}`). Use `?platform=metaads` to return *only* ad rows; passing `facebook`/`instagram` returns *organic* posts only (no ads); omitting `platform` returns both. Fetch a row's thread from GET /v1/ads/{adId}/comments?placement={placement}. Ad comment counts are read with the Marketing API token (Facebook side) or the connected Instagram account's token (Instagram side); a row whose count can't be read is omitted. Pagination walks each account's platform listing. Following `nextCursor` reaches past the first page on Facebook, Instagram, Threads, LinkedIn and YouTube, since they are the platforms that support a server-side date window; on the others the listing stops at its first page. Cursor pagination is only coherent for the default sort (`sortBy=date`, `sortOrder=desc`): with `sortOrder=asc`, or with `sortBy=comments`, the cursor filter does not match the sort order and the second page is unreliable. `nextCursor` is opaque: pass it back verbatim, never construct or parse it, its composition may change without notice. Because each page re-queries a live window, results can still shift between requests, so dedupe by `id` on the client. `commentCount` semantics differ by platform: YouTube's includes replies, Facebook's counts top-level comments only.
|
|
473
473
|
|
|
474
474
|
### Examples
|
|
475
475
|
|
|
@@ -492,7 +492,7 @@ opts = {
|
|
|
492
492
|
sort_order: 'asc', # String | Sort order
|
|
493
493
|
limit: 56, # Integer |
|
|
494
494
|
cursor: 'cursor_example', # String |
|
|
495
|
-
account_id: 'account_id_example' # String | Filter by specific
|
|
495
|
+
account_id: 'account_id_example' # String | Filter by specific account ID
|
|
496
496
|
}
|
|
497
497
|
|
|
498
498
|
begin
|
|
@@ -534,7 +534,7 @@ end
|
|
|
534
534
|
| **sort_order** | **String** | Sort order | [optional][default to 'desc'] |
|
|
535
535
|
| **limit** | **Integer** | | [optional][default to 50] |
|
|
536
536
|
| **cursor** | **String** | | [optional] |
|
|
537
|
-
| **account_id** | **String** | Filter by specific
|
|
537
|
+
| **account_id** | **String** | Filter by specific account ID | [optional] |
|
|
538
538
|
|
|
539
539
|
### Return type
|
|
540
540
|
|
|
@@ -631,7 +631,7 @@ end
|
|
|
631
631
|
|
|
632
632
|
Send private reply
|
|
633
633
|
|
|
634
|
-
Send a
|
|
634
|
+
Send a direct message to the author of a comment. Supported on Instagram and Facebook only. One reply per comment, must be sent within 7 days. Optionally attach interactive elements: `quickReplies` (chips above the keyboard, max 13) or `buttons` (1-3 inline postback/url buttons rendered in the same bubble via Meta's button_template). Chips do not render in the Instagram Message Requests folder. Since late August 2026 Instagram refuses buttons, cards and attachments to commenters who do not follow the account (Meta code 2, subcode 1545133, returned here as a non-retryable 400 that says so), and the failed call still consumes the comment's single private reply. To reach non-followers send plain text and add buttons once they reply. `quickReplies` and `buttons` are mutually exclusive. When the comment's single private reply is spent (by this call or an earlier one) the 400 carries `details.privateReplyConsumed: true`; never retry it.
|
|
635
635
|
|
|
636
636
|
### Examples
|
|
637
637
|
|
|
@@ -704,7 +704,7 @@ end
|
|
|
704
704
|
|
|
705
705
|
Set comment moderation status
|
|
706
706
|
|
|
707
|
-
Set a comment's moderation status. Supported on YouTube only. Use this to work a moderation queue: approve a held comment (`published`), reject it (`rejected`), or send it back for review (`heldForReview`). The request must be authorized by the owner of the channel or video the comment belongs to. You cannot moderate comments on videos you do not own. This is distinct from `POST /v1/inbox/comments/{postId}/{commentId}/hide`, which covers Facebook, Instagram, Threads, and X
|
|
707
|
+
Set a comment's moderation status. Supported on YouTube only. Use this to work a moderation queue: approve a held comment (`published`), reject it (`rejected`), or send it back for review (`heldForReview`). The request must be authorized by the owner of the channel or video the comment belongs to. You cannot moderate comments on videos you do not own. This is distinct from `POST /v1/inbox/comments/{postId}/{commentId}/hide`, which covers Facebook, Instagram, Threads, and X and does not apply to YouTube.
|
|
708
708
|
|
|
709
709
|
### Examples
|
|
710
710
|
|
|
@@ -777,7 +777,7 @@ end
|
|
|
777
777
|
|
|
778
778
|
Unhide comment
|
|
779
779
|
|
|
780
|
-
Unhide a previously hidden comment. Supported by Facebook, Instagram, Threads, and X
|
|
780
|
+
Unhide a previously hidden comment. Supported by Facebook, Instagram, Threads, and X.
|
|
781
781
|
|
|
782
782
|
### Examples
|
|
783
783
|
|
|
@@ -850,7 +850,7 @@ end
|
|
|
850
850
|
|
|
851
851
|
Unlike comment
|
|
852
852
|
|
|
853
|
-
Remove a like from a comment. Supported platforms: Facebook,
|
|
853
|
+
Remove a like from a comment. Supported platforms: Facebook, X, Bluesky, Reddit, LinkedIn, and Instagram in limited release. For Bluesky, the likeUri query parameter is required. Instagram has the same limited release, Facebook Login, `instagram_manage_engagement` and burst-limit constraints as liking.
|
|
854
854
|
|
|
855
855
|
### Examples
|
|
856
856
|
|
|
@@ -927,7 +927,7 @@ end
|
|
|
927
927
|
|
|
928
928
|
Unlike post
|
|
929
929
|
|
|
930
|
-
Remove this account's like from a post. Supported platforms: LinkedIn,
|
|
930
|
+
Remove this account's like from a post. Supported platforms: LinkedIn, X, Facebook, YouTube, Bluesky, and Instagram in limited release. On YouTube this clears the rating. Instagram has the same limited release, Facebook Login, `instagram_manage_engagement` and burst-limit constraints as liking. For Bluesky, `likeUri` (returned when the post was liked) is required. Reddit uses `POST /v1/accounts/{accountId}/reddit-vote` with `direction: 0`.
|
|
931
931
|
|
|
932
932
|
### Examples
|
|
933
933
|
|
data/docs/ConnectApi.md
CHANGED
|
@@ -4,7 +4,7 @@ All URIs are relative to *https://zernio.com/api*
|
|
|
4
4
|
|
|
5
5
|
| Method | HTTP request | Description |
|
|
6
6
|
| ------ | ------------ | ----------- |
|
|
7
|
-
| [**assign_google_business_location**](ConnectApi.md#assign_google_business_location) | **POST** /v1/accounts/{accountId}/gmb-locations/assign | Assign
|
|
7
|
+
| [**assign_google_business_location**](ConnectApi.md#assign_google_business_location) | **POST** /v1/accounts/{accountId}/gmb-locations/assign | Assign Google Business Profile location to another profile |
|
|
8
8
|
| [**complete_telegram_connect**](ConnectApi.md#complete_telegram_connect) | **PATCH** /v1/connect/telegram | Check Telegram status |
|
|
9
9
|
| [**complete_whats_app_phone_selection**](ConnectApi.md#complete_whats_app_phone_selection) | **POST** /v1/connect/whatsapp/select-phone-number | Complete number selection |
|
|
10
10
|
| [**configure_tik_tok_ads_brand_identity**](ConnectApi.md#configure_tik_tok_ads_brand_identity) | **PATCH** /v1/connect/tiktok-ads | Set TikTok brand identity |
|
|
@@ -19,7 +19,7 @@ All URIs are relative to *https://zernio.com/api*
|
|
|
19
19
|
| [**create_pinterest_board**](ConnectApi.md#create_pinterest_board) | **POST** /v1/accounts/{accountId}/pinterest-boards | Create Pinterest board |
|
|
20
20
|
| [**get_connect_url**](ConnectApi.md#get_connect_url) | **GET** /v1/connect/{platform} | Get OAuth connect URL |
|
|
21
21
|
| [**get_facebook_pages**](ConnectApi.md#get_facebook_pages) | **GET** /v1/accounts/{accountId}/facebook-page | List Facebook pages |
|
|
22
|
-
| [**get_gmb_locations**](ConnectApi.md#get_gmb_locations) | **GET** /v1/accounts/{accountId}/gmb-locations | List
|
|
22
|
+
| [**get_gmb_locations**](ConnectApi.md#get_gmb_locations) | **GET** /v1/accounts/{accountId}/gmb-locations | List Google Business Profile locations |
|
|
23
23
|
| [**get_linked_in_organizations**](ConnectApi.md#get_linked_in_organizations) | **GET** /v1/accounts/{accountId}/linkedin-organizations | List LinkedIn orgs |
|
|
24
24
|
| [**get_pending_o_auth_data**](ConnectApi.md#get_pending_o_auth_data) | **GET** /v1/connect/pending-data | Get pending OAuth data |
|
|
25
25
|
| [**get_pinterest_boards**](ConnectApi.md#get_pinterest_boards) | **GET** /v1/accounts/{accountId}/pinterest-boards | List Pinterest boards |
|
|
@@ -28,12 +28,13 @@ All URIs are relative to *https://zernio.com/api*
|
|
|
28
28
|
| [**get_shopify_connect_url**](ConnectApi.md#get_shopify_connect_url) | **GET** /v1/connect/shopify | Get Shopify OAuth connect URL |
|
|
29
29
|
| [**get_subreddit_rules**](ConnectApi.md#get_subreddit_rules) | **GET** /v1/accounts/{accountId}/reddit-subreddits/{subreddit}/rules | Get subreddit rules |
|
|
30
30
|
| [**get_telegram_connect_status**](ConnectApi.md#get_telegram_connect_status) | **GET** /v1/connect/telegram | Generate Telegram code |
|
|
31
|
+
| [**get_whats_app_sdk_config**](ConnectApi.md#get_whats_app_sdk_config) | **GET** /v1/connect/whatsapp/sdk-config | Get Embedded Signup SDK config |
|
|
31
32
|
| [**get_youtube_captions**](ConnectApi.md#get_youtube_captions) | **GET** /v1/accounts/{accountId}/youtube-captions | Get a YouTube video transcript |
|
|
32
33
|
| [**get_youtube_playlists**](ConnectApi.md#get_youtube_playlists) | **GET** /v1/accounts/{accountId}/youtube-playlists | List YouTube playlists |
|
|
33
34
|
| [**handle_o_auth_callback**](ConnectApi.md#handle_o_auth_callback) | **POST** /v1/connect/{platform} | Complete OAuth callback |
|
|
34
35
|
| [**initiate_telegram_connect**](ConnectApi.md#initiate_telegram_connect) | **POST** /v1/connect/telegram | Connect Telegram directly |
|
|
35
36
|
| [**list_facebook_pages**](ConnectApi.md#list_facebook_pages) | **GET** /v1/connect/facebook/select-page | List Facebook pages |
|
|
36
|
-
| [**list_google_business_locations**](ConnectApi.md#list_google_business_locations) | **GET** /v1/connect/googlebusiness/locations | List
|
|
37
|
+
| [**list_google_business_locations**](ConnectApi.md#list_google_business_locations) | **GET** /v1/connect/googlebusiness/locations | List Google Business Profile locations |
|
|
37
38
|
| [**list_instagram_pages**](ConnectApi.md#list_instagram_pages) | **GET** /v1/connect/instagram/select-account | List Pages with a linked Instagram account |
|
|
38
39
|
| [**list_linked_in_organizations**](ConnectApi.md#list_linked_in_organizations) | **GET** /v1/connect/linkedin/organizations | List LinkedIn orgs |
|
|
39
40
|
| [**list_pinterest_boards_for_selection**](ConnectApi.md#list_pinterest_boards_for_selection) | **GET** /v1/connect/pinterest/select-board | List Pinterest boards |
|
|
@@ -41,14 +42,14 @@ All URIs are relative to *https://zernio.com/api*
|
|
|
41
42
|
| [**list_snapchat_profiles**](ConnectApi.md#list_snapchat_profiles) | **GET** /v1/connect/snapchat/select-profile | List Snapchat profiles |
|
|
42
43
|
| [**list_whats_app_phone_numbers**](ConnectApi.md#list_whats_app_phone_numbers) | **GET** /v1/connect/whatsapp/select-phone-number | List numbers for selection |
|
|
43
44
|
| [**select_facebook_page**](ConnectApi.md#select_facebook_page) | **POST** /v1/connect/facebook/select-page | Select Facebook page |
|
|
44
|
-
| [**select_google_business_location**](ConnectApi.md#select_google_business_location) | **POST** /v1/connect/googlebusiness/select-location | Select
|
|
45
|
+
| [**select_google_business_location**](ConnectApi.md#select_google_business_location) | **POST** /v1/connect/googlebusiness/select-location | Select Google Business Profile location |
|
|
45
46
|
| [**select_instagram_account**](ConnectApi.md#select_instagram_account) | **POST** /v1/connect/instagram/select-account | Select the Page whose Instagram account to connect |
|
|
46
47
|
| [**select_linked_in_organization**](ConnectApi.md#select_linked_in_organization) | **POST** /v1/connect/linkedin/select-organization | Select LinkedIn org |
|
|
47
48
|
| [**select_pinterest_board**](ConnectApi.md#select_pinterest_board) | **POST** /v1/connect/pinterest/select-board | Select Pinterest board |
|
|
48
49
|
| [**select_snapchat_profile**](ConnectApi.md#select_snapchat_profile) | **POST** /v1/connect/snapchat/select-profile | Select Snapchat profile |
|
|
49
50
|
| [**set_reddit_post_flair**](ConnectApi.md#set_reddit_post_flair) | **POST** /v1/accounts/{accountId}/reddit-flairs | Set Reddit post flair |
|
|
50
51
|
| [**update_facebook_page**](ConnectApi.md#update_facebook_page) | **PUT** /v1/accounts/{accountId}/facebook-page | Update Facebook page |
|
|
51
|
-
| [**update_gmb_location**](ConnectApi.md#update_gmb_location) | **PUT** /v1/accounts/{accountId}/gmb-locations | Update
|
|
52
|
+
| [**update_gmb_location**](ConnectApi.md#update_gmb_location) | **PUT** /v1/accounts/{accountId}/gmb-locations | Update Google Business Profile location |
|
|
52
53
|
| [**update_linked_in_organization**](ConnectApi.md#update_linked_in_organization) | **PUT** /v1/accounts/{accountId}/linkedin-organization | Switch LinkedIn account type |
|
|
53
54
|
| [**update_pinterest_boards**](ConnectApi.md#update_pinterest_boards) | **PUT** /v1/accounts/{accountId}/pinterest-boards | Set default Pinterest board |
|
|
54
55
|
| [**update_reddit_subreddits**](ConnectApi.md#update_reddit_subreddits) | **PUT** /v1/accounts/{accountId}/reddit-subreddits | Set default subreddit |
|
|
@@ -60,9 +61,9 @@ All URIs are relative to *https://zernio.com/api*
|
|
|
60
61
|
|
|
61
62
|
> <AssignGoogleBusinessLocation200Response> assign_google_business_location(account_id, assign_google_business_location_request)
|
|
62
63
|
|
|
63
|
-
Assign
|
|
64
|
+
Assign Google Business Profile location to another profile
|
|
64
65
|
|
|
65
|
-
Connect a Google Business location onto a DIFFERENT profile by reusing the OAuth grant from an already-connected
|
|
66
|
+
Connect a Google Business Profile location onto a DIFFERENT profile by reusing the OAuth grant from an already-connected Google Business Profile account, with no browser and no re-authorization. Built for agencies whose single Google account has manager access to many client locations and who run one profile per client: connect one location the normal way (browser OAuth), then bulk-assign the rest onto each client's profile via this endpoint. The path `accountId` is a SOURCE connected Google Business Profile account (the token holder); the body `profileId` is the TARGET profile. Returns 409 if the target profile already has a Google Business Profile connection (switch its location with PUT gmb-locations instead).
|
|
66
67
|
|
|
67
68
|
### Examples
|
|
68
69
|
|
|
@@ -76,11 +77,11 @@ Zernio.configure do |config|
|
|
|
76
77
|
end
|
|
77
78
|
|
|
78
79
|
api_instance = Zernio::ConnectApi.new
|
|
79
|
-
account_id = 'account_id_example' # String | A source connected
|
|
80
|
+
account_id = 'account_id_example' # String | A source connected Google Business Profile account whose OAuth grant is reused.
|
|
80
81
|
assign_google_business_location_request = Zernio::AssignGoogleBusinessLocationRequest.new({profile_id: 'profile_id_example', selected_location_id: 'selected_location_id_example'}) # AssignGoogleBusinessLocationRequest |
|
|
81
82
|
|
|
82
83
|
begin
|
|
83
|
-
# Assign
|
|
84
|
+
# Assign Google Business Profile location to another profile
|
|
84
85
|
result = api_instance.assign_google_business_location(account_id, assign_google_business_location_request)
|
|
85
86
|
p result
|
|
86
87
|
rescue Zernio::ApiError => e
|
|
@@ -96,7 +97,7 @@ This returns an Array which contains the response data, status code and headers.
|
|
|
96
97
|
|
|
97
98
|
```ruby
|
|
98
99
|
begin
|
|
99
|
-
# Assign
|
|
100
|
+
# Assign Google Business Profile location to another profile
|
|
100
101
|
data, status_code, headers = api_instance.assign_google_business_location_with_http_info(account_id, assign_google_business_location_request)
|
|
101
102
|
p status_code # => 2xx
|
|
102
103
|
p headers # => { ... }
|
|
@@ -110,7 +111,7 @@ end
|
|
|
110
111
|
|
|
111
112
|
| Name | Type | Description | Notes |
|
|
112
113
|
| ---- | ---- | ----------- | ----- |
|
|
113
|
-
| **account_id** | **String** | A source connected
|
|
114
|
+
| **account_id** | **String** | A source connected Google Business Profile account whose OAuth grant is reused. | |
|
|
114
115
|
| **assign_google_business_location_request** | [**AssignGoogleBusinessLocationRequest**](AssignGoogleBusinessLocationRequest.md) | | |
|
|
115
116
|
|
|
116
117
|
### Return type
|
|
@@ -344,7 +345,7 @@ end
|
|
|
344
345
|
|
|
345
346
|
Connect ads for a platform
|
|
346
347
|
|
|
347
|
-
Unified ads connection endpoint. Creates a dedicated ads SocialAccount for the specified platform. Same-token platforms (facebook, instagram, linkedin, pinterest)
|
|
348
|
+
Unified ads connection endpoint. Creates a dedicated ads SocialAccount for the specified platform. **Same-token platforms (facebook, instagram, linkedin, pinterest).** The ads SocialAccount (metaads, linkedinads, pinterestads) reuses the OAuth token of the parent posting account, but only when an active parent exists and, for facebook and instagram, its stored token carries ads_management and ads_read (linkedin and pinterest need no extra scope). In that case no extra OAuth happens and the response is alreadyConnected: true. When no such parent exists, or the scopes are missing, the endpoint returns an authUrl and a full OAuth round trip is required. When a parent exists but carries no token usable for ad accounts, the call fails with 400 RECONNECT_REQUIRED. Independently of the branch, the call can return 403 ADS_ADDON_REQUIRED without the ads add-on and 402 PAYMENT_REQUIRED when the billing gate is closed. Meta Ads prerequisite: connecting Meta Ads (via facebook or instagram) requires a Facebook Page. Not because the ad account is read through a Page, but because both parent posting accounts are: the facebook flow only offers Pages you manage, and the instagram flow with loginMethod=facebook_login only offers Instagram accounts linked to one of those Pages. Without a Page there is no parent account to inherit a token from. A user who manages no Facebook Page cannot complete this connection, and the facebook flow ends with error=no_facebook_pages. **Separate-token platforms (tiktok, twitter).** Starts the platform-specific marketing API OAuth flow and creates an ads SocialAccount (tiktokads, xads) with its own token. If the ads account already exists, returns alreadyConnected: true. - tiktok: accountId is OPTIONAL. With accountId, the new tiktokads account links to that posting account (parentAccountId set), so Spark Ads + standalone ads using the posting TT_USER identity become available. Without accountId, ads-only mode kicks in: the new tiktokads account has parentAccountId=null and standalone ads use a synthetic CUSTOMIZED_USER (\"Brand Identity\"); Spark Ads are unavailable because TikTok requires a posting account for them. The Brand Identity is configured separately via PATCH /v1/connect/tiktok-ads (or inline on POST /v1/ads/create via the brandIdentity field). - twitter (X Ads): accountId is REQUIRED. There's no ads-only mode, because tweets need to be authored by a real X user. **Standalone platforms (googleads).** Starts the Google Ads OAuth flow and creates a standalone ads SocialAccount (googleads) with no parent. If the account already exists, returns alreadyConnected: true. Ads accounts appear as regular SocialAccount documents with ads platform values (e.g., metaads, tiktokads) in GET /v1/accounts.
|
|
348
349
|
|
|
349
350
|
### Examples
|
|
350
351
|
|
|
@@ -361,8 +362,8 @@ api_instance = Zernio::ConnectApi.new
|
|
|
361
362
|
platform = 'facebook' # String | Platform to connect ads for. Only platforms with ads support are accepted. `instagram` requires an Instagram account connected with loginMethod=facebook_login whose token carries ads_management and ads_read. With an account connected through the default instagram_login flow no ads account can be created; do not use this value for those accounts.
|
|
362
363
|
profile_id = 'profile_id_example' # String | Your Zernio profile ID
|
|
363
364
|
opts = {
|
|
364
|
-
account_id: 'account_id_example', # String | Existing SocialAccount ID. Required for `twitter` (X Ads). Optional for `tiktok
|
|
365
|
-
redirect_url: 'redirect_url_example', # String | Custom URL the browser is sent to once the OAuth flow finishes. Honored on every ads platform, including the separate-token (`tiktok`, `twitter`) and standalone (`googleads`) flows. MUST be an absolute http(s) URL or a custom app scheme for mobile deeplinks (e.g. myapp://callback); a relative path is rejected with 400 INVALID_REDIRECT_URL. On success `tiktok`, `twitter` and `googleads` land on the URL unchanged, while the same-token platforms (`facebook`, `instagram`, `linkedin`, `pinterest`) append `connected`, `profileId`, `accountId`, `username` and, on API-key calls, `connect_token`. On failure the same error contract applies as on GET /v1/connect/{platform}: `error` and `platform` are always appended, other params are optional, and the value list there is not exhaustive.
|
|
365
|
+
account_id: 'account_id_example', # String | Existing SocialAccount ID. Required for `twitter` (X Ads). Optional for `tiktok`: omit to enter ads-only mode (no TikTok posting account linked; ad creation uses a Brand Identity instead of a TT_USER). Ignored for same-token (`facebook`, `instagram`, `linkedin`, `pinterest`) and standalone (`googleads`) platforms.
|
|
366
|
+
redirect_url: 'redirect_url_example', # String | Custom URL the browser is sent to once the OAuth flow finishes. Honored on every ads platform, including the separate-token (`tiktok`, `twitter`) and standalone (`googleads`) flows. MUST be an absolute http(s) URL or a custom app scheme for mobile deeplinks (e.g. myapp://callback); a relative path is rejected with 400 INVALID_REDIRECT_URL. On success `tiktok`, `twitter` and `googleads` land on the URL unchanged, while the same-token platforms (`facebook`, `instagram`, `linkedin`, `pinterest`) append `connected`, `profileId`, `accountId`, `username` and, on API-key calls, `connect_token`. On failure the same error contract applies as on GET /v1/connect/{platform}: `error` and `platform` are always appended, other params are optional, and the value list there is not exhaustive. On the tiktok, twitter and googleads flows `platform` carries the ads platform id (`tiktokads`, `xads`, `googleads`), not the value used in the request path. When omitted, the browser lands on the Zernio dashboard.
|
|
366
367
|
headless: true, # Boolean | Enable headless mode (same-token platforms only)
|
|
367
368
|
force: true, # Boolean | Force a fresh OAuth even when an account already exists. Normally the endpoint returns `alreadyConnected: true` whenever a connected account is found, keying off its active state rather than token liveness. Set `force=true` to bypass that and always receivean `authUrl`. Completing the returned OAuth refreshes the stored token on the existing posting and ads accounts in place.
|
|
368
369
|
ad_account_id: 'act_1330190928038136', # String | Scope ad sync to a single platform ad account. Without this param, sync covers every ad account the connected token can see. Supported on `facebook`/`instagram` (Meta, `act_<digits>`), `linkedin` (bare numeric sponsored-account id), `googleads` (bare customer id digits) and `twitter` (X Ads, base36 account id). `tiktok` scopes advertisers at OAuth and `pinterest` has no ads discovery, so both ignore it. Meta ids are additionally validated against the connected token; unreachable IDs return 400. Setting a scope also removes already synced ads from de-scoped ad accounts. For multiple accounts use `adAccountIds` instead.
|
|
@@ -402,8 +403,8 @@ end
|
|
|
402
403
|
| ---- | ---- | ----------- | ----- |
|
|
403
404
|
| **platform** | **String** | Platform to connect ads for. Only platforms with ads support are accepted. `instagram` requires an Instagram account connected with loginMethod=facebook_login whose token carries ads_management and ads_read. With an account connected through the default instagram_login flow no ads account can be created; do not use this value for those accounts. | |
|
|
404
405
|
| **profile_id** | **String** | Your Zernio profile ID | |
|
|
405
|
-
| **account_id** | **String** | Existing SocialAccount ID. Required for `twitter` (X Ads). Optional for `tiktok`
|
|
406
|
-
| **redirect_url** | **String** | Custom URL the browser is sent to once the OAuth flow finishes. Honored on every ads platform, including the separate-token (`tiktok`, `twitter`) and standalone (`googleads`) flows. MUST be an absolute http(s) URL or a custom app scheme for mobile deeplinks (e.g. myapp://callback); a relative path is rejected with 400 INVALID_REDIRECT_URL. On success `tiktok`, `twitter` and `googleads` land on the URL unchanged, while the same-token platforms (`facebook`, `instagram`, `linkedin`, `pinterest`) append `connected`, `profileId`, `accountId`, `username` and, on API-key calls, `connect_token`. On failure the same error contract applies as on GET /v1/connect/{platform}: `error` and `platform` are always appended, other params are optional, and the value list there is not exhaustive.
|
|
406
|
+
| **account_id** | **String** | Existing SocialAccount ID. Required for `twitter` (X Ads). Optional for `tiktok`: omit to enter ads-only mode (no TikTok posting account linked; ad creation uses a Brand Identity instead of a TT_USER). Ignored for same-token (`facebook`, `instagram`, `linkedin`, `pinterest`) and standalone (`googleads`) platforms. | [optional] |
|
|
407
|
+
| **redirect_url** | **String** | Custom URL the browser is sent to once the OAuth flow finishes. Honored on every ads platform, including the separate-token (`tiktok`, `twitter`) and standalone (`googleads`) flows. MUST be an absolute http(s) URL or a custom app scheme for mobile deeplinks (e.g. myapp://callback); a relative path is rejected with 400 INVALID_REDIRECT_URL. On success `tiktok`, `twitter` and `googleads` land on the URL unchanged, while the same-token platforms (`facebook`, `instagram`, `linkedin`, `pinterest`) append `connected`, `profileId`, `accountId`, `username` and, on API-key calls, `connect_token`. On failure the same error contract applies as on GET /v1/connect/{platform}: `error` and `platform` are always appended, other params are optional, and the value list there is not exhaustive. On the tiktok, twitter and googleads flows `platform` carries the ads platform id (`tiktokads`, `xads`, `googleads`), not the value used in the request path. When omitted, the browser lands on the Zernio dashboard. | [optional] |
|
|
407
408
|
| **headless** | **Boolean** | Enable headless mode (same-token platforms only) | [optional][default to false] |
|
|
408
409
|
| **force** | **Boolean** | Force a fresh OAuth even when an account already exists. Normally the endpoint returns `alreadyConnected: true` whenever a connected account is found, keying off its active state rather than token liveness. Set `force=true` to bypass that and always receivean `authUrl`. Completing the returned OAuth refreshes the stored token on the existing posting and ads accounts in place. | [optional][default to false] |
|
|
409
410
|
| **ad_account_id** | **String** | Scope ad sync to a single platform ad account. Without this param, sync covers every ad account the connected token can see. Supported on `facebook`/`instagram` (Meta, `act_<digits>`), `linkedin` (bare numeric sponsored-account id), `googleads` (bare customer id digits) and `twitter` (X Ads, base36 account id). `tiktok` scopes advertisers at OAuth and `pinterest` has no ads discovery, so both ignore it. Meta ids are additionally validated against the connected token; unreachable IDs return 400. Setting a scope also removes already synced ads from de-scoped ad accounts. For multiple accounts use `adAccountIds` instead. | [optional] |
|
|
@@ -841,7 +842,7 @@ end
|
|
|
841
842
|
|
|
842
843
|
Connect WhatsApp from Embedded Signup
|
|
843
844
|
|
|
844
|
-
|
|
845
|
+
Finish a WhatsApp connection started with Meta's Embedded Signup in your own page (Facebook JavaScript SDK). The code never passes through a `redirect_url`, so `POST /v1/connect/{platform}` cannot accept it. The flow: call `GET /v1/connect/whatsapp/sdk-config`, run `FB.login` with that `configId`, `response_type: 'code'`, `override_default_response_type: true` and `extras: { sessionInfoVersion: '3' }`, read `waba_id` and `phone_number_id` from the `WA_EMBEDDED_SIGNUP` message event Meta posts to your window, then send the `code` from the login response here together with those ids. Always forward `wabaId` and `phoneNumberId`: Zernio connects exactly that number and no picker is shown. Without them Zernio falls back to the first number of the first WhatsApp Business Account the token can reach, which may not be the one the user picked. The Zernio Meta app must list the domain that hosts the popup before `FB.login` will open there. Available on request: send the domains to support.
|
|
845
846
|
|
|
846
847
|
### Examples
|
|
847
848
|
|
|
@@ -1132,7 +1133,7 @@ end
|
|
|
1132
1133
|
|
|
1133
1134
|
> <GetGmbLocations200Response> get_gmb_locations(account_id, opts)
|
|
1134
1135
|
|
|
1135
|
-
List
|
|
1136
|
+
List Google Business Profile locations
|
|
1136
1137
|
|
|
1137
1138
|
Returns Google Business Profile locations the connected account can access, plus the currently selected location. The list is bounded (see hasMore); for accounts that own many locations, use the search or filter query params to find a specific one instead of loading them all, or raise limit to enumerate an account with more than 100 locations.
|
|
1138
1139
|
|
|
@@ -1156,7 +1157,7 @@ opts = {
|
|
|
1156
1157
|
}
|
|
1157
1158
|
|
|
1158
1159
|
begin
|
|
1159
|
-
# List
|
|
1160
|
+
# List Google Business Profile locations
|
|
1160
1161
|
result = api_instance.get_gmb_locations(account_id, opts)
|
|
1161
1162
|
p result
|
|
1162
1163
|
rescue Zernio::ApiError => e
|
|
@@ -1172,7 +1173,7 @@ This returns an Array which contains the response data, status code and headers.
|
|
|
1172
1173
|
|
|
1173
1174
|
```ruby
|
|
1174
1175
|
begin
|
|
1175
|
-
# List
|
|
1176
|
+
# List Google Business Profile locations
|
|
1176
1177
|
data, status_code, headers = api_instance.get_gmb_locations_with_http_info(account_id, opts)
|
|
1177
1178
|
p status_code # => 2xx
|
|
1178
1179
|
p headers # => { ... }
|
|
@@ -1280,7 +1281,7 @@ end
|
|
|
1280
1281
|
|
|
1281
1282
|
Get pending OAuth data
|
|
1282
1283
|
|
|
1283
|
-
Fetch pending OAuth data for headless mode using the pendingDataToken from the redirect URL. **Scope**: This endpoint is used for LinkedIn organizations, Google Business locations, Slack channels, Snapchat profiles, and Pinterest boards, where the selection list is too large to fit in URL params. The redirect carries a `pendingDataToken` instead of the full payload; the response includes the corresponding selection array (e.g. `boards` for Pinterest). WhatsApp, Facebook and other platforms pass selection state directly via URL query params on the redirect (`profileId`, `tempToken`, `step`), no pending record is created, so this endpoint will return 404 for those flows. Use the platform-specific selection endpoint instead (e.g. `/v1/connect/whatsapp/select-phone-number`). Reading the token does not consume it, so this fetch is repeatable until the token expires 1 hour after issuance. Completing the platform selection deletes the pending record, so the token stops working from then on. No authentication required.
|
|
1284
|
+
Fetch pending OAuth data for headless mode using the pendingDataToken from the redirect URL. **Scope**: This endpoint is used for LinkedIn organizations, Google Business Profile locations, Slack channels, Snapchat profiles, and Pinterest boards, where the selection list is too large to fit in URL params. The redirect carries a `pendingDataToken` instead of the full payload; the response includes the corresponding selection array (e.g. `boards` for Pinterest). WhatsApp, Facebook and other platforms pass selection state directly via URL query params on the redirect (`profileId`, `tempToken`, `step`), no pending record is created, so this endpoint will return 404 for those flows. Use the platform-specific selection endpoint instead (e.g. `/v1/connect/whatsapp/select-phone-number`). Reading the token does not consume it, so this fetch is repeatable until the token expires 1 hour after issuance. Completing the platform selection deletes the pending record, so the token stops working from then on. No authentication required.
|
|
1284
1285
|
|
|
1285
1286
|
### Examples
|
|
1286
1287
|
|
|
@@ -1767,6 +1768,72 @@ end
|
|
|
1767
1768
|
- **Accept**: application/json
|
|
1768
1769
|
|
|
1769
1770
|
|
|
1771
|
+
## get_whats_app_sdk_config
|
|
1772
|
+
|
|
1773
|
+
> <GetWhatsAppSdkConfig200Response> get_whats_app_sdk_config
|
|
1774
|
+
|
|
1775
|
+
Get Embedded Signup SDK config
|
|
1776
|
+
|
|
1777
|
+
The public values needed to run Meta's Embedded Signup inside your own page with the Facebook JavaScript SDK instead of the redirect flow: pass `appId` and `graphApiVersion` to `FB.init`, and `configId` as `config_id` to `FB.login`. The popup then reports the WhatsApp Business Account and phone number the user picked through the `WA_EMBEDDED_SIGNUP` message event, and you finish the connection with `POST /v1/connect/whatsapp/embedded-signup`. Because the number comes back from the popup, the user never sees a second number picker. Available on request: `FB.login` only opens on HTTPS domains listed in the Zernio Meta app, so send the domains that will host the popup to support before going live.
|
|
1778
|
+
|
|
1779
|
+
### Examples
|
|
1780
|
+
|
|
1781
|
+
```ruby
|
|
1782
|
+
require 'time'
|
|
1783
|
+
require 'zernio-sdk'
|
|
1784
|
+
# setup authorization
|
|
1785
|
+
Zernio.configure do |config|
|
|
1786
|
+
# Configure Bearer authorization (JWT): bearerAuth
|
|
1787
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
1788
|
+
end
|
|
1789
|
+
|
|
1790
|
+
api_instance = Zernio::ConnectApi.new
|
|
1791
|
+
|
|
1792
|
+
begin
|
|
1793
|
+
# Get Embedded Signup SDK config
|
|
1794
|
+
result = api_instance.get_whats_app_sdk_config
|
|
1795
|
+
p result
|
|
1796
|
+
rescue Zernio::ApiError => e
|
|
1797
|
+
puts "Error when calling ConnectApi->get_whats_app_sdk_config: #{e}"
|
|
1798
|
+
end
|
|
1799
|
+
```
|
|
1800
|
+
|
|
1801
|
+
#### Using the get_whats_app_sdk_config_with_http_info variant
|
|
1802
|
+
|
|
1803
|
+
This returns an Array which contains the response data, status code and headers.
|
|
1804
|
+
|
|
1805
|
+
> <Array(<GetWhatsAppSdkConfig200Response>, Integer, Hash)> get_whats_app_sdk_config_with_http_info
|
|
1806
|
+
|
|
1807
|
+
```ruby
|
|
1808
|
+
begin
|
|
1809
|
+
# Get Embedded Signup SDK config
|
|
1810
|
+
data, status_code, headers = api_instance.get_whats_app_sdk_config_with_http_info
|
|
1811
|
+
p status_code # => 2xx
|
|
1812
|
+
p headers # => { ... }
|
|
1813
|
+
p data # => <GetWhatsAppSdkConfig200Response>
|
|
1814
|
+
rescue Zernio::ApiError => e
|
|
1815
|
+
puts "Error when calling ConnectApi->get_whats_app_sdk_config_with_http_info: #{e}"
|
|
1816
|
+
end
|
|
1817
|
+
```
|
|
1818
|
+
|
|
1819
|
+
### Parameters
|
|
1820
|
+
|
|
1821
|
+
This endpoint does not need any parameter.
|
|
1822
|
+
|
|
1823
|
+
### Return type
|
|
1824
|
+
|
|
1825
|
+
[**GetWhatsAppSdkConfig200Response**](GetWhatsAppSdkConfig200Response.md)
|
|
1826
|
+
|
|
1827
|
+
### Authorization
|
|
1828
|
+
|
|
1829
|
+
[bearerAuth](../README.md#bearerAuth)
|
|
1830
|
+
|
|
1831
|
+
### HTTP request headers
|
|
1832
|
+
|
|
1833
|
+
- **Content-Type**: Not defined
|
|
1834
|
+
- **Accept**: application/json
|
|
1835
|
+
|
|
1836
|
+
|
|
1770
1837
|
## get_youtube_captions
|
|
1771
1838
|
|
|
1772
1839
|
> <GetYoutubeCaptions200Response> get_youtube_captions(account_id, video_id, opts)
|
|
@@ -1921,7 +1988,7 @@ end
|
|
|
1921
1988
|
|
|
1922
1989
|
Complete OAuth callback
|
|
1923
1990
|
|
|
1924
|
-
Exchange the OAuth authorization code for tokens and connect the account to the specified profile. Facebook, Google Business, Snapchat and WhatsApp are not accepted here: their account identity is a destination chosen after OAuth, which this single-shot exchange cannot do. Connect them through the redirect flow from `GET /v1/connect/{platform}`, or, for WhatsApp Embedded Signup, through `POST /v1/connect/whatsapp/embedded-signup`.
|
|
1991
|
+
Exchange the OAuth authorization code for tokens and connect the account to the specified profile. Facebook, Google Business Profile, Snapchat and WhatsApp are not accepted here: their account identity is a destination chosen after OAuth, which this single-shot exchange cannot do. Connect them through the redirect flow from `GET /v1/connect/{platform}`, or, for WhatsApp Embedded Signup, through `POST /v1/connect/whatsapp/embedded-signup`.
|
|
1925
1992
|
|
|
1926
1993
|
### Examples
|
|
1927
1994
|
|
|
@@ -2134,9 +2201,9 @@ end
|
|
|
2134
2201
|
|
|
2135
2202
|
> <ListGoogleBusinessLocations200Response> list_google_business_locations(opts)
|
|
2136
2203
|
|
|
2137
|
-
List
|
|
2204
|
+
List Google Business Profile locations
|
|
2138
2205
|
|
|
2139
|
-
For headless flows. Returns the list of
|
|
2206
|
+
For headless flows. Returns the list of Google Business Profile locations the user can manage. Use pendingDataToken (from the OAuth callback redirect) to list locations without consuming the token, so it remains available for select-location. Use X-Connect-Token header if connecting via API key.
|
|
2140
2207
|
|
|
2141
2208
|
### Examples
|
|
2142
2209
|
|
|
@@ -2164,7 +2231,7 @@ opts = {
|
|
|
2164
2231
|
}
|
|
2165
2232
|
|
|
2166
2233
|
begin
|
|
2167
|
-
# List
|
|
2234
|
+
# List Google Business Profile locations
|
|
2168
2235
|
result = api_instance.list_google_business_locations(opts)
|
|
2169
2236
|
p result
|
|
2170
2237
|
rescue Zernio::ApiError => e
|
|
@@ -2180,7 +2247,7 @@ This returns an Array which contains the response data, status code and headers.
|
|
|
2180
2247
|
|
|
2181
2248
|
```ruby
|
|
2182
2249
|
begin
|
|
2183
|
-
# List
|
|
2250
|
+
# List Google Business Profile locations
|
|
2184
2251
|
data, status_code, headers = api_instance.list_google_business_locations_with_http_info(opts)
|
|
2185
2252
|
p status_code # => 2xx
|
|
2186
2253
|
p headers # => { ... }
|
|
@@ -2296,7 +2363,7 @@ end
|
|
|
2296
2363
|
|
|
2297
2364
|
List LinkedIn orgs
|
|
2298
2365
|
|
|
2299
|
-
Fetch full LinkedIn organization details (logos, vanity names, websites) for custom UI. No authentication required,
|
|
2366
|
+
Fetch full LinkedIn organization details (logos, vanity names, websites) for custom UI. No authentication required, only the tempToken from OAuth.
|
|
2300
2367
|
|
|
2301
2368
|
### Examples
|
|
2302
2369
|
|
|
@@ -2737,9 +2804,9 @@ end
|
|
|
2737
2804
|
|
|
2738
2805
|
> <SelectGoogleBusinessLocation200Response> select_google_business_location(select_google_business_location_request)
|
|
2739
2806
|
|
|
2740
|
-
Select
|
|
2807
|
+
Select Google Business Profile location
|
|
2741
2808
|
|
|
2742
|
-
Complete the headless
|
|
2809
|
+
Complete the headless Google Business Profile flow by saving the user's selected location. The pendingDataToken is returned in your redirect URL after OAuth completes (step=select_location). Tokens and profile data are stored server-side, so only the pendingDataToken is needed here. Use X-Connect-Token header if connecting via API key.
|
|
2743
2810
|
|
|
2744
2811
|
### Examples
|
|
2745
2812
|
|
|
@@ -2761,7 +2828,7 @@ api_instance = Zernio::ConnectApi.new
|
|
|
2761
2828
|
select_google_business_location_request = Zernio::SelectGoogleBusinessLocationRequest.new({profile_id: 'profile_id_example', location_id: 'location_id_example', pending_data_token: 'pending_data_token_example'}) # SelectGoogleBusinessLocationRequest |
|
|
2762
2829
|
|
|
2763
2830
|
begin
|
|
2764
|
-
# Select
|
|
2831
|
+
# Select Google Business Profile location
|
|
2765
2832
|
result = api_instance.select_google_business_location(select_google_business_location_request)
|
|
2766
2833
|
p result
|
|
2767
2834
|
rescue Zernio::ApiError => e
|
|
@@ -2777,7 +2844,7 @@ This returns an Array which contains the response data, status code and headers.
|
|
|
2777
2844
|
|
|
2778
2845
|
```ruby
|
|
2779
2846
|
begin
|
|
2780
|
-
# Select
|
|
2847
|
+
# Select Google Business Profile location
|
|
2781
2848
|
data, status_code, headers = api_instance.select_google_business_location_with_http_info(select_google_business_location_request)
|
|
2782
2849
|
p status_code # => 2xx
|
|
2783
2850
|
p headers # => { ... }
|
|
@@ -3238,9 +3305,9 @@ end
|
|
|
3238
3305
|
|
|
3239
3306
|
> <UpdateGmbLocation200Response> update_gmb_location(account_id, update_gmb_location_request)
|
|
3240
3307
|
|
|
3241
|
-
Update
|
|
3308
|
+
Update Google Business Profile location
|
|
3242
3309
|
|
|
3243
|
-
Switch which
|
|
3310
|
+
Switch which Google Business Profile location is active for a connected account.
|
|
3244
3311
|
|
|
3245
3312
|
### Examples
|
|
3246
3313
|
|
|
@@ -3258,7 +3325,7 @@ account_id = 'account_id_example' # String |
|
|
|
3258
3325
|
update_gmb_location_request = Zernio::UpdateGmbLocationRequest.new({selected_location_id: 'selected_location_id_example'}) # UpdateGmbLocationRequest |
|
|
3259
3326
|
|
|
3260
3327
|
begin
|
|
3261
|
-
# Update
|
|
3328
|
+
# Update Google Business Profile location
|
|
3262
3329
|
result = api_instance.update_gmb_location(account_id, update_gmb_location_request)
|
|
3263
3330
|
p result
|
|
3264
3331
|
rescue Zernio::ApiError => e
|
|
@@ -3274,7 +3341,7 @@ This returns an Array which contains the response data, status code and headers.
|
|
|
3274
3341
|
|
|
3275
3342
|
```ruby
|
|
3276
3343
|
begin
|
|
3277
|
-
# Update
|
|
3344
|
+
# Update Google Business Profile location
|
|
3278
3345
|
data, status_code, headers = api_instance.update_gmb_location_with_http_info(account_id, update_gmb_location_request)
|
|
3279
3346
|
p status_code # => 2xx
|
|
3280
3347
|
p headers # => { ... }
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **code** | **String** | Authorization code from the
|
|
7
|
+
| **code** | **String** | Authorization code from the FB.login response (authResponse.code) | |
|
|
8
8
|
| **profile_id** | **String** | | |
|
|
9
|
-
| **waba_id** | **String** |
|
|
10
|
-
| **phone_number_id** | **String** |
|
|
11
|
-
| **is_coexistence** | **Boolean** |
|
|
9
|
+
| **waba_id** | **String** | waba_id from the WA_EMBEDDED_SIGNUP message event | [optional] |
|
|
10
|
+
| **phone_number_id** | **String** | phone_number_id from the WA_EMBEDDED_SIGNUP message event. With wabaId it skips the number picker. | [optional] |
|
|
11
|
+
| **is_coexistence** | **Boolean** | Set when the popup ended with the FINISH_WHATSAPP_BUSINESS_APP_ONBOARDING event, so the number stays live in the WhatsApp Business app | [optional] |
|
|
12
12
|
| **expected_phone_number** | **String** | Rejects the connect when Meta returns a different number | [optional] |
|
|
13
13
|
|
|
14
14
|
## Example
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Zernio::Conversation
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **id** | **String** | Internal conversation ID | |
|
|
8
|
+
| **platform** | **String** | | |
|
|
9
|
+
| **platform_conversation_id** | **String** | | |
|
|
10
|
+
| **participant_id** | **String** | Contact's platform identifier (IGSID, PSID, wa_id, etc.) | [optional] |
|
|
11
|
+
| **participant_name** | **String** | | |
|
|
12
|
+
| **participant_username** | **String** | Contact's handle when the platform exposes one | [optional] |
|
|
13
|
+
| **participant_picture** | **String** | | [optional] |
|
|
14
|
+
| **status** | **String** | | |
|
|
15
|
+
| **contact_id** | **String** | Zernio CRM Contact ID for the participant, when one exists. Resolved by joining `participantId` to the ContactChannel collection (same join used by message.*, reaction.received, and call.* webhooks). Best-effort: omitted when no channel matches or `participantId` is absent. Lets integrators seed the CRM straight from `conversation.started` without waiting for the first `message.*` event. | [optional] |
|
|
16
|
+
|
|
17
|
+
## Example
|
|
18
|
+
|
|
19
|
+
```ruby
|
|
20
|
+
require 'zernio-sdk'
|
|
21
|
+
|
|
22
|
+
instance = Zernio::Conversation.new(
|
|
23
|
+
id: null,
|
|
24
|
+
platform: null,
|
|
25
|
+
platform_conversation_id: null,
|
|
26
|
+
participant_id: null,
|
|
27
|
+
participant_name: null,
|
|
28
|
+
participant_username: null,
|
|
29
|
+
participant_picture: null,
|
|
30
|
+
status: null,
|
|
31
|
+
contact_id: null
|
|
32
|
+
)
|
|
33
|
+
```
|
|
34
|
+
|