// 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 "Check an article before publishing" 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 3 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: 3 credits, one call per step across 3 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 3 · 1 credit

Reading Time Calculator

Estimate how long a text takes to read and to speak aloud, from the text itself or a word count, at a chosen words-per-minute plus slow, average and fast presets.

Reads: text from input "text"

Gives back:wordCount numbercharacters numbersentences numberreading objectspeaking objectreadingPresets listspeakingPresets list, usable by every step below as “Output of an earlier step”
· Where each field comes from
text (optional)Text (String)

The text to estimate. Give this or wordCount. Example: Knowing how long your content takes to read helps you plan articles, documentation and talks. This short paragraph is here as a sample.

wordCount (optional)Number

Number of words, when you do not have the text itself. Ignored when text is given.

Left out. The capability will use its own default.

readingWpm (optional)Number

Reading speed, 50 to 1000 words per minute. Defaults to 238, the average adult. Example: 238

Left out. The capability will use its own default.

speakingWpm (optional)Number

Speaking speed, 50 to 500 words per minute. Defaults to 150, normal speech. Example: 150

Left out. The capability will use its own default.

What this step gives back
{
  "wordCount": 23,
  "characters": 135,
  "sentences": 2,
  "reading": {
    "label": "Custom",
    "wpm": 238,
    "minutes": 0.1,
    "time": "< 1 min"
  },
  "speaking": {
    "label": "Custom",
    "wpm": 150,
    "minutes": 0.15,
    "time": "< 1 min"
  },
  "readingPresets": [
    {
      "label": "Slow Reader",
      "wpm": 150,
      "minutes": 0.15,
      "time": "< 1 min"
    }
  ],
  "speakingPresets": [
    {
      "label": "Slow Speech",
      "wpm": 100,
      "minutes": 0.23,
      "time": "< 1 min"
    }
  ]
}

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

· Step 2 of 3 · 1 credit

Word Frequency Counter

Count how often each word occurs in a text and return a ranked table, most frequent first, with counts and percentages. Can ignore case, skip short words and drop common stop words.

Reads: text from input "text" · excludeStopWords is fixed · limit is fixed

Gives back:words listtotalWords numberuniqueWords number, usable by every step below as “Output of an earlier step”
· Where each field comes from
text (required)Text (String)

The text to count words in. Example: the cat and the dog and the bird

ignoreCase (optional)Yes/no (Boolean)

Merge The and the. Defaults to true. Example: true

Left out. The capability will use its own default.

minLength (optional)Number

Only count words with at least this many characters, 1 to 20. Defaults to 1. Example: 1

Left out. The capability will use its own default.

excludeStopWords (optional)Yes/no (Boolean)

Skip common English filler words. Defaults to false. Example: false

limit (optional)Number

Top N words to return, 1 to 1000. Defaults to 100. Example: 3

What this step gives back
{
  "words": [
    {
      "rank": 1,
      "word": "the",
      "count": 3,
      "percent": 37.5
    },
    {
      "rank": 2,
      "word": "and",
      "count": 2,
      "percent": 25
    },
    {
      "rank": 3,
      "word": "bird",
      "count": 1,
      "percent": 12.5
    }
  ],
  "totalWords": 8,
  "uniqueWords": 5
}

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

· Step 3 of 3 · 1 credit

Slug Generator

Turn any text into a URL-safe slug, folding diacritics and stripping punctuation.

Reads: text from input "title"

Gives back:slug textoriginalLength numberslugLength number
· Where each field comes from
text (required)Text (String)

The text to turn into a slug, such as a page title. Example: Hello World! This is a Test.

separator (optional)Text (String)

What to join words with. Defaults to "-". Example: -

Left out. The capability will use its own default.

lowercase (optional)Yes/no (Boolean)

Lower-case the result. Defaults to true. Example: true

Left out. The capability will use its own default.

max_length (optional)Number

Cut the slug at this length. 0, the default, means no cut. Example: 0

Left out. The capability will use its own default.

What this step gives back
{
  "slug": "hello-world-this-is-a-test",
  "originalLength": 27,
  "slugLength": 26
}

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

· 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.