Trigger events, conditions and message variables: reference
Every event a trigger can listen for, when it fires, its condition and gotchas; the seven actions; and the message variables such as {requested_ship_date}.
This page is the lookup table behind How triggers work and how to build one: every event the trigger editor offers, when it fires, the condition it carries, whether extra conditions apply and whether the Order Contact recipient is filled in, and the gotchas; then the seven actions with the article for each; then the message variables you can type into a trigger's email, text, announcement, task or webhook, including the customer's requested ship date and the actual ship date.
Applies to: every Allmoxy site and every order type. Building triggers needs the Add/edit site triggers permission. The two events marked administrators only are offered to administrators alone.
In this article
- Table 1: Events
- Notes on the status events
- Notes on the process events
- Table 2: Actions
- Table 3: Message variables
- Things to know
Table 1: Events
Extra conditions are the Product, Product Attribute, Order Tag, B2B Items and Shipping Method rows; they are checked on four events only. Order Contact is the person who placed the order. The option is listed on every email action, but it is filled in only on order, process and attachment events; on other events it sends nothing.
| Event | Fires when | Its own condition | Extra conditions | Order Contact | Good to know |
|---|---|---|---|---|---|
| Order Status Changes To | An order moves to a status, whether changed by hand, by a recorded labor process step or through the normal workflow | One or more statuses | Yes | Yes | Fires once per status passed in one save. Has a product tags box. Project orders match only project statuses. See the notes below. |
| Remake Status Changes To | A remake order moves to a status, including the moment it is created | One status | Yes | Yes | Same rules as Order Status Changes To, for remakes only. A great way to keep track of remakes. |
| Order Process Started | An employee clocks in to a labor process on an order, from the scanner or the time tracking form | One labor process | Yes | Yes | Needs labor processes and time tracking. Use it to tell another department where an order is in production, or to tell customers a phase has begun. |
| Order Process Ended | Time on a labor process ends: a clock-out, a one-step process recorded, a batch created or a process applied from a batch, or an open clock closed | One labor process | Yes | Yes | Shops using batches can get many "process ended" emails at once. See the notes below. |
| Order Past Due By | A daily job finds an unpaid invoice whose charge date plus the grace days on the company's payment term plus your number of days is today | Number of days | No | Yes | Fires only on that exact day. You can set up several with different day counts to remind customers more than once. Timing and examples: Email invoices and payment reminders automatically. |
| Second Payment Due | An order on a deposit payment term reaches the status the term charges its second payment at | None | No | Yes | Collections setup: Email invoices and payment reminders automatically. |
| Payment Made | A payment is recorded by any method: card, bank, account credit or a manual entry | None | No | No | The message can list the invoice numbers paid and the amount. |
| Finance Charge Created | The month-end run creates a Finance Charges invoice on an account | None | No | No | Alert your accounting department or the customer. See Email invoices and payment reminders automatically. |
| New Company Created | A company is added by an employee, by public sign-up, by a connected Allmoxy site or by the API | None | No | No | Make sure new accounts get reviewed, or distribute new customers to a dedicated salesperson with a task or email action. |
| New Company Contact Created | A person is added to a business company, from the same sources | None | No | No | |
| New Individual Created | An individual is added, a person who is not associated with a business | None | No | No | |
| New Remote Request | A B2B connection request passes between your site and another Allmoxy site: yours was accepted, or theirs was received | None | No | No | What a B2B connection is: What is business to business (B2B). |
| New Product Created | The New Product form is saved | None | No | No | Fires before the product is configured, so alert your catalog owner with it; it is not recommended for announcing a new product to customers. |
| New Supply Created | The full-page New Supply form is saved | None | No | No | Alert your inventory manager. The quick add on the inventory page does not fire it. |
| Note Created On | A note is saved on a record | Any, Company, Contact, Order, Product or Supply | No | No | One trigger set to Any covers notes on all five kinds of record. |
| Order Attachment Added | A file is uploaded on an order's attachments panel, on the quote form when a new order is saved, or on the design files panel | None; limit it by target | No | Yes | Also fires once per attachment when an order is cloned. Helpful if your customers upload designs with their orders. |
| Ship Date Modified | An existing order is saved with a changed ship date | The statuses the order may be saved into; blank means any | No | Yes | New orders don't fire it. Example: email the customer if an In Progress order's ship date is adjusted. Offers the previous ship date as a variable. |
| Output Page Signed | A signature is drawn or applied on an order's output page | One output page, or all | No | No | Quick notice of a confirmed order, a delivery or a warranty agreement. Signatures that are not on an output page don't fire it. See E-signature box on output pages. |
| Credit Card Expires Soon (administrators only) | A nightly job finds a saved card about to expire | 1 month or 7 days before the card's expiry month ends | No | No | Notify customers of an upcoming credit card expiration. |
| Product Subscription Cancelled (administrators only) | A product subscription is canceled because its renewal payment failed | Failed payment (the only choice) | No | No | Alert the customer that their subscription was canceled because of a failed (expired, unauthorized or declined) payment method. |
Notes on the status events
Statuses can be changed manually, automatically through a recorded labor process (Create production lines) or through Allmoxy's expected workflow (View the stages of a labor process). The normal ladder is Bid, Ordered, Verified, In Progress, Completed, Shipped. An order saved several rungs up in one go fires Order Status Changes To once per status it passes, so an order saved from Bid straight to Shipped fires Ordered, Verified, In Progress, Completed and Shipped, and a shop with a customer email on each of those five statuses sends five emails in one save. Moving an order back and forward again fires again; a backward move jumps straight to the lower status; and taking an order off On Hold or Void to a later status jumps straight there, so only that status fires. Auto-verify fires both Ordered and Verified. Moving statuses by hand: Change an order's status.
On a site with project orders and another order type, a project order matches only the project statuses (Bid, Authorized, Confirmed, In Production, Ready To Install, Shipped, Installed, Void, On Hold), so tick those on triggers meant for project orders.
You can refine a status trigger with product tags: when the trigger's product tags box has tags, at least one product on the order (or a B2B product bought from a supplier site) must carry one of them. See Tags in Allmoxy.
Notes on the process events
Order Process Started and Order Process Ended are only useful once you've built out your labor processes and are time-tracking through the scanning station's Process Time Tracking or Process Complete functions (Job tracking scanners) or the time tracking form. Order Process Ended fires when a process is completed, and from more places than you might expect: when an employee clocks out of a process, when a one-step process is recorded, when an employee clocks out of the day at the timecard kiosk or on their time card (once per open process), when a batch is created or a process is applied from a batch (once per order), and when an employee who still has open process clocks is set inactive. If you use batches, expect a burst of "process ended" events at once.
Table 2: Actions
Each trigger runs exactly one action. Not every action is offered on every event: the Order Contact recipient is filled in only on order, process and attachment events, and Add Tags or Remove Tags apply to the event's record only if that kind of record can be tagged.
| Action | What it does | Read |
|---|---|---|
| Send an email | Emails chosen employees, the company's primary contact, the Order Contact, typed addresses, or every contact of the record's company carrying chosen recipient tags; can attach output pages and export files on order events | Choose who gets a trigger's email |
| Send an SMS | Sends a short text message to the people the trigger is set to reach | Send a text message with a trigger |
| Add an announcement | Posts an announcement to the chosen contacts; it shows on their dashboard and can email or text them if their notification settings ask for it | Notes, tasks and announcements |
| Add a Task | Assigns a task to the chosen employees, attached to the record's company and due at the trigger's time today (or tomorrow if that time has passed); the assignee is emailed or texted per their notification settings | Notes, tasks and announcements |
| Add Tags | Adds the typed tags to the record the event is about | Automatically add tags to an order |
| Remove Tags | Removes the typed tags from that record | Automatically add tags to an order |
| Send web request (Webhook) | Sends the event's data to a web address you give it, once, with no retry | Send order data to another app with a webhook |
Table 3: Message variables
Type a variable in braces into the trigger's subject, message or text and Allmoxy fills it in from the record. The list beside the editor shows what the chosen event offers. In a triggered email you have variables for the customer's requested ship date and for the actual final ship date, and on some events the ship date the order had before it changed.
| Variable | What it prints | Offered on |
|---|---|---|
| {requested_ship_date} | The ship date the customer asked for when they placed the order (Requested Ship Date) | Order status, remake, process, ship date and signature events |
| {delivery_date} | The actual ship date on the order, the one you schedule (Ship Date) | Order status, remake, process, ship date, signature, past due and second payment events |
| {previous_delivery_date} | The ship date the order had before it was changed (Previous Ship Date) | Ship Date Modified and Output Page Signed; also sent with the two status events' webhooks |
| {install_date} | The order's install date, or N/A | Order status, remake, process, ship date, signature and second payment events |
| {order_num}, {order_name} | The order number and name | Every order, process, attachment, note (on an order), past due and second payment event |
| {order_total} | The order total, formatted with commas and two decimals | Order, process, past due and second payment events |
| {job_status} | The order's status | Order, process, past due and second payment events |
| {company_name}, {company_email}, {company_id} | The customer company | Nearly every event |
| {contact_name}, {contact_email} | The contact on the record: the person who placed the order, uploaded the file, or was clocked in | Order, process, people, note, payment and signature events |
| {company_contact_name}, {company_contact_email} | The company's primary contact | Order, process, people, note, payment and signature events |
| {input_by_name} | The employee who entered the record | Order, process, people, note, payment and signature events |
| {shipping_method}, {shipping_name}, {shipping_attn}, {shipping_address1}, {shipping_address2}, {shipping_address3}, {shipping_city}, {shipping_state}, {shipping_zip}, {shipping_country}, {shipping_instructions} | The order's shipping method and address block | Order status, remake, process, ship date and signature events |
| {process_name} | The labor process that started or ended | Order Process Started, Order Process Ended |
| {amount_paid}, {invoiceids} | The amount paid and the invoice numbers it paid (shown as Invoice(s) in the list) | Payment Made |
| {invoice_id}, {invoice_date}, {invoice_amount} | The finance charge invoice | Finance Charge Created |
| {num_days_past_due} | The number of days on the trigger | Order Past Due By, Second Payment Due |
| {term_amount_due} | The second payment the term now charges | Second Payment Due |
| {attachment_name} | The uploaded file's name | Order Attachment Added |
| {note_text}, {belongs_to}, {about_name} | The note's content, what kind of record it is on, and that record's name | Note Created On |
| {signer_name}, {signature_date}, {signature_time} | Who signed, and when | Output Page Signed |
| {product_name}, {product_price} | The new product | New Product Created, Product Subscription Cancelled |
| {supply_name} | The new supply | New Supply Created |
| {card_last_4}, {card_exp_month}, {card_exp_year}, {payment_method_link} | The expiring card and a link to the payment methods page | Credit Card Expires Soon (administrators) |
| {subscription_cancel_date}, {payment_method}, {payment_failure_reason} | Why the subscription ended | Product Subscription Cancelled (administrators) |
| {recipient_name} | The name of the person receiving this email or text | Most events (not sent to webhooks) |
| {instance_url}, {instance_company_name} | Your site's address and your company name | Every event |
Things to know
- Money is formatted with commas and two decimals, and dates print as m/d/Y or N/A. {product_list}, where the event offers it, prints the order's products as a table.
- A variable the event doesn't have stays in the message as typed. The list beside the editor is kept by hand and can show a variable the event doesn't fill, so send yourself a test.
- Webhooks carry the same variables, named without the braces, plus the record's extra fields; see Send order data to another app with a webhook.
- Extra conditions are checked on four events only: Order Status Changes To, Remake Status Changes To, Order Process Started and Order Process Ended. Everywhere else they are ignored.
- The Trigger Call Log hides the two administrator-only events from non-admins when it shows all events, so an administrator should check runs of Credit Card Expires Soon and Product Subscription Cancelled.