Advanced/Data Transforms

Data Transforms

Clean and reshape each field's value before it is exported. 60 transforms and 16 ready-made presets, each with a worked example.

How transforms work

Add transforms to a field in the field editor. They run in order, and each one receives the output of the one before.

  • A transform never fails the run: when it cannot apply (for example, no number in the text), it keeps the value as it was.
  • Transforms apply to the data you export (CSV, JSON, Excel, Google Sheets). The page itself is not changed.
  • A preset is a saved chain of transforms, such as "Clean price". Pick one to add all its steps at once.
  • The Settings column shows the options each transform takes. Transforms without settings work on the value as it is.

Lists of values

Unique, Nth, Filter and Slice work on a field that holds several values (for example, all image links of a product). The examples show the list before and after.

Split and Join

On a single value, Split and Join leave the text unchanged. To keep one part of a text, use Split & Pick.

Text transforms

Change case, add or remove text, and clean up characters.

Trim

Remove leading and trailing whitespace

Settings
none
Input
hello world
Output
hello world

Lowercase

Convert to lowercase

Settings
none
Input
Hello WORLD
Output
hello world

Uppercase

Convert to uppercase

Settings
none
Input
Hello World
Output
HELLO WORLD

Capitalize

Capitalize first letter of each word

Settings
none
Input
the quick brown fox
Output
The Quick Brown Fox

Replace

Find and replace text

Settings
{"find":"USD","replace":"$"}
Input
Price: USD 10
Output
Price: $ 10

Append

Add text to the end

Settings
{"text":" USD"}
Input
49.99
Output
49.99 USD

Prepend

Add text to the beginning

Settings
{"text":"https://example.com"}
Input
/products/42
Output
https://example.com/products/42

Strip Prefix

Remove a text from the start

Settings
{"text":"phone:tel:"}
Input
phone:tel:01881445503
Output
01881445503

Strip Suffix

Remove a text from the end

Settings
{"text":" reviews"}
Input
120 reviews
Output
120

Text Between

Keep the text between two markers

Settings
{"startText":"[","endText":"]"}
Input
Price: [12.50] USD
Output
12.50

Title Case

Lowercase, then capitalize each word

Settings
none
Input
SHAPLA jheel restaurant
Output
Shapla Jheel Restaurant

Slugify

Make a URL-safe slug

Settings
none
Input
Café Déjà Vu & Co.
Output
cafe-deja-vu-co

Remove Accents

Turn é into e, ü into u

Settings
none
Input
Crème brûlée
Output
Creme brulee

Normalize Digits

Convert Bengali, Arabic and other digits to 0-9

Settings
none
Input
০১২৩৪৫
Output
012345

Collapse Newlines

Join lines into one

Settings
{"delimiter":" "}
Input
Line one Line two Line three
Output
Line one Line two Line three

Pad Start

Pad to a fixed length

Settings
{"length":3,"padChar":"0"}
Input
7
Output
007

Format transforms

Strip markup, shorten text, and turn text into numbers and dates.

Strip HTML

Remove all HTML tags

Settings
none
Input
<p>Hello <b>world</b></p>
Output
Hello world

Decode HTML Entities

Convert &amp; to &, &quot; to ", etc.

Settings
none
Input
Tom &amp; Jerry &quot;Show&quot;
Output
Tom & Jerry "Show"

Clean Whitespace

Normalize multiple spaces to single space

Settings
none
Input
too many spaces here
Output
too many spaces here

Remove Special Chars

Keep only letters, numbers, and spaces

Settings
none
Input
Hello, World! #1 (new)
Output
Hello World 1 new

Truncate

Limit to first N characters

Settings
{"length":20,"suffix":"..."}
Input
ScraperQ extracts structured data from pages
Output
ScraperQ extracts st...

Extract Words

Keep only first N words

Settings
{"count":3}
Input
one two three four five
Output
one two three

To Number

Parse 1,234.5 or 1.234,5 into a plain number

