Itsy Docs
Actions

Actions

Automate email and webhook notifications triggered by order events, payment milestones, schedules, or manual execution.

Actions automate communications in your workspace. Each action is either an email or a webhook — you define what triggers it, who receives it (or which URL it calls), and what content or payload to include. Instead of manually sending confirmation emails, payment reminders, or notifying external systems, actions handle these automatically whenever their conditions are met.

How It Works

Each action pairs a delivery method (email or webhook) with one or more triggers. When a trigger fires — whether from a system event, a schedule, or a manual click — Itsy evaluates any conditions you have set. If the conditions pass, the action executes: for email actions the message is rendered with order data and sent to the configured recipients; for webhook actions a JSON payload is dispatched to the configured URL. In both cases the delivery is tracked.

Key Concepts

Action Type

Every action has a type that determines how it delivers its message:

TypeDescription
EmailSends an email to one or more recipients. You configure the subject, body, sender, and attachments.
WebhookSends an HTTP request with a JSON payload to an external URL. You configure the URL, secret, headers, and HTTP method.

You choose the type when you create the action. Email actions and webhook actions share the same trigger system — the difference is only in how they deliver.

Action Properties

Both action types share these core properties:

PropertyDescription
NameInternal name for the action
CodeA short identifier code
ColorA color label for visual identification across lists, deliveries, the dashboard, and order timelines
ActiveWhether the action is currently enabled

Email-specific properties:

PropertyDescription
SubjectThe email subject line (supports template variables)
Sender NameThe display name shown as the email sender
Sender AddressThe email address it's sent from (defaults to workspace sender if empty)
Recipient TypeWho receives the email (see below)
CC / BCCAdditional email addresses to copy
ContentThe email body, built with a rich text editor
AttachmentsFiles to include with the email

Webhook-specific properties:

PropertyDescription
Webhook URLThe HTTPS endpoint to call (must be a public URL)
SecretA shared secret used to sign the payload with HMAC-SHA256 (required). The signature is sent in the X-Itsy-Signature header so the receiver can verify authenticity.
HTTP MethodThe HTTP method to use: POST (default) or PUT
Custom HeadersAdditional HTTP headers to include with each request. Reserved headers (X-Itsy-*, Content-Type, Host) cannot be overridden.
Max Retry AttemptsThe maximum number of delivery attempts before giving up (default: 5)

Trigger Types

Each action can have multiple triggers. There are three types:

TypeDescription
EventFires automatically when a specific system event happens (e.g., an order is confirmed or a payment is received)
ScheduleRuns on a daily schedule, evaluating all orders against the trigger's conditions
ManualOnly fires when you explicitly run it from the order page

An action can have any combination of triggers — for example, you might have an action that fires both on the "Order Confirmed" event and can also be triggered manually from the order menu.

Available Events

Event triggers respond to 17 different system events:

CategoryEvents
OrderOrder Created Internally, Order Created Externally, Order Confirmed, Order Cancelled, Order Completed, Order Locked
PaymentPayment Deposit Reached, Payment Fully Paid, Payment Validated from External Service
InvoiceInvoice Created
NotificationNotification Delivered, Notification Failed, Notification Bounced, Notification Opened
GroupGroup Message Created, Group Message Updated
Gift CertificateGift Certificate Created

Manual Trigger Placements

When you create a manual trigger, you choose where the trigger button appears in the admin interface:

PlacementDescription
Order Item OverviewAppears as a quick action button on the order detail page
Order Top MenuAppears in the top menu of any order page
Invoice List MenuAppears in the invoice list actions menu
Payment Reminder DialogAppears in the payment reminder dialog on an order

Trigger Conditions

Conditions let you control exactly when a trigger fires. Each condition checks an order property against a value using a comparison operator.

Condition fields:

FieldDescription
Order StatusThe current status of the order (Draft, Pending, Confirmed, Cancelled, Completed, Locked)
Total PriceThe order's total price
Total PaidThe amount paid so far
BalanceThe remaining amount owed (Total Price minus Total Paid)
Order CreatedDays since the order was created
Start DateDays relative to the trip departure date
End DateDays relative to the trip return date
Fully Paid DateDays since the order was fully paid

Comparison operators:

OperatorDescription
Is equalMust match exactly
Is not equalMust not match
Is larger thanMust exceed the value
Is smaller thanMust be less than the value

