Get started for free Login

Workflow Steps

A Workflow is a sequence of browser actions defined in the steps array of a WorkflowJSON. Each step performs a specific action like visiting a page, clicking an element, or capturing a screenshot.

Each step is one of the following supported types:


⚙️ Shared Properties (All Steps)

All steps inherit from a common BaseStep interface and support these optional properties:

Property Type Description
action string Required. Specifies the type of action.
skip_if_error boolean Optional. Defaults to true. Skips the step if it fails.
execution_timeout number Optional. Time in ms to wait before the step times out. Defaults to 5000.
url string Optional. Overrides the base URL for this specific step.

🚀 Step Types and Properties

Note:
The selector field in all step types refers to a custom HTML attribute:
data-freshshots-id="your_id_here"
It does not accept arbitrary CSS selectors.


1. visit_page

Navigate to a new URL.

{
	"action": "visit_page",
	"url": "https://example.com"
}
Property Type Required Description
url string The URL to visit.

2. take_screenshot

Capture a screenshot of a page or element.

{
	"action": "take_screenshot",
	"save_screenshot_to": "screenshot.png",
	"selector": "main-content",
	"viewport_size": { "width": 1280, "height": 720 },
	"image_zoom": 1.25,
	"padding": 10
}
Property Type Required Description
save_screenshot_to string Where to save the screenshot (filename).
selector string | null The data-freshshots-id value of the element to capture.
viewport_size { width: number, height: number } Define the viewport size.
image_zoom number Zoom factor for the screenshot.
padding number Adds padding (in px) around the screenshot area.

3. click_element

Click on an element.

{
	"action": "click_element",
	"selector": "submit-button"
}
Property Type Required Description
selector string data-freshshots-id of the element to be clicked.

4. type_input

Type text into an input field.

{
	"action": "type_input",
	"selector": "search-input",
	"input_value": "FreshShots"
}
Property Type Required Description
selector string data-freshshots-id of the input field.
input_value string The text to type into the field.

5. select_dropdown

Select an option from a dropdown.

{
	"action": "select_dropdown",
	"selector": "country-select",
	"input_value": "Singapore"
}
Property Type Required Description
selector string data-freshshots-id of the dropdown element.
input_value string Option to select (as visible text in the dropdown).

6. check_box

Check a checkbox input.

{
	"action": "check_box",
	"selector": "accept-terms"
}
Property Type Required Description
selector string data-freshshots-id of the checkbox element.

7. uncheck_box

Uncheck a checkbox input.

{
	"action": "uncheck_box",
	"selector": "subscribe-newsletter"
}
Property Type Required Description
selector string data-freshshots-id of the checkbox element.

8. scroll_to

Scroll to a specific element or position.

{
	"action": "scroll_to",
	"selector": "footer-section",
	"scroll_position": { "y": 300 }
}
Property Type Required Description
selector string data-freshshots-id of the element to scroll to.
scroll_position { x?: number, y?: number } Optional override for exact scroll position.

9. hover_over

Simulate a hover interaction over an element.

{
	"action": "hover_over",
	"selector": "main-menu"
}
Property Type Required Description
selector string data-freshshots-id of the element to hover over.

🧠 Best Practices

  • Begin with a visit_page step to navigate to your target site.
  • Use skip_if_error for non-critical steps (like hovering or scrolling).
  • Use descriptive filenames in take_screenshot steps to organize your output.
  • All selector values must match the value of a data-freshshots-id attribute on the target element.
  • Avoid using general CSS selectors — this system is designed to work with explicit IDs only.
  • Use tools or developer inspection to verify data-freshshots-id presence before authoring workflows.

No credit card required

Get started for free

Save time and avoid manual screenshot hassle — keep your docs and helpdesk perfectly up to date with automated, consistent visuals that impress users and cut support requests.

Get started now