Settings
none
Input
1,234.50
Output
1234.5

Parse Count

Turn 1.2K or 3M into a full number

Settings
none
Input
1.2K
Output
1200

Round

Round to a number of decimals

Settings
{"decimals":2}
Input
3.14159
Output
3.14

Math

Add, subtract, multiply or divide

Settings
{"operation":"divide","operand":4}
Input
100
Output
25

Unix Time to Date

Convert a timestamp to a date

Settings
{"format":"YYYY-MM-DD"}
Input
1767268800
Output
2026-01-01

Format Date

Rewrite a date, e.g. YYYY-MM-DD

Settings
{"format":"DD/MM/YYYY"}
Input
2026-03-14T12:00:00Z
Output
14/03/2026

Relative Date

Turn "2 weeks ago" into a date

Settings
{"referenceDate":"2026-03-14","format":"YYYY-MM-DD"}
Input
2 weeks ago
Output
2026-02-28

Normalize Phone

Keep digits and a leading +

Settings
none
Input
+880 1881-445503
Output
+8801881445503

Extract transforms

Pull one value out of a longer text: an email, a price, a date.

Extract Email

Extract email address from text

Settings
none
Input
Contact: [email protected] today
Output
[email protected]

Extract Phone

Extract phone number from text

Settings
none
Input
Call +1 555-123-4567 now
Output
+1 555-123-4567

Extract Numbers

Extract numeric values

Settings
none
Input
Qty 12 of 30
Output
12

Extract Date

Extract date in YYYY-MM-DD format

Settings
none
Input
Posted on 2026-03-14 by admin
Output
2026-03-14

Extract First Line

Get only the first line of text

Settings
none
Input
First line Second line
Output
First line

Split & Pick

Split by a delimiter and keep one part

Settings
{"delimiter":",","index":1}
Input
red, green, blue
Output
green

Regex All Matches

Keep every match of a pattern

Settings
{"pattern":"\\d+","group":0,"delimiter":" | "}
Input
a1 b22 c333
Output
1 | 22 | 333

JSON Pick

Read a path from a JSON value

Settings
{"path":"price.amount"}
Input
{"price":{"amount":12.5,"currency":"USD"}}
Output
12.5

Extract Price

Keep the amount as a plain number

Settings
none
Input
Now $1,299.00 (was $1,499.00)
Output
1299

Extract Currency

Keep the currency symbol or code

Settings
none
Input
€49,90
Output
€

URL transforms

Read parts of a link, make links absolute, encode and decode.

URL Encode

Encode special characters for URLs

Settings
none
Input
shoes & boots
Output
shoes%20%26%20boots

URL Decode

Decode URL-encoded characters

Settings
none
Input
shoes%20%26%20boots
Output
shoes & boots

Make Absolute URL

Convert relative URL to absolute

Settings
{"baseUrl":"https://example.com"}
Input
/products/42
Output
https://example.com/products/42

Query Parameter

Read one parameter from a URL

Settings
{"name":"q"}
Input
https://example.com/search?q=shoes&page=2
Output
shoes

URL Host

Keep the host name of a URL

Settings
{"stripWww":true}
Input
https://www.example.com/a/b?x=1
Output
example.com

URL Path

Keep the path of a URL

Settings
none
Input
https://www.example.com/a/b?x=1
Output
/a/b

Strip Query

Remove the query string from a URL

Settings
none
Input
https://example.com/p/42?utm_source=x&ref=y
Output
https://example.com/p/42

Extract URL

Keep the first link found in the text

Settings
none
Input
See https://example.com/a for details
Output
https://example.com/a

Base64 Decode

Decode base64 (or URL-safe base64) text

Settings
none
Input
SGVsbG8gV29ybGQ=
Output
Hello World

Advanced transforms

Regex, defaults, templates, and transforms for lists of values.

Regex

Extract or replace using regex pattern

Settings
{"pattern":"\\d+","group":0}
Input
Order #12345 shipped
Output
12345