For date conditions, the value represents a number of days relative to today. For example, setting "Start Date is equal to -7" matches orders whose trip starts 7 days from now.

All conditions on a trigger must be satisfied for the trigger to fire (they are combined with AND logic).

Email Recipients

Recipient TypeDescription
Order ClientThe customer who placed the order. For corporate clients, Itsy routes to the appropriate contact based on context (invoice contacts for invoice-related actions, payment contacts for payment actions).
Workspace AdminThe workspace's administrator email address
Group ContactThe contact person for a group booking (falls back to the order client if none)
Custom EmailA specific email address you enter

You can also add CC and BCC recipients to any action.

Email Content

The email body is built with a rich text editor that supports headings, paragraphs, bold, and italic formatting. You can insert special content blocks that are automatically populated with order data. Use the Insert Block dropdown in the editor toolbar to add them.

Information blocks:

BlockDescription
Order CodeDisplays the order reference number prominently
Client InformationShows the customer's name, email, phone, and address
Order InformationShows trip name, participants, booking date, departure date, total price, balance, and bookings
Trip InformationShows the trip name and departure date

Financial blocks:

BlockDescription
Invoice SummaryDisplays invoice details including invoice number, amount, and date
Payment SummaryShows a summary of payments made on the order
Balance DueShows the outstanding balance amount for the order

Link blocks:

BlockDescription
Link to OverviewA button linking to the customer's order overview page
Link to PaymentsA button linking to the customer's payment page
Link to ParticipantsA button linking to the participant information page

Special blocks:

BlockDescription
Custom MessageA placeholder that the operator fills in at manual delivery time. For automatic deliveries (event or schedule triggers), this block renders empty. Use it when you want to add a personal note to an otherwise templated email.

You can also use inline template variables in both the subject line and body. These are replaced with real values when the action is delivered.

Order variables:

VariableReplaced With
{{orderCode}}The order reference code
{{orderTotal}}The order total price
{{orderBalance}}The outstanding balance on the order
{{orderPaid}}The amount paid on the order so far
{{orderDepartureDate}}The order start date (departure)
{{orderBookingDate}}The date the order was created
{{tripName}}The name of the trip the order is on
{{group}}The order group name (replaced only when the order belongs to a group)

Client variables:

VariableReplaced With
{{clientName}}The customer's full name
{{clientFirstName}}The customer's first name
{{clientLastName}}The customer's last name
{{clientEmail}}The customer's email address
{{clientPhone}}The customer's phone number

Workspace and sender variables:

VariableReplaced With
{{workspace}}The workspace name
{{workspaceEmail}}The workspace contact email address
{{senderName}}The sender name configured on the action, falling back to the workspace name
{{senderEmail}}The sender email configured on the action, falling back to the workspace contact email

Invoice variables (require invoice context):

VariableReplaced With
{{invoiceNumber}}The invoice number
{{invoiceDate}}The invoice creation date
{{invoiceAmount}}The invoice total amount
{{invoiceTax}}The total tax on the invoice
{{invoiceFiscalSequence}}The fiscal sequence string for the invoice
{{invoiceCustomerReference}}The customer reference (e.g. PO number) on the invoice

Payment variables (require payment context):

VariableReplaced With
{{paymentAmount}}The payment amount
{{paymentMethod}}The payment method name
{{paymentDate}}The date the payment was settled
{{paymentMaskedCard}}The masked card number, when the payment was made by card
{{paymentReference}}The best available reference: masked card number or external transaction ID

In the email body, money values are displayed with the workspace currency prefix (e.g. "USD 1,500.00"). In the subject line, money values appear as raw numbers so you can format them inline.

Emails are rendered in the workspace's configured language (English or Icelandic).

Email Attachments

You can attach files to action emails:

Attachment TypeDescription
Booking AttachmentsDocuments attached to individual bookings within the order
Order Overview PDFThe order overview document
Selected Invoice PDFThe PDF of a specific invoice
External AttachmentsFiles uploaded to the order, bookings, or participants (capped at 20 MB total)

Webhook Actions

Webhook actions let you notify external systems when events happen in your workspace. Instead of composing an email, Itsy sends a JSON payload to the URL you configure.

Payload Structure

Every webhook delivery includes a standard envelope with context about the event:

