Scheduling Jobs From Rules
Rules can be combined with Jobs to create advanced automated processes within Hantera based on various events. For example, you might want to send an email to the customer when the Order is confirmed. With a Rule that triggers on an Order state change, this becomes trivial.
INFO
This guide covers event-driven scheduling — creating a job in response to an event. For time-driven scheduling (running a job on a fixed cadence), see Job Definitions.
In the following example, we assume that we already have a Reactor that uses Mailtrap to send e-mails called mailtrap with method sendEmailFromTemplate. You can find this exact example in the Cookbook
The Rule effect used to schedule jobs is scheduleJob. Not all Rule Hooks support the scheduleJob effect. Refer to the Rule Runtime Hooks Reference for more details.
//order-confirmation.hrule
param input: OnOrderCommands
param templateUuid: text
param reactorId = 'mailtrap' // Default value 'mailtrap' but allow override
let sendOrderConfirmation = {
effect = 'scheduleJob'
reactorId = reactorId
method = 'sendEmailTemplate'
argument = {
to = {
email = input.order.invoiceAddress.email
name = input.order.invoiceAddress.name
}
templateUuid = templateUuid
templateVariables = {
customer = {
name = input.order.invoiceAddress.name
address = {
firstName = input.order.invoiceAddress.name
street = input.order.invoiceAddress.addressLine1
city = input.order.invoiceAddress.city
state = input.order.invoiceAddress.state
zip = input.order.invoiceAddress.postalCode
country = input.order.invoiceAddress.countryCode
}
}
order = {
number = input.order.orderNumber
items =
input.order.deliveries
select d => d.orderLines
flatten
select l => {
name = l.description
quantity = l.quantity
price = l.unitPrice
}
isRush = false
total = input.order.orderTotal
}
}
}
}
from input match
{
before: {
orderState: 'pending'
}
order: {
orderState: 'confirmed'
}
} |> sendOrderConfirmationSee Also
- Rules — Event-driven automation with rules
- scheduleJob effect — The
scheduleJobeffect reference - Job Definitions — Defining and scheduling jobs
- Rule Hooks Reference — Available lifecycle hooks