> ## Documentation Index
> Fetch the complete documentation index at: https://docs.e6data.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Add an action and an approval

> Let a workflow change something in the world, with an optional frozen-plan approval by email or Slack.

export const DocMeta = ({type, applies, owner}) => {
  const LABELS = {
    tutorial: "Tutorial",
    "how-to": "How-to guide",
    explanation: "Explanation",
    reference: "Reference"
  };
  return <div className="e6-meta">
      <span className={type === "how-to" || type === "tutorial" ? "e6-eyebrow" : "e6-eyebrow e6-eyebrow--quiet"}>{LABELS[type] || type}</span>
      {applies ? <span>Applies to: {applies}</span> : null}
      {owner ? <span>Owner: {owner}</span> : null}
    </div>;
};

<DocMeta type="how-to" applies="All deployments" />

An action step lets a workflow do more than read: update an operational system, send a corrective notice, open a ticket or publish a report.

## Add an action step

Declare a terminal `action` step with:

* A static directive, or the Slack directive source.
* An approval setting:
  * `approval: false` for deliberate auto-execution.
  * `approval: true` for the built-in approval.
  * An approval-policy ID, to use a configured policy.

## The action lifecycle

<Steps>
  <Step title="Plan">AgentFlow builds a concrete execution plan from the directive and earlier outputs.</Step>
  <Step title="Freeze">The exact plan and its input context are frozen.</Step>
  <Step title="Approve, when required">The frozen plan goes through the configured email or Slack policy.</Step>
  <Step title="Execute">The frozen plan runs after approval, or immediately when approval is off.</Step>
  <Step title="Audit">The plan, decisions, changes, result and audit events are kept.</Step>
</Steps>

## Approval policies

Set approval policies in the project's **Settings** under **Action policies**. Policies support:

* Email or Slack approvers
* Reminders and escalation levels
* An exhaust behavior, such as rejection or expiration

An approver can approve, reject, or request bounded changes. A change request makes AgentFlow replan in a controlled way.

Approval is an explicit policy, not something every action gets automatically. Match the control to the consequence of the action.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.