{
  "version": "v1",
  "event": "OrderConfirmed",
  "eventId": 3,
  "actionId": "...",
  "actionCode": "...",
  "actionName": "...",
  "deliveryId": "...",
  "workspaceId": "...",
  "timestamp": "2026-04-26T12:00:00Z",
  "context": {
    "order": { ... }
  }
}

The context object varies by event type. For payment events it includes a payment object alongside the order. For invoice events it includes an invoice object. For all other events, the context contains the full order snapshot.

Webhook payloads are designed to be self-contained — the order snapshot includes bookings, participants, payments, invoices, client details, and external references so receivers do not need to call back to Itsy for additional data.

Security Headers

Every webhook request includes these headers automatically:

HeaderDescription
X-Itsy-EventThe event name (e.g., OrderConfirmed)
X-Itsy-Delivery-IdA unique identifier for this delivery attempt
X-Itsy-Action-CodeThe action's code
X-Itsy-TimestampThe Unix timestamp of the request
X-Itsy-SignatureAn HMAC-SHA256 signature of the request body, using the action's secret key. Format: sha256=<hex>

To verify a webhook, compute the HMAC-SHA256 of the raw request body using your shared secret and compare it to the value in X-Itsy-Signature.

Retry Logic

When a webhook delivery fails (non-2xx HTTP status or network error), Itsy retries automatically with increasing delays:

AttemptDelay Before Retry
1st retry1 minute
2nd retry5 minutes
3rd retry30 minutes
4th retry2 hours
5th retry6 hours

Retries continue until the request succeeds or the maximum number of attempts is reached (configurable per action, default 5). A background job checks for due retries every minute. Each retry attempt and its outcome are logged in the delivery's event history.

URL Requirements

Webhook URLs must use HTTPS and resolve to a public IP address. Itsy rejects URLs that point to private, loopback, or link-local addresses to prevent internal network access.

Managed Actions

Itsy provides pre-built managed actions for essential workspace operations. These handle common scenarios that every workspace needs:

  • Order Overview — Sends the order summary document to the customer
  • Payment Receipt — Sends after payment validation
  • Payment Reminder — Runs on a daily schedule, sending reminders to customers with outstanding balances
  • Supplier Report — Delivers supplier activity reports
  • Gift Certificate Purchase — Sends the certificate PDF to the purchaser after payment
  • Trip Email — Sends trip-related communications to participants

Managed actions differ from regular actions in important ways:

  • You cannot delete them
  • You cannot change the name, code, recipient type, or attachments
  • You can customize the email subject, body, sender details, CC/BCC, and active status

Action Templates

When creating a new action, you can start from a pre-built template instead of building from scratch:

TemplateTypeWhat It Sets Up
BlankEmailAn empty email action with no pre-configured triggers
Order ConfirmationEmailPre-configured with triggers for both internal and external order creation events
Payment ConfirmationEmailPre-configured with a trigger for payment validation events
Payment ReminderEmailPre-configured with a daily schedule trigger and conditions for orders with outstanding balance that are not draft, not cancelled, and not already fully paid
Webhook BlankWebhookAn empty webhook action with no pre-configured triggers

Templates save time by setting up the trigger, conditions, and a starting configuration automatically.

Delivery Tracking

After an action sends a message, Itsy tracks its journey:

Email deliveries:

StatusDescription
SubmittedThe email has been sent to the delivery provider
DeliveredThe email reached the recipient's inbox
BouncedThe email failed to deliver (invalid address, full inbox, etc.)
ErrorThe email could not be sent at all
OpenedThe recipient opened the email (tracked when possible)

Each email delivery records the sender address, recipient address, timestamps, and any error details.

Webhook deliveries:

Webhook deliveries track the HTTP status code, number of attempts, next retry time (if a retry is scheduled), and a snippet of the response body. Each attempt is logged as a separate event, so you can see the full retry history.

All deliveries — both email and webhook — are logged on the order's timeline for audit purposes.

Deliveries Report

The deliveries report gives you a workspace-wide view of all action deliveries (email and webhook) across all actions. You can filter by:

  • Specific actions — View deliveries for one or more actions
  • Date range — Filter to a specific time period

The report shows up to 1,000 delivery records, sorted by most recent first.

Common Tasks

