Instagram accounts; comment_reply also on Threads. trigger depends on kind:
- comment_to_dm, comment_reply: { scope: post | any | next | post_target, platform_post_ids?, keywords, match: any | contains | exact, include_replies? }
- dm_keyword: { keywords, match: contains | exact }
- story_reply: { keywords, match }
- default_reply: { cooldown_hours? (1-168, default 24) }
- story_mention: {}
- ice_breaker: { questions: [{ question, payload }] } (1-4) actions.message is the DM (text, up to 3 buttons); comment_reply only takes public_replies (3-5). With post_target_id, one automation per post target: asking again gives back the same one.
Requires the write scope.
bearerAuthorizationBearer <token>An API key (tb_live_...) from the dashboard, or an OAuth access token.
mulaichat-workspace?stringLimits an owner key to one profile (id or external_id). Unknown: 404 profile_not_found.
application/json- body
account_id*stringuuidkind*string"comment_to_dm""dm_keyword""default_reply""story_mention""story_reply""ice_breaker""comment_reply"name*string1 <= length <= 100enabled?booleantruetrigger*actions*once_per_person?booleantruemark_automated?booleanfalsepost_target_id?stringuuidThe automation.
application/json- response
id*stringuuidprofile_id*stringuuidaccount_id*stringuuidkind*string"comment_to_dm""dm_keyword""default_reply""story_mention""story_reply""ice_breaker""comment_reply"name*stringenabled*booleanenabled_at*|Comments and messages from before this are never acted on.
trigger*Its fields depend on kind.
actions*post_target_id*|nullonce_per_person*booleanmark_automated*booleanstats*created_at*stringdate-timeupdated_at*stringdate-timecurl -X POST 'https://api.mulaichat.com/v1/automations' \ -H 'Content-Type: application/json' \ -d '{ "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65", "kind": "comment_to_dm", "name": "string", "trigger": { "property1": null, "property2": null }, "actions": {}}'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "profile_id": "bfcb6779-b1f9-41fc-92d7-88f8bc1d12e8", "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65", "kind": "comment_to_dm", "name": "string", "enabled": true, "enabled_at": "2019-08-24T14:15:22Z", "trigger": { "property1": null, "property2": null }, "actions": { "message": { "text": "string", "buttons": [ { "type": "web_url", "title": "string", "url": "http://example.com" } ] }, "react": true, "timing": { "delay_min_seconds": 0, "delay_max_seconds": 0, "dm_gap_min_seconds": 0, "dm_gap_max_seconds": 0 }, "public_replies": [ "string" ], "track_clicks": true, "follow_gate": { "ask_text": "string", "button_title": "string", "retry_text": "string" } }, "post_target_id": "faaf0581-1c6b-48b7-9144-53e90e8fcc07", "once_per_person": true, "mark_automated": true, "stats": { "triggered": 0, "sent": 0, "skipped": 0, "failed": 0, "clicked": 0, "unlocked": 0, "last_triggered_at": "2019-08-24T14:15:22Z" }, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z"}Move an account to another profile POST
profile_id is the id or external_id of the destination. Comments and statistics move with the account; existing posts stay in their profile. An account with posts waiting to publish: 409 account_has_scheduled_posts. Requires the write scope. Owner key or session only: a profile key gets 403 owner_key_required.
Delete a DM automation DELETE
Requires the write scope.