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

# Action Items

> Per-event task lists that keep your team aligned on what needs to happen before a tour departs

export const StatusLabel = ({value, showLabel = true}) => {
  let label = "";
  let color = "";
  let svg = null;
  switch (value) {
    case "todo":
      label = "Todo";
      color = "#71717a";
      svg = <svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" style={{
        width: "1em",
        height: "1em",
        flexShrink: 0
      }}>
          <circle cx="12" cy="12" r="9" stroke="currentColor" strokeWidth="2" strokeDasharray="3 3" />
        </svg>;
      break;
    case "in_progress":
      label = "In progress";
      color = "#d97706";
      svg = <svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" style={{
        width: "1em",
        height: "1em",
        flexShrink: 0
      }}>
          <circle cx="12" cy="12" r="9" stroke="currentColor" strokeWidth="2" />
          <path d="M12 12 L12 4 A8 8 0 0 1 20 12 Z" fill="currentColor" />
        </svg>;
      break;
    case "done":
      label = "Done";
      color = "#16a34a";
      svg = <svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" style={{
        width: "1em",
        height: "1em",
        flexShrink: 0
      }}>
          <circle cx="12" cy="12" r="10" fill="currentColor" />
          <path d="M7 12.5l3.5 3L17 9.5" stroke="white" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" fill="none" />
        </svg>;
      break;
    case "cancelled":
      label = "Cancelled";
      color = "#a1a1aa";
      svg = <svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" style={{
        width: "1em",
        height: "1em",
        flexShrink: 0
      }}>
          <circle cx="12" cy="12" r="10" fill="currentColor" />
          <path d="M8.5 8.5 L15.5 15.5 M15.5 8.5 L8.5 15.5" stroke="white" strokeWidth="2" strokeLinecap="round" fill="none" />
        </svg>;
      break;
    default:
      return null;
  }
  return <span style={{
    display: "inline-flex",
    alignItems: "center",
    gap: "0.25em",
    verticalAlign: "middle",
    lineHeight: 1,
    color,
    marginTop: "-2px",
    fontWeight: 500
  }}>
      {svg}
      {showLabel && <span style={{
    color: "inherit"
  }}>{label}</span>}
    </span>;
};

export const PriorityLabel = ({level, showLabel = true}) => {
  let label = "";
  let color = "";
  let svg = null;
  switch (level) {
    case "none":
      label = "None";
      color = "#71717a";
      svg = <svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" style={{
        width: "1em",
        height: "1em",
        flexShrink: 0
      }}>
          <rect x="2" y="10.75" width="5" height="2.5" rx="1.25" fill="currentColor" />
          <rect x="9.5" y="10.75" width="5" height="2.5" rx="1.25" fill="currentColor" />
          <rect x="17" y="10.75" width="5" height="2.5" rx="1.25" fill="currentColor" />
        </svg>;
      break;
    case "low":
      label = "Low";
      color = "#71717a";
      svg = <svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" style={{
        width: "1em",
        height: "1em",
        flexShrink: 0
      }}>
          <rect x="2" y="14.5" width="5" height="7.5" rx="1.5625" fill="currentColor" />
          <rect x="9.5" y="8.25" width="5" height="13.75" rx="1.5625" fill="currentColor" opacity="0.2" />
          <rect x="17" y="2" width="5" height="20" rx="1.5625" fill="currentColor" opacity="0.2" />
        </svg>;
      break;
    case "medium":
      label = "Medium";
      color = "#3f3f46";
      svg = <svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" style={{
        width: "1em",
        height: "1em",
        flexShrink: 0
      }}>
          <rect x="2" y="14.5" width="5" height="7.5" rx="1.5625" fill="currentColor" />
          <rect x="9.5" y="8.25" width="5" height="13.75" rx="1.5625" fill="currentColor" />
          <rect x="17" y="2" width="5" height="20" rx="1.5625" fill="currentColor" opacity="0.2" />
        </svg>;
      break;
    case "high":
      label = "High";
      color = "#d97706";
      svg = <svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" style={{
        width: "1em",
        height: "1em",
        flexShrink: 0
      }}>
          <rect x="2" y="14.5" width="5" height="7.5" rx="1.5625" fill="currentColor" />
          <rect x="9.5" y="8.25" width="5" height="13.75" rx="1.5625" fill="currentColor" />
          <rect x="17" y="2" width="5" height="20" rx="1.5625" fill="currentColor" />
        </svg>;
      break;
    case "urgent":
      label = "Urgent";
      color = "#dc2626";
      svg = <svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" style={{
        width: "1em",
        height: "1em",
        flexShrink: 0
      }}>
          <path d="M20 2C21.1046 2 22 2.89543 22 4V20C22 20.8629 20.8629 22 20 22H4C3.13706 22 2 20.8629 2 20V4C2 3.13706 3.13706 2 4 2H20ZM12.0281 15.6206C11.3225 15.6206 10.75 16.1919 10.75 16.8975C10.75 17.603 11.3225 18.1755 12.0281 18.1755H12.0623C12.7678 18.1755 13.3403 17.603 13.3403 16.8975C13.3403 16.1919 12.7678 15.6206 12.0623 15.6206H12.0281ZM12.0452 5.75C11.3976 5.75 10.8721 6.27554 10.8721 6.9231V9.40723C10.8721 10.6387 11.04 12.0024 11.1772 13.2793C11.225 13.7231 11.5988 14.063 12.0452 14.063C12.4914 14.0629 12.8641 13.723 12.9119 13.2793C13.0491 12.0024 13.217 10.6387 13.217 9.40723V6.9231C13.217 6.2756 12.6926 5.75009 12.0452 5.75Z" fill="currentColor" />
        </svg>;
      break;
    default:
      return null;
  }
  return <span style={{
    display: "inline-flex",
    alignItems: "center",
    gap: "0.25em",
    verticalAlign: "middle",
    lineHeight: 1,
    color,
    marginTop: "-2px",
    fontWeight: 500
  }}>
      {svg}
      {showLabel && <span style={{
    color: "inherit"
  }}>{label}</span>}
    </span>;
};

