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 -- Write a task description and goals, then demonstrate the workflow on a live website. webSlinger captures your actions into a session map.
- Generate -- Feed one or more session maps into the script generator. It produces an automation script and an inputData template.
- Automate -- Select a script, provide inputData if needed, and run. webSlinger replays your workflow automatically.
- 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
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
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.
input: cityName - The city to look up weather forinput: startDate - Beginning of the date range to searchinput: username - The account username for login
Extract Goals
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.
extract: currentTemperature - The current temperature displayed on the weather pageextract: accountBalance - The checking account balance
Array Goals
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.
array: invoiceItems(description, quantity, unitPrice, total) - Line items from the invoicearray: orderHistory(orderDate, orderNumber, total) - Orders from the order history page
Checklist Goals
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.
Log in to the banking websiteNavigate to the order history pageClick 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:
- On the Record tab, click Load Goals from Previous Session
- Select a session map from the list -- the initial URL, task description, and goals are copied into the form fields
- 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:
- On the Record tab, write a task description that explains the workflow you want to automate
- Click Auto-Generate Goals
- webSlinger sends your description to an AI model, which returns a structured list of goals in the correct syntax
- 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.
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.,
unitPricenotfield3). 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:
- Enter the initial URL, task description, and goals
- Click Ready -- this configures the session and a message appears telling you to activate the extension
- 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:
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.
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.
- Click Edit Metadata from Previous Script -- a list of your previously generated scripts appears
- 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
- 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.
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:
Array value example (when you marked an input as an array in Step 3):
Replace the single demonstrated value with multiple values to create a list or array, then save the file.
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.
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.
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
- Select a script -- choose from your My Scripts library, Tutorial scripts, or Community scripts
- 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
- Click Ready -- this prepares the automation for launch
- 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.
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):
Nested arrays (from array: goals):
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
- Record separately -- create a session map for each website, one at a time
- Select both at generation -- in Step 1 of the generation wizard, select both session maps
- Outputs become inputs -- data extracted from the first session map's workflow becomes available as input data for the second
- 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:
- Create a new task -- click the button to start configuring a scheduled automation
- Select a script -- choose the automation script to run on schedule
- Specify input/output paths -- set the file path for the inputData JSON (if needed) and the folder where output files should be saved
- Set the schedule type -- choose how often the automation should run
- 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.
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.
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:
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.