How-To Reference

What This Guide Covers

This reference covers the full webSlinger workflow -- this goes beyond the recording mechanics you learn in the interactive tutorial. Use it as a quick-reference when you need to look up how something works.

The interactive tutorial teaches recording: clicks, inputs, extractions, and arrays. The video tutorials walk through complete projects from start to finish. This guide fills the gap between those two -- it explains each step of the workflow in written form so you can look up exactly what you need.

The Full Workflow

Record
Generate
Automate
Review
  1. Record -- Write a task description and goals, then demonstrate the workflow on a live website. webSlinger captures your actions into a session map.
  2. Generate -- Feed one or more session maps into the script generator. It produces an automation script and an inputData template.
  3. Automate -- Select a script, provide inputData if needed, and run. webSlinger replays your workflow automatically.
  4. Review -- Check the output data file and execution report that download when automation completes.

A Note About Files

Session maps and scripts are stored on the webSlinger server. You interact with them through the website's tabs (Record, Generate, Automate), but you don't open or view the raw files directly. What you see on the website is metadata -- names, dates, goal summaries -- not the files themselves.

The files you do work with directly are inputData (JSON files you create and upload) and outputData (JSON files that download after automation). You also get execution reports (JSON files that provide details about what happened in a run).

Sections

  • Writing Task Descriptions -- how to describe your automation goal
  • Writing Session Goals -- the goal syntax for inputs, extractions, and arrays
  • Launching a Recording -- starting a session, demonstrating goals, saving session maps
  • Generating Scripts -- the 4-step generation wizard
  • InputData Configuration -- creating and editing input data files
  • Executing Automation -- running scripts from the Automate tab
  • Understanding Output -- what the output files contain
  • Multi-Tab Workflows -- automating across two websites
  • Troubleshooting -- diagnosing and fixing issues
  • Scheduling -- setting up recurring automation tasks
  • Credentials for Scheduling -- keyCocoon and scheduled tasks
  • Scheduled Task Output -- finding your results

Writing Task Descriptions

What the Task Description Does

The task description is a free-text field on the Record tab. You write it before you start recording. It helps you define what you are recording in the session map and it also guides script generation -- the AI reads your description alongside your recorded actions to produce a script that handles variations, edge cases, and data organization.

Think of it as instructions to the script generator: "Here's what I'm trying to accomplish, here's what you should know about how this website works, and this is what I want the script to do."

What Makes a Good Description

