A tap on an ice breaker, menu item or Get Started sends its
payload, which you catch with a BUTTON_CLICKED flow. That’s how “tap Pricing → get the price list” works.
Every Facebook persistent menu comes with a Get Started button. Its payload is GET_STARTED unless you set getStartedPayload. A BUTTON_CLICKED flow with "payloads": ["GET_STARTED"] makes a nice welcome message.
Save, Then Sync
Saving and pushing to the platform are two separate calls, so you can prepare changes safely. 1. Save:PUT /api/v1/automation-provider-settings/:socialAccountId/:type
:type is INSTAGRAM_ICE_BREAKERS or FACEBOOK_PERSISTENT_MENU, and platform in the body has to match it. Saving only stores the config and sets the status to DRAFT (or DISABLED, if you send "status": "DISABLED"). Whatever you synced before stays live on the platform until you sync again.
composerInputDisabled: true hides the text box, so people can only use the menu. Use it carefully.
2. Sync: POST /api/v1/automation-provider-settings/:id/sync
This pushes the saved config to Instagram or Facebook. If the platform rejects it, the call returns an error with the platform’s message and the setting keeps its previous status. Otherwise the response tells you how it went:
To remove ice breakers or the menu, save the setting with
"status": "DISABLED" and sync it. Removing the Facebook menu also removes the Get Started button. Reconnected an account? Sync again to be safe.
List what you have with GET /api/v1/automation-provider-settings?teamId=team_123 (filters: platform, socialAccountId, type, status, plus offset and limit). The list returns { items, total }, most recently updated first. Every other endpoint here returns the setting: