Lecca.io LogoLecca.io
TriggersPolling strategy

Create Time Based Trigger

We are working on a CLI to make this easier

Create triggers folder

Locate the your app folder in the apps directory and add a new triggers folder if it doesn't exist already.

new-trigger.trigger.ts
your-new-app.app.ts

Create trigger file

Create a new file within your app's trigger folder. Call it something like new-trigger.trigger.ts. Make sure it ends with .trigger.ts.

Add your own values. We provided mock data to help initialize the process.

import {
  createTimeBasedPollTrigger,
  isValidMilliOrNull,
} from "@lecca-io/toolkit";
 
export const newTrigger = createTimeBasedPollTrigger({
  id: "your-new-app_trigger_new-trigger",
  name: "",
  description: "",
  inputConfig: [
    //Add a configuration to display the form
  ],
  run: async ({ configValue, connection }) => {
    //This must return an array of items with a timestamp.
    //Must have the most recent items.
    return [];
  },
  mockRun: async () => {
    return [
      //Must return an array
    ];
  },
  extractTimestampFromResponse({ response }) {
    //Each element in the array response must have some sort of date.
    //This method should extract and return the millisecond time.
    //If the response does not have a timestamp of some sort, then you cannot use
    //the time based poller trigger
    //use a util like dateStringToMilliOrNull or isValidMilliOrNull to handle this.
 
    return response.timestamp; //change to the millisecond timestamp
  },
});
  1. export const newTrigger = createTrigger

    • replace newTrigger with the name of your trigger.
  2. Add an id: your-new-app_trigger_new-trigger

    • Make sure the id follows the format <app-id>_trigger_<trigger-name-in-kebab-case>
  3. Add a name for your trigger

  4. Add a brief one sentence description

  5. Add an Input Config

    This is used to generate the form for the UI to configure this trigger.

    Read more about the Input Config

  6. Define the run method.

    This method will run every time the trigger polls.

    The common arguments used by this method are configValue and connection.

    1. configValue represents the Input Config that was used when the user configured this trigger.

    2. connection is the decrypted connection properties of the connection selected by the user when configuring this trigger.

      If using an oauth2 connection, do not worry about handling refresh tokens, that is handled by the engine. Just make the api call assuming the access token is valid.

    Return an array of the most recent items with a timestamp.

    It is very important that you return an array of recent items with timestamps. The engine saves the latest timestamp, and every time it polls, if there is a later timestamp, it updates. All items in the returned array that are larger than the previously saved timestamp, will trigger an execution.

  7. Define the mock method.

    The mock method is used by users when they want to generate a mock output instead of making an real api call to their third party integration.

    Ouput data is used to map to other nodes in the workflow builder. This is done by clicking Save & Test in the configuration form.

  8. Define the extractTimestampFromResponse method

    Each result returned from the run method must have some sort of timestamp that can be transformed into a millisecond timestamp.

Add new trigger to the app's triggers property

your-new-app.app.ts
import { createApp } from "@lecca-io/toolkit";
 
export const yourNewApp = createApp({
  ...
  actions: [],
  triggers: [newTrigger], 
  connections: [],
});

On this page