> ## 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.

# Notifications

> Configure deadline reminders, change notifications, and new-booking summaries — per situation, with presets and custom offsets

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>;
};

## Where notification preferences live

Go to **Settings → Profile → Notifications** and scroll to the **Action items** section. Everything described on this page lives there.

## Start with a preset

The fastest way to set up action item notifications is to pick one of four presets. Each applies a sensible set of defaults across every subscription source at once.

<AccordionGroup>
  <Accordion title="Standard — Recommended">
    Full visibility on items assigned to you, lighter on bulk-assigned items
    and items you watch. The default for new users, and what most teams want.
  </Accordion>

  <Accordion title="Everything">
    Notify me about every change to every item I'm connected to. Use this if
    you want zero chance of missing something, and you're comfortable with
    an active inbox.
  </Accordion>

  <Accordion title="Essentials">
    Completions and deadline alerts. Skip metadata edits. A middle ground
    between Standard and Minimal — you hear when items get finished or come
    due, but not every little title or label change.
  </Accordion>

  <Accordion title="Minimal">
    Completions and deadline alerts on items assigned to you. Nothing else.
    Good if you only want to hear about your own work, and only at the key
    moments.
  </Accordion>
</AccordionGroup>

Pick a preset and you're done — every subscription you have uses those defaults from that point forward.

## Customize per situation

If a preset is close but not quite right, expand the **Customize per situation** section and fine-tune it. Your customizations stack on top of the preset — change something, and only that specific setting departs from the preset; everything else still follows it.

Customizations are grouped by **situation** — the way you ended up subscribed:

<Tabs>
  <Tab title="Assigned to me">
    Items a teammate explicitly assigned to you. The defaults here tend to
    be the loudest, since you're accountable for the work.
  </Tab>

  <Tab title="Bulk-assigned">
    Items a template assigned to you when a new booking was created. The
    defaults here are quieter — bulk assignments can fire several items at
    once, and you usually just want to know they exist, not hear about
    every edit to each one.
  </Tab>

  <Tab title="Watching">
    Items you followed, either individually or by following a whole event
    — plus items you created yourself. This tab splits into sub-sections
    so you can set different defaults for "items I created" versus "items
    I chose to follow."
  </Tab>
</Tabs>

Inside each situation, you toggle notifications on a set of change types.

## What you can be notified about

The change types you can toggle, grouped as they appear in the settings:

<AccordionGroup>
  <Accordion title="Status & activity">
    * **Status changes** — choose Any change / Completions only / Off.
      "Completions only" is the sweet spot: you hear when items get done or
      cancelled, but not every intermediate Todo ↔ In progress flip.
    * **Item deleted** — on or off. When something is removed outright.
  </Accordion>

  <Accordion title="Assignment & scheduling">
    * **Priority changes** — someone raises or lowers the priority.
    * **Due date changes** — the date is added, removed, or moved.
    * **Assignee changes** — people are added to or removed from the
      assignees list.
  </Accordion>

  <Accordion title="Content edits">
    * **Labels** — labels added or removed.
    * **Attachments** — choose Off / Added / Removed / All.
    * **Dependencies** — choose Off / Blocks / Blocked by / All. For when
      an item gets linked to another item it blocks or is blocked by.
    * **Title or description** — text edits to the title or body.
  </Accordion>

  <Accordion title="Deadline alerts">
    * **Approaching due date** — a reminder fires at one of your configured
      offsets before the due date (see [Deadline reminders](#deadline-reminders)).
    * **Past due** — the item is overdue and still open.
  </Accordion>
</AccordionGroup>

Toggle them per situation. Setting "Priority changes" off for Bulk-assigned won't affect notifications for items directly Assigned to you.

<Tip>
  If you've customized a lot and want to start fresh, the preset card at the
  top shows a "**\[N] customized — reset**" button when you have overrides.
  Click it to wipe your customizations and return to the preset as-is.
</Tip>

## Deadline reminders

Deadline reminders fire at a chosen interval before each item's due date. You configure the intervals globally — they apply to every subscription that has deadline alerts turned on.

### Adding reminders

The **Reminder schedule** section lets you add any number of reminders. Each one has a value and a unit:

* 2 hours before
* 1 day before
* 3 days before
* 1 week before

You're not limited to these — pick any number and any unit (minutes, hours, days, or weeks). Add 45 minutes, 6 hours, or 2 weeks if those match how far in advance you want to be warned. Quick-add buttons for the four most common combinations are there to save typing.

### When reminders fire

A reminder only fires if:

1. The item's due date is in the future when Helm evaluates
2. The item is still open (status is <StatusLabel value="todo" /> or <StatusLabel value="in_progress" />)
3. The relevant situation has **Approaching due date** turned on in your preferences

Once the due date passes, reminders stop and the **Past due** notification takes over (if you have it on).

## New booking summary

If your organization uses templates that auto-create action items, new bookings can fire several notifications at once — one per item assigned to you. The **new booking summary** collapses that into a single notification.

Three modes, in the settings:

* **Off** — don't send booking summaries. You'll get the individual item notifications instead (according to your preferences).
* **Only when I'm assigned** — send a summary only if at least one of the new items is assigned to you. Bookings where you got nothing from the templates stay quiet.
* **Always** — send a summary for every new booking, even if nothing's assigned to you. Use this for oversight — "I want to know every booking that comes in."

When summaries are on, the individual "you were assigned" notifications are suppressed for the bulk-assigned items on that booking, replaced by the summary. You don't get both. Later changes to those items (status, due date, etc.) still notify you as normal — the summary only replaces the initial assignment alert, not the full stream.

## Email and in-app

Every notification can be delivered by email, as an in-app notification, or both. Toggle channels under **Settings → Profile → Notifications** — the same surface that controls the Action items section controls delivery channels for all notification types.

Email notifications for action-item changes are **batched per event** over a short window. If several items on the same event change in quick succession, you get one email listing them together, not one email per item. In-app notifications stay individual and arrive in real time.
