Skip to Content

4 - Create Skill to Show Delayed Shipments

Beginner
15 min.
Create a skill to return all shipments that are delayed.
You will learn
  • How to create a Joule skill
thecodesterDaniel WroblewskiJanuary 31, 2026
Created by
thenocodester
January 18, 2026
Contributors
thenocodester

Prerequisites

In this skill, we will use the same API but provide different binding, specifically, a different filter so a list of all delayed shipments are returned.

  • Step 1
    1. In your project, select the Overview tab.

    2. Click Create, and choose Joule Skill.

      Create skill
    3. In the Create Joule Skill dialog, enter the following details:

      Field Value
      Name Get Delayed Shipments
      Description A skill to get all delayed shipments from the GTT system

      Click Create.

      Name skill

      Once the Joule skill is created, you are taken to the skill builder.

  • Step 2

    You will again add the action getReadquery to read data from the shipments app, but now you will change the filter to bring back only delayed shipments.

    1. In the skill builder, click on the + button right under the trigger step.

      Add step

      Choose Call Action

      Call action
    2. Since you previously used the getReadquery action, it now appears in the list of Available Actions.

      Click getReadquery to select it.

      getReadquery

      The action is added to the skill flow.

  • Step 3

    Again, you need to map the action to a destination (that is, a specific backend), and also provided the filter for the API call.

    1. Make sure the action is selected.

    2. In the first, General tab, click inside the Destination Variable field.

      This time we do not have to create a new destination variable since we can reuse the one we created in the previous skill, since we are using the same action with the same destination (but different configuration).

      Select GetFromGTT.

      Pick destination
    3. You will now specify a different filter, this time to retrieve the delayed shipments.

      With the action selected, select the Input tab on the right-side pane.

      Click inside the $filter field, and select Apply a Formula. The formula editor opens.

      Bind filter

      Enter the following formula in the box:

      JavaScript
      Copy
      ConcatenateStrings(["delayStatus eq ", true, ""], "")
      
      Add formula

      Click Apply.

  • Step 4

    You need to create output parameters, so that the skill returns data to Joule (or to an agent), which can then use to determine the best response to the user.

    1. Click the Trigger step.

    2. Click the Parameters tab, and next to Skill Outputs click Configure.

      Configure output
    3. Click Add Ouput and add the following output parameter.

      Name Description Type Required List
      json JSON Any ✅ Checked✅ Checked

      Click Apply.

      Add output
    4. Click Save (upper right).

  • Step 5

    You created the output parameters to send data back to Joule or the agent. Now you need to supply the data.

    1. Click the End step.

      Click end
    2. For json output parameter, map it to getReadquery > result > d > results.

      Bind end
    3. Click Save (upper-right).

  • Step 6
    1. Click Test in the upper-right.

      Test
    2. The Test Project dialog should already be populated with the correct details, since you already tested and specified values.

      Field Value
      Environment Select the email address of your user
      Environment variables > GetFromGTT Select gttGetService

      Click Continue.

      Test variables

      A new browser tab opens with Joule.

    3. As a prompt, enter the following:

      Prompt
      Copy
      I would like to find all the delayed shipments
      
      Prompt

      Joule will output a list of delayed shipments.

      Response
    4. Once you are done testing, click Stop Testing.

      Stop testing
  • Step 7
    • Why can I set the type for an output parameter but not for an input parameter?

    • What is the purpose of actions?

Back to top