Changes data; reads are on `scenarios`. Automation scenarios. Actions: create (3 mutually-exclusive modes: template_id clones a template; prompt triggers async AI generation; triggers/actions persist a direct JSON definition. Returns { scenario }); update (params: id [required]; prompt is mutually exclusive with triggers/actions; actions is the COMPLETE list — omitted existing actions are destroyed; triggers replace all existing triggers only when no item has an id, otherwise unlisted triggers are kept. Returns { scenario }); trigger (run a scenario for contacts, params: scenario_id [required], contacts [required], data. Returns { message, scenario_id, triggered_contact_ids }); test (run a scenario once for ONE contact, even if inactive; really sends the scenario's messages to that contact and is excluded from metrics, params: scenario_id [required], contact [required]. Returns { message, scenario_id, contact_id, execution_id }); delete (permanently delete a scenario and its triggers/actions, params: id [required]. Returns { message }). Call get_action_types and get_trigger_types first when building triggers/actions. Shortcut worth checking before you build anything: to reply to people who comment on ONE specific post and DM them a link, use the `medias` tool's `attach_comment_to_dm` action instead — it targets the post, creates the link and fills in every step. Build a scenario here for anything wider (all posts, the next post, caption matching) or for a different flow.