// workflows/new

Build a workflow.

Pick the capabilities, say where each field gets its value, and run it before you save it. Building one costs nothing: what an account changes is where it is kept. Every rule the server enforces is checked here as you type, so saving cannot fail for a reason you could not see.

This is the "Apply the discount, then split the bill" example with its sample values filled in. It is not saved yet: change anything, test it, then save it as your own.
· What it is called
· What it asks for

Declare a value here when it changes from run to run. Steps read it by its key. Anything that never changes belongs in the step itself as a fixed value, not here. A workflow may declare up to 10 inputs, and none at all is fine.

· What it does

Steps run top to bottom, one after another. A step can use a fixed value, one of the inputs above, or the output of any step above it. Up to 12 steps.

Every one of its 2 steps is pure computation, so a test run in the builder happens on your own machine and costs nothing. Your input is not sent to us for it.

Run from your saved workflows, from your code or from an assistant, the work happens on our machines and is metered: 2 credits, one call per step across 2 steps.

Adding a step that needs our side, meaning anything touching a key we hold, a database, the network or a file, would move the whole run onto our servers and it would be charged there too.

· Step 1 of 2 · 1 credit

Discount Calculator

Final price and saving after a discount given as a percentage or a fixed amount, with optional extra stacked discounts applied one after another and optional VAT added on the discounted price. Money is rounded to cents.

Reads: price from input "price" · discountPercent from input "discount" · vatPercent from input "vat"

Gives back:originalPrice numberdiscountPercent numbersaving numberfinalPrice numbervatPercent numbervatAmount numberfinalPriceWithVat numbersteps list, usable by every step below as “Output of an earlier step”
· Where each field comes from
price (required)Number

The full price before the discount. Example: 80

discountPercent (optional)Number

Percentage off. Give this or discountAmount, not both. Example: 25

discountAmount (optional)Number

Fixed amount off. Give this or discountPercent, not both.

Left out. The capability will use its own default.

additionalDiscountPercents (optional)List (Array)

Extra percentages applied one after the other on the reduced price. Example: [10]

Left out. The capability will use its own default.

vatPercent (optional)Number

Tax percentage to add on the discounted price. Example: 21

What this step gives back
{
  "originalPrice": 80,
  "discountPercent": 32.5,
  "saving": 26,
  "finalPrice": 54,
  "vatPercent": 21,
  "vatAmount": 11.34,
  "finalPriceWithVat": 65.34,
  "steps": [
    {
      "step": 1,
      "percent": 25,
      "priceAfter": 60
    },
    {
      "step": 2,
      "percent": 10,
      "priceAfter": 54
    }
  ]
}

A later step reading this one can take the whole object, or a path into it such as originalPrice.

· Step 2 of 2 · 1 credit

Tip Calculator

Tip on a restaurant bill at a percentage, the total, and the even split per person. Can round the total up to the next whole unit, in which case the tip absorbs the difference.

Reads: bill from "finalPriceWithVat" of Discounted price · tipPercent is fixed · people from input "people"

Gives back:bill numbertipPercent numberpeople numberroundUp yes/notip numbertotal numberperPerson objecteffectiveTipPercent number
· Where each field comes from
bill (required)Number

The amount on the bill. Example: 86.4

Takes number from “Discounted price, for example 65.34.
tipPercent (optional)Number

Tip percentage, 15 by default. Example: 15

people (optional)Number

Number of people splitting the bill, 1 by default. Example: 4

roundUp (optional)Yes/no (Boolean)

Round the total up to a whole amount. Off by default. Example: false

Left out. The capability will use its own default.

What this step gives back
{
  "bill": 86.4,
  "tipPercent": 15,
  "people": 4,
  "roundUp": false,
  "tip": 12.96,
  "total": 99.36,
  "perPerson": {
    "total": 24.84,
    "tip": 3.24
  },
  "effectiveTipPercent": 15
}

A later step reading this one can take the whole object, or a path into it such as bill.

· Test it before you save

This runs the workflow exactly as written, without saving it. It uses the real capabilities, so what you see is what a later run will do. Inputs are prefilled from the examples you gave them.

Stays on your device

This runs in your browser. What you put in is never sent to ToolForte, so we could not read it if we wanted to.

One exception, so the sentence above stays true: when a run finishes here we record that it happened, which ready made workflow it came from if it came from one, how many steps it had and how long it took. Never what you put in, never what came back, and never anything written into the steps themselves. It is how we can tell which tools are worth keeping.

Runs in your browser. No credits, nothing sent to us.
Saved in this browser

This is saved by your browser on this device. It is not sent to ToolForte, so it is not on your other devices and we cannot recover it for you.

Clearing your browser data removes it, and so does the delete button here.

Leave without savingUnsaved changes.