A good task description covers:

  • The end goal -- what you want the automation to accomplish
  • The lay of the land -- describe the website's layout or navigation patterns that aren't obvious from your recording alone
  • Efficiency hints -- URL patterns, shortcuts, or navigation tricks (e.g. pay attention to how the URL is structured when accessing different pages. Then you'll be able to construct the URL for any page).
  • Output organization -- how the extracted data should be structured (e.g. include the cityName from the inputData with the currentTemperature in each output record).
  • Variations -- what might differ between runs (different page layouts, optional fields, varying numbers of items)

Examples from Video Tutorials

AccuWeather temperature extraction: Describes navigating to a city's weather page and extracting the current temperature. Mentions including the inputData with the outputData.
Amazon invoice extraction: Describes how multiple orders are shown per page, how data for all orders on a page can be extracted at once and that multiple examples of extracting invoice details will be demonstrated. Mentions that orders span multiple pages and that the invoice data can have different numbers of items, grouped by delivery date.
Bank login with MFA: Describes the login flow including the multi-step authentication process (password and TOTP code entry). Mentions that keyCocoon handles the credential steps.

Tips

  • You can edit the task description later during script generation (Step 2) -- so if you think of additional guidance after recording, you can add it then
  • Be specific about stopping conditions -- "process all items on the page that have orderDate before endData" is better than "get all items in the date range"
  • If the website has pagination, describe how many pages to process or what condition should stop pagination
  • Mention any fields that might be empty or missing on some pages -- the script generator can handle optional data if it knows to expect it

Writing Session Goals

What Goals Do

Goals define the data contract for your automation. You write them on the Record tab before recording. During recording, goals appear as a checklist on the webSlinger overlay -- you mentally check them off as you demonstrate each one.

There are three goal types that have a recommended syntax: input, extract and array goals. You may add other free-form goals to help you remember what to do. We refer to these goals as checklist goals.

Input Goals

input: <variableName> [- description]

An input goal declares data that the user provides to the automation. The variableName becomes a field in your inputData JSON file. The description is optional.

Examples:
input: cityName - The city to look up weather for
input: startDate - Beginning of the date range to search
input: username - The account username for login

Extract Goals

extract: <variableName> [- description]

An extract goal declares data that the automation captures from the website. The variableName becomes a field in the output data. The description is optional.

Examples:
extract: currentTemperature - The current temperature displayed on the weather page
extract: accountBalance - The checking account balance

Array Goals

array: <arrayName>(<field1>, <field2>, ..., <fieldN>) [- description]

An array goal declares repeating data -- a table or list of items where each item has the same fields. The arrayName becomes an array in the output, and each field becomes a property of each item. The description is optional.

Examples:
array: invoiceItems(description, quantity, unitPrice, total) - Line items from the invoice
array: orderHistory(orderDate, orderNumber, total) - Orders from the order history page

Checklist Goals

Navigate to the account settings page

A checklist goal is plain text with no prefix. It serves as a reminder during recording -- a step you need to demonstrate but that doesn't directly map to an input or output variable. Common uses include navigation reminders and credential steps.

Examples:
Log in to the banking website
Navigate to the order history page
Click on the menu button

Loading from an Existing Session Map

You don't have to start from scratch every time. If you already have a session map with a similar task description, goals, or initial URL, you can load those fields into the form:

  1. On the Record tab, click Load Goals from Previous Session
  2. Select a session map from the list -- the initial URL, task description, and goals are copied into the form fields
  3. Edit anything you want to change -- update the goals, refine the task description, or change the URL

This is useful when you want to re-record a session with improved goals or a better task description, or when you're recording a variation of an existing workflow.

Auto-Generating Goals

If you're not sure how to structure your goals, you can have webSlinger generate them from your task description:

  1. On the Record tab, write a task description that explains the workflow you want to automate
  2. Click Auto-Generate Goals
  3. webSlinger sends your description to an AI model, which returns a structured list of goals in the correct syntax
  4. Review the generated goals -- edit, reorder, add, or remove any that don't fit your workflow

The generator understands all goal types (input, extract, array, and checklist) and puts them in workflow order. It also knows that credentials are handled by keyCocoon and that webSlinger manages page timing automatically, so it won't generate goals for those.

Tip: The more specific your task description, the better the generated goals. For example, "download bank transactions" will produce generic goals, while "log in to Wells Fargo, navigate to checking, and export transactions for a date range as CSV" will produce goals tailored to that exact workflow.

Tips

  • Use clear, descriptive variable names -- they appear in the inputData template and output files. camelCase is recommended but not required.
  • Array field names should match what the fields actually contain (e.g., unitPrice not field3). This makes it easier for webSlinger to semantically match goals to demonstrated actions.
  • You can have multiple input, extract, and array goals in a single session.
  • Goals appear as a checklist during recording -- use them to stay organized.

Launching a Recording Session

Starting a New Session

The Record tab has three fields: Initial Website (URL), Detailed Task Description, and Session Goals. Fill these in, then launch:

  1. Enter the initial URL, task description, and goals
  2. Click Ready -- this configures the session and a message appears telling you to activate the extension
  3. Activate the webSlinger extension by clicking the webSlinger icon in the browser toolbar while on the website page

webSlinger opens the target website in new tabs (main, validation, and copy) with the overlay active. Your goals appear as a checklist on the overlay.

Demonstrating Goals During Recording

During recording, each goal type corresponds to a specific action flow on the webSlinger overlay. Here's how you demonstrate each type:

input: variableName
Toggle the Input overlay on → Right-click on the target element → Enter the value → Click Record
extract: variableName
Toggle the Extract overlay on → Right-click on the target element → Select the extraction type → Click Record
array: arrayName(field1, field2, ...)
Toggle the Arrays overlay on → Right-click on an instance of the repeating element → Select the fields to extract → Click Record
Plain text (checklist goal)
Just perform the action (click, navigate, etc.) -- webSlinger records it automatically as part of the navigation flow
Login / Authentication
Toggle the Input overlay on → Right-click on the password or TOTP field → Click Authenticate with keyCocoon

The value you enter for an input goal during recording serves as an example. When the automation runs, it uses the value from your inputData file instead.

For array goals, you only need to demonstrate one instance of the repeating data. webSlinger detects the pattern and extracts all instances during automation.

See the keyBunker Setup Guide for details on configuring credentials.

Saving a Session Map

When you've demonstrated all your goals, save the session map from within the extension using the Save button on the overlay. The session map is uploaded to the webSlinger server and becomes available on the Generate tab for script generation.

Managing Session Maps

The Record tab also lists your saved session maps. Over time you may accumulate session maps from early attempts, experiments, or workflows you no longer need.

You can delete session maps you no longer need by selecting them and clicking the delete button.

Deletion is permanent. Deleted session maps cannot be recovered. If a script was generated from a session map, the script still works -- but you won't be able to re-generate from the deleted session map or import its settings into a new session.

Generating Scripts

The Generate Tab

Once you have a saved session map, switch to the Generate tab on the webSlinger website. The generation wizard walks you through four steps to produce an automation script.

Step 1: Select Session Maps

Choose which session map(s) to use for script generation. For a single-site workflow, select one session map. For multi-tab workflows (automating across two sites), select two session maps -- see Multi-Tab Workflows.

Re-generating from a Previous Script

If you've already generated a script and want to regenerate it -- for example, after modifying the description to correct an issue -- use Edit Metadata from Previous Script. This saves you from redoing the label assignments and input structure configuration in Steps 2 and 3.

  1. Click Edit Metadata from Previous Script -- a list of your previously generated scripts appears
  2. Select the script you want to update -- webSlinger loads its name, description, label assignments, and input structure, and pre-selects the session maps that were originally used
  3. Update the description or make other changes, then proceed through the wizard -- Steps 2 and 3 will be pre-filled with your previous settings

To discard the loaded metadata and start fresh, click Clear.

Tip: If the original session maps have been deleted, webSlinger will warn you and list what's missing. You can still proceed by manually selecting replacement session maps.

Step 2: Review Metadata

Review and edit the script metadata:

  • Script name -- a label for the generated script
  • Task description -- editable here, so you can refine or add guidance you thought of after recording
  • Input/output label matching -- webSlinger semantically assigns your goal labels to the recorded actions automatically. If any assignment is wrong, use the dropdown to override it and select the correct label.
  • Adding output labels -- if you extracted data during recording that wasn't in your goals, you can add output labels here so the output file uses clear field names for those extractions
  • Internal Inputs -- If you want an extracted value to be used as an input value, use the same label for both actions. The input becomes an internal input and will not be present in the inputData. If you combine two session maps, one that reads data from one site and another that inputs the same data in another, the inputs with labels matching extracted data labels become internal inputs
  • Repeated Actions -- If you demonstrate the same extraction or input actions for different examples you can reuse the labels. Say you demonstrate extracting the item description and item price for multiple items in multiple orders. Each example of item extraction can use the same labels (e.g. itemDescription and itemPrice). This teaches webSlinger that an order can have multiple items with the same data and that this pattern repeats over multiple orders.

Step 3: Structure Input Data

Configure how input data is organized:

  • Mark inputs as arrays -- check the box if an input represents a list of values (e.g., a list of cities) rather than a single value

Step 4: Results

The script has been generated. From this step you can:

  • See a confirmation that generation succeeded
  • Download the inputData template -- a JSON file pre-populated with the fields your script expects, ready for you to fill in with actual values

InputData Configuration

External vs Internal Inputs

InputData is a JSON file that provides values to your automation script. Not all inputs come from this file -- there are two kinds:

  • External inputs -- values you provide in the inputData file (e.g., a city name, a date range, a search term). These appear in the inputData template you download from the generation wizard.
  • Internal inputs -- values the automation extracts from one element and uses as an input to another element within the same run. For example, extracting links to invoice detail pages from a summary page and then using them to navigate to the detail pages. Internal inputs are satisfied automatically during execution and do not appear in the inputData template.

During script generation (Step 3), you can see which inputs are classified as external and which are internal. External inputs end up in the template; internal inputs do not.

The InputData Template

Download the template from Step 4 of the generation wizard. Open it in any text editor. The template shows the exact fields your script expects:

Single value example:

{ "startDate": "1/1/2026", "endDate": "1/31/2026" }

Array value example (when you marked an input as an array in Step 3):

{ "cityName": [ "Memphis, TN", "..." ] }

Replace the single demonstrated value with multiple values to create a list or array, then save the file.

Tip: Save different inputData files for different runs. For example, keep cities_northeast.json and cities_southwest.json for different regions, or dateRange_Q1.json and dateRange_Q2.json for different time periods.

Custom Inputs

You can add fields to the inputData JSON beyond what's in the template. Reference them in your task description so the script generator knows to use them. This is useful when you want the script to use additional data that wasn't part of the original recording -- for example, adding a startDate field and an endDate field to control what transactions should be included in the outputData. These are not values that are entered in input fields on a webPage, but inputs that control the automation script itself. Custom inputs can be used for date ranges, thresholds, or conditionals. For example, a redact input variable could be used to control whether or not to redact personal information in the outputData. You could set it to true when performing a public demonstration but false for normal operations.

Custom inputs are flexible: as long as the task description tells the script generator what the field means and how to use it, the generated script will incorporate it.

No InputData Needed?

Some scripts don't require any inputData -- for example, an automation that always visits the same URL and extracts the same data. In that case, leave the inputData field as null on the Automate tab.

Managing Scripts

Your Script Library

The Automate tab lists all your generated scripts. Over time you may accumulate scripts from earlier attempts or workflows you no longer need.

You can delete scripts you no longer need by selecting them and clicking the delete button.

Deletion is permanent. Deleted scripts cannot be recovered. The session maps used to generate the script are not affected -- you can always regenerate a script from its session maps if you still have them.

Contributing to the Community Library

If you have a script that works well for a publicly accessible website, you can share it with other webSlinger users. Click the Contribute button next to a script to submit it for review. The community library is curated -- submitted scripts are not automatically approved and will be reviewed before appearing in the library.

Note: Only contribute scripts for publicly accessible websites. Do not contribute scripts that contain personal data, account-specific URLs, or credentials.

Executing Automation Scripts

The Automate Tab

When you're ready to run an automation, switch to the Automate tab on the webSlinger website.

Running a Script

  1. Select a script -- choose from your My Scripts library, Tutorial scripts, or Community scripts
  2. Browse for inputData -- click the file browser to select your inputData JSON file, or leave it as null if the script doesn't need external inputs
  3. Click Ready -- this prepares the automation for launch
  4. Activate the extension -- click the webSlinger icon in the browser toolbar to start execution

What Happens During Execution

When automation begins:

  • Two automation tabs open: automationA and automationB. The script uses these tabs to execute actions on the target website.
  • The automation log on the overlay shows real-time progress -- each action as it executes, selector matches, and any warnings.
  • When complete, output files download automatically to your browser's default download location.
Important: Do not interact with the automation tabs while the script is running. Clicking or navigating in those tabs can interfere with the automation.

Understanding Output

Output Files

When automation completes, two files download to your browser's default download location:

  • Output data JSON -- the structured data matching your extraction goals
  • Execution report JSON -- a detailed log of every action, selector result, and timing

Output Data Structure

The output data file contains the values your script extracted, organized by your goal variable names:

Flat fields (from extract: goals):

{ "currentTemperature": "72", "humidity": "45%" }

Nested arrays (from array: goals):

{ "invoiceItems": [ { "description": "Widget A", "quantity": "2", "unitPrice": "$10.00", "total": "$20.00" }, { "description": "Widget B", "quantity": "1", "unitPrice": "$25.00", "total": "$25.00" } ] }

Execution Report

The execution report provides diagnostic details about the automation run:

  • summary -- total actions, successful actions, failed actions, duration
  • logText -- timestamped entries for each action showing what happened
  • Selector confidence -- warnings if a selector matched an element with lower-than-expected confidence

Use the execution report to diagnose issues when a script doesn't produce the expected results.

Multi-Tab Workflows

When You Need Two Sites

Multi-tab workflows let you extract data from one website and use it on another. For example, you might extract event dates from a calendar website and enter them into Google Calendar.

How It Works

  1. Record separately -- create a session map for each website, one at a time
  2. Select both at generation -- in Step 1 of the generation wizard, select both session maps
  3. Outputs become inputs -- data extracted from the first session map's workflow becomes available as input data for the second
  4. Two tabs at runtime -- during execution, automationA handles one site and automationB handles the other

Key Points

  • Each session map is recorded independently -- you don't need to switch between sites during recording
  • The script generator handles the data flow between the two workflows
  • The task description is important here -- explain which data from site A should be used on site B

Troubleshooting

Check InputData

Does your inputData match the template?

Open the inputData template you downloaded from the generation wizard (Step 4) and compare it to the file you're using. Check that:

  • Field names match exactly (case-sensitive)
  • The structure is correct -- single values vs arrays
  • The JSON is valid (no trailing commas, mismatched brackets, or unquoted strings)

Check Termination Conditions

Could the script be looping or stopping early?

Ambiguous phrases in the task description can cause problems:

  • "Until done" or "all items" without clear stopping criteria can cause the script to loop endlessly
  • "Process everything" without specifying page limits may lead to unexpected behavior on paginated sites
  • Be explicit: "Extract items from the first 3 pages" is clearer than "extract all items"

Check for Contradictory Instructions

Does the task description give conflicting guidance?

If the task description contains contradictions, the script generator may resolve them unpredictably. For example:

  • "Extract all items" but also "only get the first page"
  • "Navigate using the search bar" but also "go directly to the URL"

Review your task description for conflicting instructions and remove the ambiguity.

Review the Execution Report

What does the execution report say?

Open the downloaded execution report JSON and check:

  • summary -- look at the failed actions count
  • logText -- scan for error messages or warnings
  • Selector confidence -- low confidence warnings indicate the script found an element but wasn't fully certain it was the right one

Simplify

If a script isn't working, try breaking it into smaller tasks. This may help isolate which subtask has the issue. Then work on the problematic part, providing more guidance in the task description, until the subtask works. Then incorporate what you learn into the full script.

Scheduling Automation

Requirements

Scheduling requires taskSpinner, a local scheduling service installed via the webSlinger setup installer (setup.bat). If taskSpinner is not installed, the Schedule tab will prompt you to run the installer.

Creating a Scheduled Task

On the Schedule tab:

  1. Create a new task -- click the button to start configuring a scheduled automation
  2. Select a script -- choose the automation script to run on schedule
  3. Specify input/output paths -- set the file path for the inputData JSON (if needed) and the folder where output files should be saved
  4. Set the schedule type -- choose how often the automation should run
  5. Configure timezone -- set the timezone for the schedule

Schedule Types

  • Once -- run a single time at the specified date and time
  • Daily -- run every day at the specified time
  • Weekly -- run on a specific day of the week
  • Monthly -- run on a specific day of the month
  • Hourly -- run every hour
  • Interval -- run at a custom interval (e.g., every 4 hours)

How It Runs

taskSpinner checks every 5 minutes for tasks that are due to run. When a task is due, it launches the browser, executes the automation script, saves the output, and closes the browser.

Note: Your computer must be on and awake for scheduled tasks to run. taskSpinner runs as a local service -- it does not run in the cloud.

Credentials for Scheduled Tasks

Authentication Sessions

If your scheduled automation involves logging into a website, keyCocoon requires an active authentication session to serve credentials. Before the scheduled task runs, start an authentication session with a duration long enough to cover the execution window.

Example: If your task runs at 9:00 AM and you're up at 7:00, a 2-hour session started at 7:00 covers it. If you want to sleep in, start a 12-hour session before bed. The session just needs to still be active when the task runs.

Setup

For details on configuring credentials in keyBunker -- adding passwords, TOTP secrets, and understanding domain matching -- see the keyBunker Setup Guide.

Finding Scheduled Task Output

Where Results Go

Scheduled task output is saved to the output folder path you specified when creating the scheduled task. This is a local folder on your computer.

Output File Naming

Output files are named with the script name and a timestamp, so each run produces a uniquely named file. For example:

weatherData_2026-03-02_090000.json weatherData_2026-03-02_090000_report.json

Check the output folder after the scheduled execution time to find your results.

What's in the Folder

  • Output data files -- the extracted data from each run
  • Execution reports -- diagnostic logs for each run, saved alongside the output data

Over time, the output folder accumulates results from every scheduled run, each with its own timestamp.

Extending Beyond Web Automation

Other tools can monitor the output folder and take action when webSlinger writes new data. For example, an N8N workflow could watch the folder for new files and automatically send the extracted data to a spreadsheet, database, or messaging service -- enabling workflows that extend beyond web automation into broader data pipelines.