Creating a New Email Action

  1. Navigate to the Actions section
  2. Click Add
  3. Choose a template (Blank, Order Confirmation, Payment Confirmation, or Payment Reminder)
  4. Enter the action name and code
  5. Configure the email subject, sender, and recipient
  6. Build the email content using the rich text editor and insert content blocks as needed
  7. Select any attachments to include
  8. Add triggers to control when the action fires
  9. Activate the action

Creating a Webhook Action

  1. Navigate to the Actions section
  2. Click Add
  3. Choose the Webhook Blank template
  4. Enter the action name and code
  5. Set the Webhook URL (must be HTTPS)
  6. Configure a Secret for payload signing (required for all webhook actions)
  7. Choose the HTTP Method (POST or PUT)
  8. Add any Custom Headers the receiving system requires
  9. Set the Max Retry Attempts (default: 5)
  10. Add triggers to control when the action fires
  11. Activate the action

Adding Triggers to an Action

  1. Open an action and go to the Triggers tab
  2. Enable the trigger type you want:
    • For Manual, choose where the button appears (Order Item Overview, Order Top Menu, Invoice List Menu, or Payment Reminder Dialog)
    • For Schedule, the action runs daily at 02:00
    • For Event, select the specific event to listen for
  3. Optionally add conditions to filter when the trigger fires
  4. Save your changes

Setting Up Payment Reminders

  1. Create an action using the Payment Reminder template
  2. The template automatically sets up:
    • A daily schedule trigger
    • Conditions: balance is larger than 0, status is not Draft, status is not Cancelled, and the order is not already fully paid
  3. Customize the email subject and body
  4. Set the recipient to Order Client
  5. Activate the action

Running a Manual Action

  1. Open an order
  2. Depending on the manual trigger's placement, find the action button in:
    • The quick actions on the order overview
    • The top menu of the order page
    • The invoice list actions menu
    • The payment reminder dialog
  3. Click the action to execute it immediately (sending the email or firing the webhook, depending on the action type)

Reviewing Delivery History

  1. To see deliveries for a specific action: open the action and go to the Deliveries tab
  2. To see all deliveries across your workspace: go to the Deliveries report under Actions
  3. Filter by action or date range as needed
  4. Click on a delivery to see its full event log. For email deliveries this includes events such as submitted, delivered, opened, and bounced; for webhook deliveries it includes submitted, individual attempt results, retry-scheduled events, and the final outcome.

Customizing a Managed Action

  1. Go to Settings and find Managed Emails
  2. Select the managed action to customize (Order Overview, Payment Receipt, Payment Reminder, Supplier Report, Gift Certificate Purchase, or Trip Email)
  3. Edit the email subject and body
  4. Update sender details and CC/BCC if needed
  5. Save your changes

How It Connects

  • Orders — Most action triggers are based on order events. Deliveries are logged on the order timeline and can be viewed per client.
  • Groups — Group message events can trigger notifications. The Group Contact recipient type sends to the group's contact person.
  • Gift Certificates — Gift certificate creation can trigger delivery emails.
  • Clients — Corporate clients can have contacts with specific notification preferences (invoices, payment receipts, order confirmations), and actions route emails to the appropriate contacts automatically.
  • Segments — Actions can be targeted to specific customer segments, ensuring the right audience receives each communication.

Segment Targeting

Actions can be restricted to specific customer segments. When you configure an action, you can select one or more segments from the Segments field on the action overview. If no segments are selected, the action applies to all customers. When segments are selected, the action only triggers for orders belonging to customers in those segments.

This lets you create targeted communications — for example, a VIP welcome email that only goes to customers in your premium segment, or a local-language reminder for a specific market.

Coverage View

The Coverage page under Actions provides a matrix view of your automation setup. It shows which actions are configured for each combination of trigger event and customer segment.

  • Rows represent trigger events — order lifecycle events, payment events, notification events, invoice events, group message events, gift certificate events, and scheduled triggers
  • Columns represent your customer segments, each shown with its color indicator

Each cell lists the actions configured for that event-segment combination. Cells with no actions display a warning icon, helping you spot gaps in your automation coverage — for example, a segment that has no payment confirmation email configured.

Reading the Matrix

  • Click any action name to navigate directly to that action's overview page for editing
  • Expand a row to see the trigger conditions configured on each action (the field, comparison operator, and value)
  • Inactive actions are marked with an "Inactive" badge so you can distinguish them from active ones
  • Actions inherit their assigned color for visual consistency with the rest of the interface

On this page