## What is an action item?

An action item is a single task tied to one of your events — "call the client," "confirm the minibus," "upload the tickets." Each item has a title, an owner, and a status you can move through as the work gets done.

Action items live inside the event detail panel. Open any event (from the calendar, the agenda, or anywhere you can click into a booking) and you'll find them in the right-hand column. That's the single place they're created, edited, and marked done.

<Tip>
  If you find yourself repeating the same items on every event of a given
  experience, set them up as a [template](/features/preflight/action-items/templates)
  instead. Helm will create them for you every time a new booking comes in.
</Tip>

## Creating an action item

From the event detail panel:

<Steps>
  <Step title="Open the action items section">
    It's one of the sections inside the event's right-hand panel. If nothing's
    there yet, you'll see an empty state with a button to add the first item.
  </Step>

  <Step title="Click 'Add item'">
    A new row appears, ready for a title. Hit enter to save a minimal item —
    everything else can be added later.
  </Step>

  <Step title="Fill in the details">
    Click the new row to open the editor, where you can set the description,
    pick a due date, assign it to one or more teammates, add labels, attach
    files, and more.
  </Step>
</Steps>

## The fields

Every action item has the same set of fields. Most are optional.

<AccordionGroup>
  <Accordion title="Title">
    The short name of the task — what you'll see at a glance in the list. Keep
    it punchy; the description is where details go.
  </Accordion>

  <Accordion title="Description">
    A rich-text block below the title. Use it for instructions, links, or
    context that helps whoever picks up the task.
  </Accordion>

  <Accordion title="Due date">
    The specific date and time this item is due. Items past their due date show
    up in [Triage](/features/preflight/triage) as **overdue**, and deadline
    reminders fire based on how far away the date is.
  </Accordion>

  <Accordion title="Assignees">
    One or more teammates who are on the hook for the item. Being assigned
    also subscribes you to the item by default, so you're notified about
    changes — though you can unsubscribe from notifications while staying
    assigned (see [Subscriptions](/features/preflight/action-items/subscriptions)).
    Items with no assignee show up in [Triage](/features/preflight/triage)
    as **unassigned** — a prompt to either assign them or resolve them.
  </Accordion>

  <Accordion title="Priority">
    A visual tag from <PriorityLabel level="none" /> up to <PriorityLabel level="urgent" />. Priority
    affects sort order in Triage for items assigned to you, and it's how
    you signal "this one matters more" to teammates scanning the list.
  </Accordion>

  <Accordion title="Status">
    Four states an item can be in:

    * <StatusLabel value="todo" /> — hasn't been started yet
    * <StatusLabel value="in_progress" /> — someone's working on it
    * <StatusLabel value="done" /> — complete, no action needed
    * <StatusLabel value="cancelled" /> — no longer relevant, will not be done

    Items in **Todo** and **In progress** are still open; items in **Done** and
    **Cancelled** are closed and stop generating notifications or Triage
    entries.
  </Accordion>

  <Accordion title="Labels">
    Short colored tags (like "urgent," "paperwork," "client-request") you
    define once for your organization and reuse across items. Admins set up
    the available labels; every team member can apply them.
  </Accordion>

  <Accordion title="Attachments">
    Upload any files directly onto an item — a booking confirmation, a scanned
    ticket, a client's photo. Drag and drop works inside the editor.
  </Accordion>

  <Accordion title="Dependencies">
    Two ways to link items together:

    * **Blocks** — this item is holding something else up
    * **Blocked by** — this item is waiting on something else

    Use it for items that must be done in order — "pick up the permits" blocks
    "hand them to the guide," for example.
  </Accordion>
</AccordionGroup>

## Viewing action items

In addition to the per-event panel, you'll see action items in several other places:

* **In Triage**, via one of three signals: overdue, unassigned, or assigned to me (see [Signals](/features/preflight/triage/signals)).
* **In the activity history of each event**, where every change to an item is recorded (status changes, assignments, edits).
* **In email and in-app notifications** if you're a subscriber to the item (see [Notifications](/features/preflight/action-items/notifications)).

## Editing and acting on an item

Click any row to open the full editor. From there you can edit every field in one place.

For quicker changes, **right-click the row** to open the context menu. It exposes the most common actions without opening the editor:

* Change the status
* Change the priority
* Change the due date
* Add or remove assignees
* Add or remove labels
* Follow or unfollow the item
* Delete the item

<Note>
  Some items are created automatically by Helm — **system items** that can't
  be deleted, only marked done or cancelled. They show up alongside your
  manual items but behave a little differently: their title and description
  are fixed, and the delete option isn't available on them.
</Note>

## Up next

<CardGroup cols={3}>
  <Card title="Templates" icon="copy" href="/features/preflight/action-items/templates">
    Set up a checklist once per experience, have it auto-create on every new
    booking.
  </Card>

  <Card title="Subscriptions" icon="bell" href="/features/preflight/action-items/subscriptions">
    Who gets notified about which changes — assignees, followers, and event
    followers.
  </Card>

  <Card title="Notifications" icon="envelope" href="/features/preflight/action-items/notifications">
    Configure deadline reminders, change notifications, and new-booking
    summaries per situation.
  </Card>
</CardGroup>
