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

# Triggers, outcomes, and logic in Box Automate

export const MultiRelatedLinks = ({sections = []}) => {
  if (!sections || sections.length === 0) {
    return null;
  }
  return <div className="space-y-8">
      {sections.map((section, index) => <RelatedLinks key={index} title={section.title} items={section.items} />)}
    </div>;
};

export const RelatedLinks = ({title, items = []}) => {
  const getBadgeClass = badge => {
    if (!badge) return "badge-default";
    const badgeType = badge.toLowerCase().replace(/\s+/g, "-");
    return `badge-${badge === "ガイド" ? "guide" : badgeType}`;
  };
  if (!items || items.length === 0) {
    return null;
  }
  return <div className="my-8">
      {}
      <h3 className="text-sm font-bold uppercase tracking-wider mb-4">{title}</h3>

      {}
      <div className="flex flex-col gap-3">
        {items.map((item, index) => <a key={index} href={item.href} className="py-2 px-3 rounded related_link hover:bg-[#f2f2f2] dark:hover:bg-[#111827] flex items-center gap-3 group no-underline hover:no-underline border-b-0">
            {}
            <span className={`px-2 py-1 rounded-full text-xs font-semibold uppercase tracking-wide flex-shrink-0 ${getBadgeClass(item.badge)}`}>
              {item.badge}
            </span>

            {}
            <span className="text-base">{item.label}</span>
          </a>)}
      </div>
    </div>;
};

export const Link = ({href, children, className, ...props}) => {
  const localizedHref = href;
  return <a href={localizedHref} className={className} {...props}>
      {children}
    </a>;
};

Box Automate runs **workflows**: directed graphs of steps that start from a
**trigger** and run **outcomes** until an end state is reached. In the workflow
builder, you place **triggers** and **outcomes** on a canvas; outcomes are the
automated steps the workflow performs (this guide uses **outcomes** for the same
idea when talking about integration). Triggers are content-aware and can be scoped
to folders or metadata. Exact trigger and action types available in your tenant
depend on product configuration.

## Triggers

A trigger defines when a new **run** of a workflow should begin.

### Common trigger types

* **File events** — When a file is uploaded, moved, copied, downloaded, or deleted; also preview, lock, unlock, watermark removed, add collaborator, classification applied, or file-with-metadata scenarios.
* **Folder events** — When a folder is created, moved, copied, downloaded, or deleted, or when a collaborator is added.
* **Tasks** — When a general task or an approval task completes (including accepted or rejected approval outcomes).
* **File Request** — When someone completes a File Request form and submits content to the designated Box folder.
* **Box Sign** — Sign events such as completed, declined, expired, or cancelled.
* **Metadata** — When a specific metadata template is applied or a specific file or folder.
* **Manual start** — A user starts the flow from the file or folder in the Box web app.
* **Form submissions** — If enabled for your plan (for example Enterprise Advanced+), a workflow starts when a designated Box Form is submitted.
* **HTTPS request** — An external system starts a run by sending an HTTP request to a **unique URL** that Box Automate assigns to the workflow.

## Outcomes

**Outcomes** are the steps that run after a trigger fires (called **outcomes** in
the builder). You can chain multiple outcomes and pass data between steps with
variables.

**Key outcome capabilities**

* **File outcomes** — Move, copy, rename, delete, lock, unlock, add or remove watermark, add or remove collaborators, apply classification, and related file operations.
* **Folder outcomes** — Create, move, copy, rename, delete, restore, add or remove collaborators, apply classification, and related folder operations.
* **Collaboration** — Add or remove collaborators on files or folders dynamically.
* **Task assignments** — Assign approval tasks or general tasks to users or groups, with instructions and due dates.
* **Notifications** — Send email to recipients; subject and body can use variables (for example the person who started the workflow).
* **AI and advanced** — Box AI for metadata extraction, summarization, or Q\&A; options such as document generation (DocGen) and requesting signatures (Box Sign). Prefer an approval or review step after AI steps when results must be verified.
* **Metadata** — Apply, update, or extract metadata (including with AI) for files and folders. Treat agent output as potentially unpredictable and add human review before critical next steps when needed.

## Logic

Workflow logic controls branching and data flow between steps.

* **Branching** — Route the workflow on conditions (for example, if an approval task is rejected, move content to a different folder than if it were approved).
* **Loops**
  * **For each** — Iterate over a list of users, files, or all files in a folder.
  * **Loop back (go back)** — Return the flow to a previous step, with a configurable maximum loop count.
* **Variables** — Reuse information from earlier steps in later outcomes (for example, a rename step can use a metadata value from a prior AI step or the name of the user who uploaded the file).
* **Merging** — After parallel branches, merge back to a single path before a final outcome.

When integrating through an HTTPS request,
you may also use **conditions** on field values, metadata, or structured AI
output; **JSONPath** or similar approaches to read nested payload fields; and
**AI outputs** as inputs to conditions or downstream outcomes where supported.

<RelatedLinks
  title="RELATED GUIDES"
  items={[
{ label: translate("Box Automate overview"), href: "/guides/box-automate/index", badge: "GUIDE" },
{ label: translate("Get started with Box Automate"), href: "/guides/box-automate/getting-started-box-automate", badge: "GUIDE" 
},
]}
/>
