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 nowA 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:
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. |
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.
visit_page
Navigate to a new URL.
{
"action": "visit_page",
"url": "https://example.com"
}
Property | Type | Required | Description |
---|---|---|---|
url |
string |
✅ | The URL to visit. |
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. |
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. |
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. |
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). |
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. |
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. |
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. |
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. |
visit_page
step to navigate to your target site.skip_if_error
for non-critical steps (like hovering or scrolling).take_screenshot
steps to organize your output.selector
values must match the value of a data-freshshots-id
attribute on the target element.data-freshshots-id
presence before authoring workflows.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