These are ideas, not guaranteed features. This article lists notifications you could build with a chat integration. Not every idea is possible in every chat integration: data types, events, destinations, and mapping functions differ between integrations. Before you build one, check that integration's documentation (Background, Mapping Documentation, Mapping Functions, and Known Limitations) to confirm what it supports.
Overview
Chat integrations such as Slack and Microsoft Teams can post a message whenever something happens to a record in iPaaS.com: a large order comes in, a product goes out of stock, a transfer fails. This article explains how these notifications are built and lists ideas grouped by business area to help you decide what to set up.
How a notification works
Every notification below follows the same four-part pattern:
Trigger. An iPaaS.com outbound event fires for a record, for example
transaction/createdorproduct/inventory/updated. You turn the event on for your chat subscription.Filter. The mapping collection's filter decides whether this record deserves a message, for example
Total >= 1000. Most use cases are really just a filter.Destination. A mapping names where the message goes: a channel, or a person. The destination can be a fixed value or computed from the record (for example, one channel per store).
Message text. A Dynamic Formula mapping builds the message from the record's fields. Many chat integrations provide mapping functions for formatting, links, and mentioning people; see the integration's Mapping Functions article.
A "use case" is therefore a mapping collection (filter + destination + text) built on one data type. The same integration can run many of them side by side.
Before you build
Destinations usually must already exist. Many chat integrations post to channels but do not create them. Create the channel in your chat tool first, and if it is private, add the integration's app to it. Check the integration's Known Limitations.
Some ideas need a custom field first. If the deciding fact (such as "Bestseller" or "VIP") is not a standard field, add it as a custom field or category and have your source system populate it.
Changes need a remembered value. An event carries the record as it is now, not what it was before. Notifications such as "back in stock" or "price changed" need a custom field that stores the last notified value so the filter can compare against it.
Watch the volume. Inventory and transaction-updated events can fire thousands of times an hour, and chat tools limit how fast messages can be posted to a channel. Keep filters tight on high-volume events.
Data types you can build on
Child records (lines, payments, addresses) arrive inside their parent, so a filter can look at them through the parent. Which of these a given chat integration supports varies; check its documentation.
Data type | Outbound events |
Product | product/created, updated, deleted |
Product Inventory | product/inventory/created, updated |
Product Variant | product/variant/created, updated, deleted |
Product Variant Inventory | product/variant/inventory/created, updated |
Product Category | category/product/created, updated, deleted |
Location | location/created, updated, deleted |
Customer | customer/created, updated, deleted |
Transaction (with lines, payments, addresses, tracking, notes, discounts) | transaction/created, updated, deleted |
Customer Category | category/customer/created, updated, deleted |
Customer Address | customer/address/created |
Shipping Method | shippingmethod/created, updated, deleted |
Payment Method | paymentmethod/created, updated, deleted |
Gift Card (with activity) | giftcard/created, updated, deleted |
Kit | product/kit/created, updated, deleted |
Product Category Assignment | ecommcategory/assignment/created, deleted |
Location Group | locationgroup/created, updated, deleted |
Related Product | product/substitute/created, updated, deleted |
Employee | user/created, updated, deleted |
Timesheet | timecard/created, updated, deleted |
Message (errors and alerts) | message/created, updated |
Customer Company (B2B) | company/updated |
Reading the idea tables
The Needs column says what an idea depends on:
Standard fields: the fields the filter and text need are on the record iPaaS.com sends.
Custom field: works once you hold the deciding fact on the record, usually a custom field, category, or translation.
Idea only: needs totals, counts, history, or a schedule, which a single-record event cannot see. See Ideas that need more than one record.
Destinations shown are examples; use whatever channels suit your team.
Sales and orders
Notification | Trigger | Filter idea | Example destination | Needs |
Large sale | transaction/created | Type is Order and Total >= threshold | #big-sales | Standard fields |
First order from a new customer | transaction/created | Customer created within the last day (customer lookup) | #new-customers | Custom field |
Order with a high discount | transaction/created | DiscountAmount / Subtotal >= 30% | #sales-review | Standard fields |
Order with a coupon code | transaction/created | Any discount line has a code | #promotions | Standard fields |
Bulk-quantity order | transaction/created | TotalQty >= threshold | #big-sales | Standard fields |
Order containing a specific product | transaction/created | Any line SKU is in a watch list | #product-launch | Standard fields |
Quote created | transaction/created | Type is Quote | #sales-quotes | Standard fields |
Quote converted to an order | transaction/updated | Type is Order and ParentId points to a quote | #sales-quotes | Standard fields |
Order cancelled | transaction/updated | Status is Cancelled | #order-exceptions | Standard fields |
Order on hold | transaction/updated | Status is On Hold | #order-exceptions | Standard fields |
Return or refund created | transaction/created | Type is Return or Refund | #returns | Standard fields |
Large refund | transaction/created | Type is Refund and Total >= threshold | #finance-alerts | Standard fields |
International order | transaction/created | Shipping country is not the home country | #intl-orders | Standard fields |
Order from a marketplace channel | transaction/created | The source system is the marketplace subscription | #marketplace | Standard fields |
Pre-order or back-order line | transaction/created | A line status or custom field marks it | #backorders | Custom field |
Order with a gift message | transaction/created | A gift-type note exists | #fulfillment | Standard fields |
Tax-exempt order | transaction/created | TaxAmount is 0 and Subtotal > 0 | #finance-review | Standard fields |
Zero-total order | transaction/created | Total is 0 | #order-exceptions | Standard fields |
Order over a customer's credit limit | transaction/created | Needs the account balance | #ar-alerts | Idea only |
Daily sales total | Scheduled | Sum of the day's orders | #exec | Idea only |
1,000th order milestone | transaction/created | Needs a running count | #celebrations | Idea only |
Fulfillment and shipping
Notification | Trigger | Filter idea | Example destination | Needs |
Buy online, pick up in store | transaction/created | The order or a line uses a pickup shipping method | #store-{location} (one channel per store) | Standard fields |
Pickup order ready | transaction/updated | Pickup and Status is Ready for Pickup | #store-{location} | Standard fields |
Expedited or overnight shipping | transaction/created | Shipping method is in the expedited list | #warehouse-priority | Standard fields |
Order shipped (tracking added) | transaction/updated | A tracking number exists | #shipping | Standard fields |
Partial shipment | transaction/updated | Some lines shipped, some not | #shipping | Standard fields |
Ship-from-store routing | transaction/created | The line location is a store, not the distribution center | #store-{location} | Standard fields |
Drop-ship order | transaction/created | A line is flagged drop-ship | #dropship | Custom field |
Freight (LTL) order | transaction/created | Shipping method is freight | #freight | Standard fields |
PO box address with a carrier that can't deliver there | transaction/created | Address matches "PO Box" and the method is UPS or FedEx | #order-exceptions | Standard fields |
Address changed after the order was placed | transaction/updated | Shipping address differs from the original | #order-exceptions | Idea only |
Order not shipped in 48 hours | Scheduled | Age plus status | #warehouse | Idea only |
New shipping method configured | shippingmethod/created | None | #ops-config | Standard fields |
Customers and CRM
Notification | Trigger | Filter idea | Example destination | Needs |
New customer | customer/created | None, or exclude guest accounts | #new-customers | Standard fields |
New B2B customer | customer/created | Company is not empty, or a wholesale category | #b2b-sales | Standard fields |
VIP customer signs up | customer/created | Category or custom field is VIP | #vip | Custom field |
Customer from a target domain | customer/created | EmailAddress ends with a target domain | #enterprise-leads | Standard fields |
Customer moved to a new category or tier | customer/updated | Categories contains the tier | #account-managers | Standard fields |
Customer added a new address | customer/address/created | None | #crm | Standard fields |
Customer comment or note changed | customer/updated | Comment is not empty | #customer-service | Standard fields |
Possible duplicate customer | customer/created | Needs a search on email | #data-quality | Idea only |
Customer deleted | customer/deleted | None | #data-governance | Standard fields |
Customer opts in to marketing | customer/updated | Marketing custom field is true | #marketing | Custom field |
New customer category created | category/customer/created | None | #ops-config | Standard fields |
Customer email missing | customer/created | EmailAddress is empty | #data-quality | Standard fields |
Mention the account owner | customer/created | Look up the owner in a translation and mention them | #account-managers | Custom field |
B2B and accounts
Notification | Trigger | Filter idea | Example destination | Needs |
B2B company updated | company/updated | None | #b2b-sales | Standard fields |
B2B order over the approval limit | transaction/created | CompanyId set and Total >= limit | #b2b-approvals | Standard fields |
First order from a new company | transaction/created | CompanyId set and the company is new | #b2b-sales | Custom field |
Net-terms order | transaction/created | Payment method is Net 30 or On Account | #ar-alerts | Standard fields |
PO number missing on a B2B order | transaction/created | CompanyId set and the PO field is empty | #b2b-ops | Standard fields |
Per-account channel for a key account | transaction/created | CompanyId is in the key-account list | #acct-{company} | Standard fields |
Wholesale customer requests credit | customer/updated | Custom field "credit requested" | #ar-alerts | Custom field |
Inventory and supply
Notification | Trigger | Filter idea | Example destination | Needs |
Low inventory on a popular item | product/inventory/updated | QtyAvailable <= threshold and the item is marked Bestseller | #inventory | Custom field |
Out of stock | product/inventory/updated | QtyAvailable <= 0 | #inventory | Standard fields |
Back in stock | product/inventory/updated | QtyAvailable > 0 and the last notified state was out of stock | #merchandising | Custom field |
Negative on-hand (data problem) | product/inventory/updated | QtyOnHand < 0 | #data-quality | Standard fields |
Variant out of stock | product/variant/inventory/updated | QtyAvailable <= 0 | #inventory | Standard fields |
Low stock at one store | product/inventory/updated | LocationId is the store and QtyAvailable <= threshold | #store-{location} | Standard fields |
Large inventory receipt | product/inventory/updated | QtyOnHand jumped by a lot | #receiving | Idea only |
Inventory cost changed | product/inventory/updated | Cost differs from the product's standard cost | #finance-review | Custom field |
Kit component short | product/inventory/updated | The record belongs to a kit and QtyAvailable <= 0 | #inventory | Standard fields |
Reorder point reached | product/inventory/updated | QtyAvailable <= the reorder-point custom field | #purchasing | Custom field |
Sell-through rate high | Scheduled | Needs sales velocity | #merchandising | Idea only |
Catalog and merchandising
Notification | Trigger | Filter idea | Example destination | Needs |
New product added | product/created | None | #catalog | Standard fields |
New variant added | product/variant/created | None | #catalog | Standard fields |
Product missing a description or image | product/created | Description empty, or no image | #content-team | Standard fields |
Product discontinued or deactivated | product/updated | Status inactive | #merchandising | Standard fields |
Product deleted | product/deleted | None | #data-governance | Standard fields |
New category created | category/product/created | None | #merchandising | Standard fields |
Product added to a featured category | ecommcategory/assignment/created | The category is Featured or Sale | #marketing | Standard fields |
New kit or bundle | product/kit/created | None | #catalog | Standard fields |
Related or substitute product linked | product/substitute/created | None | #merchandising | Standard fields |
Product weight or dimensions missing | product/created | Weight is 0 | #shipping-ops | Standard fields |
Product needs approval before going live | product/created | Custom field "awaiting approval" | #catalog-approvals | Custom field |
Pricing and promotions
Notification | Trigger | Filter idea | Example destination | Needs |
Price change on a product | product/updated | Price differs from a "last notified price" custom field | #pricing | Custom field |
Price below cost | product/updated | Price < Cost | #pricing | Standard fields |
Sale price set | product/updated | SalePrice is set | #promotions | Standard fields |
MSRP or MAP violation | product/updated | Price < the MAP custom field | #pricing | Custom field |
New price list published | category/customer/updated, or the record your source system uses for price lists | The customer category's price level changed | #pricing | Custom field |
Wholesale tier price changed | category/customer/updated | The category is a wholesale tier | #b2b-sales | Custom field |
Large markdown | product/updated | Price dropped by 25% or more | #pricing | Idea only |
About price lists: These could be used in conjunction with the Bulk Price data type as well.
Payments and finance
Notification | Trigger | Filter idea | Example destination | Needs |
Payment declined or failed | transaction/updated | A payment's status is Declined | #payments | Standard fields |
Order paid in full | transaction/updated | Sum of payments >= Total | #ar | Standard fields |
Partial payment received | transaction/updated | 0 < paid < Total | #ar | Standard fields |
Invoice overdue | Scheduled | Due date passed | #ar | Idea only |
Large payment | transaction/updated | A payment amount >= threshold | #finance-alerts | Standard fields |
Unusual payment method (cash over a limit, wire) | transaction/created | Method is Cash and Total >= limit | #finance-review | Standard fields |
New payment method configured | paymentmethod/created | None | #ops-config | Standard fields |
Chargeback recorded | transaction/created | Type is Chargeback, or a note says so | #payments | Custom field |
Split-tender order | transaction/created | More than one payment line | #finance-review | Standard fields |
Gift cards and loyalty
Notification | Trigger | Filter idea | Example destination | Needs |
High-value gift card issued | giftcard/created | Balance >= threshold | #loss-prevention | Standard fields |
Gift card redeemed in full | giftcard/updated | Balance is 0 | #gift-cards | Standard fields |
Gift card reloaded | giftcard/updated | The latest activity is a load | #gift-cards | Standard fields |
Gift card deactivated | giftcard/updated | Status inactive | #loss-prevention | Standard fields |
Rapid redemptions on one card | giftcard/updated | Needs an activity count over time | #loss-prevention | Idea only |
Loyalty tier reached | customer/updated | The tier custom field changed | #loyalty | Custom field |
Stores and locations
Notification | Trigger | Filter idea | Example destination | Needs |
New store or warehouse opened | location/created | None | #ops | Standard fields |
Store details changed (hours, address) | location/updated | None | #store-ops | Standard fields |
Location deactivated | location/updated | Status inactive | #ops | Standard fields |
New region or location group | locationgroup/created | None | #ops | Standard fields |
Create a channel for each new store | location/created | None | #store-{location} | Idea only (needs the integration to create channels) |
People and operations
Notification | Trigger | Filter idea | Example destination | Needs |
New employee onboarded | user/created | None | #people-ops | Standard fields |
Employee terminated or deactivated | user/updated | Status inactive | #it-offboarding | Standard fields |
Overtime on a timesheet | timecard/updated | Hours > 40 | #payroll | Standard fields |
Missed clock-out | timecard/updated | The entry has no end time after the shift | #store-managers | Standard fields |
Timesheet submitted for approval | timecard/updated | Status Submitted | #payroll | Standard fields |
Employee role changed | user/updated | The role field changed | #it-access | Custom field |
Integration health and errors
Error alerts are the most common notification. Instead of sending every error to one person, you can route them by system, data type, or error kind.
Notification | Trigger | Filter idea | Example destination | Needs |
Unresolved transfer error | message/created | ExternalSystemId set and the transfer has used all its retries | A person, or #ipaas-errors | Standard fields |
Errors routed per connected system | message/created | As above | One channel per system, for example #ipaas-errors-shopify | Standard fields |
Errors routed per data type | message/created | As above, split by the error's data type | #errors-orders, #errors-products | Standard fields |
First failure (early warning) | message/created | First retry | #ipaas-errors-early | Standard fields |
Authentication or credential failure | message/created | The text contains an authentication error code | #it-oncall, mention the owner | Standard fields |
Rate-limit or quota warning | message/created | The text contains a quota error code | #ipaas-health | Standard fields |
Error on a high-value order | message/created | Scope is transaction and the text names a large order | #big-sales and #ipaas-errors | Custom field |
Mapping or translation error (configuration, not data) | message/created | The error code is a mapping or validation code | #ipaas-config | Standard fields |
Error resolved | message/updated | The message is marked resolved | Thread reply or #ipaas-errors | Custom field |
Data-quality rule failed on a record | Any type, created or updated | The record fails a rule (missing SKU, bad email) | #data-quality | Standard fields |
Subscription stopped receiving data | Scheduled | Time since last transfer | #ipaas-health | Idea only |
Nonprofit and fundraising
Notification | Trigger | Filter idea | Example destination | Needs |
Major gift received | transaction/created | Donation Total >= the major-gift threshold | #major-gifts | Standard fields |
New recurring donor | transaction/created | Recurring flag set and it is the first gift | #donor-relations | Custom field |
First-time donor | customer/created | None | #donor-relations | Standard fields |
Tribute or memorial gift | transaction/created | A tribute note exists | #stewardship | Standard fields |
Campaign goal reached | Scheduled | Needs the campaign total | #development | Idea only |
Compliance, risk, and loss prevention
Notification | Trigger | Filter idea | Example destination | Needs |
Possible fraud (billing and shipping countries differ) | transaction/created | Billing country differs from shipping country | #fraud-review | Standard fields |
High-value order shipped to a new address | transaction/created | Total >= threshold and the address is not on the customer | #fraud-review | Custom field |
Restricted item sold (age-restricted, hazmat) | transaction/created | A line SKU is in the restricted list | #compliance | Standard fields |
Sale to an embargoed country | transaction/created | Shipping country is in the list | #compliance | Standard fields |
Employee discount used on a large order | transaction/created | Discount code is the employee code and Total >= limit | #loss-prevention | Standard fields |
Void or no-sale at a register | transaction/created | Type is Void | #loss-prevention | Standard fields |
Executive and team wins
Notification | Trigger | Filter idea | Example destination | Needs |
Record-breaking order | transaction/created | Total >= a stored record value | #wins | Custom field |
First sale in a new state or country | transaction/created | Needs order history | #wins | Idea only |
First sale of a newly launched product | transaction/created | A line SKU is the launch SKU | #product-launch | Standard fields |
Celebrate a top customer's order | transaction/created | The customer is in a top-customer category | #wins | Custom field |
Ideas that need more than one record
Ideas marked Idea only are listed so you can see where the boundary is. Notifications are triggered by an event on a single record, so they cannot see:
Totals and counts across many records (daily sales, the 1,000th order, sell-through rate).
History of a record (what an address or price used to be).
Time passing without an event (an order not shipped in 48 hours, an overdue invoice). These would need a scheduled trigger.
Several of these become possible if your source system writes the total, count, or previous value onto the record as a custom field; the notification can then filter on that field.
