white line

End to End Visibility

A monitoring and troubleshooting toolset to view errors and react in real time and prevent failures.

Zenaton job system logging

Insights into Overall Processes

Centralized dashboard showing job executions, external events and integrations with APIs.
Zenaton monitoring workflows

Peace of Mind

Enjoy peace of mind that all processes and external services are running as they should with an overview of workflows and tasks: scheduled, processing and executed.

Learn More

View events in context

Visuals of sequential steps within workflows to understand user experience and see the flow of data across multiple services. Search workflow instances by status and pause, kill, resume, restart or retry to avoid losing tasks.

Learn More
Zenaton workflows step by step
Zenaton error handling

Stop Searching your Log Files

A full toolset to view errors in context and retry or trigger actions in your application.

Learn More

Centralized Error Handling

There is no need to check log files in different tools. View real time error data in the context of workflows on the dashboard.

line

See Errors in Context

View error details within the context of the workflow and understand how users are impacted in order to prioritize resolution.

line

Error stacktrace and task details

View task properties and error details immediately on the dashboard and via email alerts. Retry individual or all tasks.

line

Agent Monitoring

View a list of installed Agents, performance stats, and tasks running or assigned.

Prevent Process Failures

APIs will timeout or return unexpected results. Get alerts and react to errors to ensure a smooth user experience and that data is not lost.

Real Time Alerts

Receive email alerts for errors and timeouts with stacktrace and task details.

Automatic and Manual Retries

Write automatic retries into your code for tasks and workflows or retry failed tasks on the dashboard.

Troubleshooting toolset

Pause, retry, resume or kill workflows directly from the dashboard to debug, or deploy new versions.

Trigger events in your app when errors occur.

Turn errors and timeouts into actionnable events by writing the logic into your code.

Expired Payment Workflow

The workflow will prompt the customer to enter new payment details if the default card is expired.:

  • Get the booking ID of the customer
  • Charge the customer using the default card
  • if the charge is successful, send a confirmation email to the customer
  • if it is expired, send an email to ask the customer to enter new payment details
  • then wait for the customer to pay
  • when payment is complete, send a booking confirmation email

const { workflow } = require("zenaton");

module.exports = workflow("ChargeForBookingWorkflow", {
  *handle(bookingId) {
     this.bookingId = bookingId;

     const booking = yield this.run.task("GetBookingById", this.bookingId);

     const result = yield this.run.task("ChargeForBookingUsingDefaultCard", booking);

     switch (result) {
            case CARD_CHARGED:
              await new SendBookingConfirmationMail(booking).execute();
              yield this.run.task("SendBookingConfirmationMail", booking);

              break;
              
            case CARD_EXPIRED:
              yield this.run.task("SendPaymentRequiredMail", booking);
              yield this.run.task("BookingPaidEvent", booking);
              yield this.run.task("SendBookingConfirmation", booking);
              break;
     }
  }
});