Split

Split string by delimiter into array

Settings
{"delimiter":", "}
Input
red, green, blue
Output
red, green, blue

Join

Join array elements with delimiter

Settings
{"delimiter":" / "}
Input
red, green, blue
Output
red, green, blue

Substring

Extract characters by position

Settings
{"start":0,"end":7}
Input
ScraperQ
Output
Scraper

Default Value

Use default if value is empty

Settings
{"defaultValue":"N/A"}
Input
(empty)
Output
N/A

To Boolean

Turn yes/no words into true/false

Settings
none
Input
Yes
Output
true

Template

Build text around the value, e.g. "Tel: {value}"

Settings
{"format":"Price: {value} USD"}
Input
49.99
Output
Price: 49.99 USD

Unique Items

Remove repeated items from a list

Settings
none
Input
["red","blue","red","green","blue"]
Output
["red","blue","green"]

Pick Item

Keep one item of a list

Settings
{"index":1}
Input
["first","second","third"]
Output
second

Filter Items

Keep the list items that match a pattern

Settings
{"pattern":"^a"}
Input
["apple","banana","avocado"]
Output
["apple","avocado"]

Slice Items

Keep a range of list items

Settings
{"start":1,"end":3}
Input
["1","2","3","4","5"]
Output
["2","3"]

Presets

Ready-made chains for common jobs. Each preset lists the transforms it applies, in order.

E-commerce

Clean Price

Extract price value, remove extra text and symbols except currency

Steps
trim → regex
Input
Now only $24.99 today
Output
$24.99

Parse Rating

Extract numeric rating (e.g., "4.5 out of 5" → "4.5")

Steps
trim → regex
Input
4.5 out of 5 stars
Output
4.5

Extract Stock Status

Extract stock availability status

Steps
trim → regex → lowercase
Input
Availability: in stock
Output
in stock

Parse Dimensions

Extract dimensions (e.g., "10 x 5 x 2 cm" → "10 x 5 x 2 cm")

Steps
trim → regex
Input
Size: 10 x 5 x 2 cm
Output
10 x 5 x 2 cm

Contact

Extract Email

Extract email address from text

Steps
regex
Input
Write to [email protected] for help
Output
[email protected]

Extract Phone

Extract phone number (international format)

Steps
regex
Input
Call +1 555-123-4567 now
Output
+1 555-123-4567

Date and time

Extract Date (ISO)

Extract date in YYYY-MM-DD format

Steps
regex
Input
Posted on 2026-03-14
Output
2026-03-14

Extract Date (US)

Extract date in MM/DD/YYYY format

Steps
regex
Input
Posted on 03/14/2026
Output
03/14/2026

Extract Time

Extract time in HH:MM format

Steps
regex
Input
Opens at 9:30 AM daily
Output
9:30 AM

Text

Clean Whitespace

Remove excess spaces and normalize

Steps
trim → clean-whitespace
Input
too many spaces
Output
too many spaces

Strip HTML

Remove all HTML tags

Steps
strip-html → trim
Input
<div> Hello <b>world</b> </div>
Output
Hello world

Slug Format

Convert to URL-friendly slug

Steps
lowercase → trim → regex → regex
Input
Hello World Again
Output
hello-world-again

Extract Numbers

Extract only numeric values

Steps
regex
Input
Qty 12
Output
12

Remove Special Chars

Keep only letters, numbers, spaces

Steps
regex → trim
Input
Hello, World! #1
Output
Hello World 1

Social Handle

Extract @username or clean handle

Steps
trim → regex
Input
@scraperq
Output
scraperq

URL

Make Absolute URL

Convert relative URL to absolute (requires base URL)

Steps
trim → absolute-url
Input
/products/42
Output
https://example.com/products/42

Stock status matches lowercase words

The stock status preset looks for lowercase phrases such as "in stock" or "sold out". Add a Lowercase transform before it if the page writes them with capitals.