Node Types (Actions)



Introduction

Node Types (Actions) are the fundamental building blocks of a workflow. Each node performs a specific action in the browser, much like how you would interact with a website manually.

Why Understand Node Types?

  • Create efficient workflows: Know which node to use and when.
  • Optimize costs: Select the right nodes to save tokens.
  • Avoid errors: Understand correct configurations for stable workflows.
  • Simulate human behavior: Combine nodes to mimic a real person.

Categorizing Node Types

Traffic4SEO has 6 main action types:

1. Navigation

  • Url Goto: Open a specific URL.
  • Urls Goto: Open a random URL from a list.

2. Interaction

  • Click Random Link: Click a random link on the page.
  • Click on Link: Click a specific link.
  • Text Input: Enter text into a field.

3. Timing

  • Wait: Wait for the page to load or simulate reading content.

🌐 Url Goto - Navigate to URL

Description

Navigates to a specific URL. This is the most common node and is usually the first node of any workflow.

When to Use?

Recommended when:

  • Opening Google for a search.
  • Opening your website directly.
  • Opening a specific product page.
  • Starting any workflow.

Not recommended when:

  • You want to open one of many random URLs → Use Urls Goto instead.
  • You are already on the page and want to click a link → Use Click on Link instead.

Configuration

Field Description Required Example
Target URL The address of the website to open. ✅ Yes https://example.com
Referral Source Enter referral source URLs (one per line). The browser will simulate coming from one of these URLs. Leave blank for direct access. ❌ No See below

Usage Examples

Example 1: Open Google

Target URL: https://www.google.com/

Example 2: Open a product page

Target URL: https://example.com/products/nike-air-max-shoes

Example 3: Open a blog post

Target URL: https://blog.example.com/seo-guide-2024

Example 4: Open a page with a referrer

Target URL: https://example.com/products/nike-shoes
Referral Source:
https://www.google.com/search?q=nike+shoes
https://www.facebook.com/
https://example.com/blog/top-10-sports-shoes

→ The system will randomly pick 1 URL from the referrer list.
→ The browser will open the page with the HTTP Referer header.
→ Google Analytics will record the traffic source from the referrer.

Cost

30 tokens (fixed) - Does not depend on the URL or load time.

Important Notes

{warning} Note:

  • This node is usually the first node in a workflow.
  • URLs must start with http:// or https://.
  • If the URL doesn't exist or errors, the workflow will fail.

{info} About Referral Sources (Referrers):

  • Referrers help simulate traffic coming from other sources (Google, Facebook, blogs...).
  • If left blank → No referrer (direct traffic).
  • If there are multiple URLs → The system randomly picks 1 URL as the referrer.
  • The referrer will be recorded in Google Analytics and other analysis tools.
  • All referral URLs must be valid (start with http:// or https://).

🌐 Urls Goto - Navigate to Random URL

Description

Randomly navigates to a URL from the list you provide. Good for creating diverse traffic.

When to Use?

Recommended when:

  • Randomly opening one of many blog pages.
  • Creating diverse traffic for multiple products.
  • Avoiding concentrating traffic on a single page.
  • Wanting to distribute traffic evenly across many URLs.

Not recommended when:

  • You only have 1 URL → Use Url Goto instead (cheaper).
  • You need to open all URLs in the list → Use multiple separate Url Goto nodes.

Configuration

Field Description Required Example
Target URL List Multiple URLs (one per line). ✅ Yes See below
Referral Source Enter referral source URLs (one per line). The browser will simulate coming from one of these URLs. Leave blank for direct access. ❌ No See below

Usage Examples

Example 1: Diverse Blogs

https://example.com/blog/post-1
https://example.com/blog/post-2
https://example.com/blog/post-3
https://example.com/blog/post-4
https://example.com/blog/post-5

→ The system randomly picks 1 of the 5 URLs.

Example 2: Products

https://shop.com/nike-shoes
https://shop.com/adidas-shoes
https://shop.com/puma-shoes

→ Traffic is distributed evenly across 3 products.

Example 3: Landing pages

https://example.com/promo-new-year
https://example.com/promo-march-8
https://example.com/promo-opening

Example 4: Landing pages with referrers

Target URL List:
https://example.com/promo-new-year
https://example.com/promo-march-8
https://example.com/promo-opening

Referral Source:
https://www.google.com/
https://www.facebook.com/
https://www.youtube.com/
https://example.com/blog

→ Randomly picks 1 target URL + 1 referral URL.
→ Simulates traffic from many different sources.

Cost

45 tokens (fixed) - 15 tokens more expensive than Url Goto due to the random feature.

Important Notes

{info} Note:

  • Each run only opens 1 random URL, not all of them.
  • The probability of picking each URL is equal (even random).
  • You should have at least 3-5 URLs to ensure diversity.
  • All URLs must be valid; if the selected URL errors, the workflow fails.

{success} About Referral Sources (Referrers):

  • Mechanism: Randomly picks 1 target URL + Randomly picks 1 referral URL.
  • If left blank → Traffic will be direct traffic.
  • If there are many referrers → Creates highly diverse traffic sources.
  • Example: 5 target URLs + 4 referral URLs = 20 different combinations!
  • All referral URLs must be valid (start with http:// or https://).

⏱️ Wait - Waiting

Description

Waits for a specified number of seconds. This is an EXTREMELY IMPORTANT node for making workflows run naturally and avoiding bot detection.

Why Wait?

3 main reasons:

  1. To let the webpage load

    • After opening a URL, the page needs time to load.
    • After clicking, the new page needs time to load.
  2. To simulate a real person reading content

    • Real people don't click continuously.
    • Reading an article takes 30-60 seconds.
    • Browsing a product takes 10-20 seconds.
  3. To avoid bot detection

    • Bots usually don't have delays → easy to detect.
    • Random delays make it more like a real human.

When to Use?

Always use it:

  • After every Url Goto (wait for page load).
  • After every Click (wait for new page load).
  • Between actions (simulate thinking time).
  • Before leaving a page (simulate finishing reading).

Never skip it:

  • There's no case where you don't need to Wait!
  • A workflow without Wait = unnatural = easy to detect.

Configuration

Field Description Required Limit Example
Minimum Sec Minimum wait time ✅ Yes 1-1800 5
Maximum Sec Maximum wait time ✅ Yes 1-1800, ≥ min 10

Usage Examples

Example 1: Page load (short)

Min: 2 seconds
Max: 5 seconds
→ The system randomizes between 2-5 seconds
→ Cost: 2-5 tokens

Example 2: Reading an article (long)

Min: 30 seconds
Max: 60 seconds
→ Simulates a reader
→ Cost: 30-60 tokens

Example 3: Browsing a product (medium)

Min: 10 seconds
Max: 20 seconds
→ Simulates viewing a product
→ Cost: 10-20 tokens

Example 4: Thinking before clicking (very short)

Min: 1 second
Max: 3 seconds
→ Simulates thinking
→ Cost: 1-3 tokens

Cost

1 token/second (based on the actual randomized time)

Note: This is the ONLY node with a non-fixed cost - the cost depends on the randomized time.

Calculation Formula

Wait Cost = Randomized seconds × 1 token

Example:

- Min: 5s, Max: 10s
- Runtime randomized to 7s
- Cost = 7 tokens

Usage Recommendations

Situation Min Max Reason
Basic page load 2s 5s Enough for basic load
Complex page load 5s 10s Page has many images, JS
Reading a headline 3s 8s Quick headline read
Reading short paragraph 10s 20s Reading 1-2 paragraphs
Reading full article 30s 60s Reading the whole post
Viewing a product 10s 25s Looking at images, desc
Thinking before click 1s 3s Natural delay

Important Notes

{danger} Crucial:

  • Always add Wait between steps to keep the workflow natural!
  • Too short a wait (< 1s) = bot-like → easy to detect.
  • Too long a wait (> 300s) = wastes tokens unnecessarily.
  • Use a Min-Max range to create randomness (like a real person).

{success} Savings Tip:

  • Wait just enough: 2-5s for page loads, 10-20s for reading content.
  • No need for very long waits if the goal is only a pageview.
  • Use longer waits if you want to increase engagement metrics (time on page).

🖱️ Click Random Link - Click Random Link

Description

Clicks a random link on the page. Useful for reducing bounce rate and increasing pages per session.

When to Use?

Recommended when:

  • Reducing bounce rate (user doesn't exit immediately).
  • Increasing pageviews (from 1 page → multiple pages).
  • Randomly browsing blog posts.
  • Exploring products.
  • Simulating natural browsing behavior.

Not recommended when:

  • You need to click a specific link → Use Click on Link instead.
  • The page has no links → The workflow will fail.

Configuration

Field Description Required Example
CSS Selector Filter links by selector ❌ No .content a

Leave blank = Click any link on the page.

Usage Examples

Example 1: Click any link

CSS Selector: (blank)
→ Clicks any link on the page.

Example 2: Only click links within the content

CSS Selector: .content a
→ Only clicks links inside an element with the "content" class.
→ Ignores menu, footer, and sidebar links.

Example 3: Only click article links

CSS Selector: .post-link
→ Only clicks links with the "post-link" class.

Example 4: Click a product link

CSS Selector: .product-card a
→ Only clicks links within a product card.

Cost

30 tokens (fixed)

How it Works

  1. The system finds all links on the page (or within the selector if provided).
  2. Randomly selects 1 link.
  3. Clicks that link.
  4. Navigates to the new page.

Important Notes

{warning} Note:

  • If the page has no links → The workflow fails.
  • If the link leads out of the website → It may not be able to return.
  • Use a CSS Selector to ensure it only clicks internal links.
  • Always add a Wait node after this for the new page to load.

🖱️ Click on Link - Click on Link

Description

Clicks a specific link with text, URL, or a CSS selector. Perfect for precise navigation.

When to Use?

Recommended when:

  • Clicking the "Read More" button.
  • Clicking the "Contact Us" link.
  • Clicking a specific product.
  • Clicking a Google search result.
  • Needing the exact link to click.

Not recommended when:

  • You want to click randomly → Use Click Random Link instead.
  • You don't know the exact text/URL of the link.

Configuration

Field Description Required Example
Selection Type How to find the link ✅ Yes text, url, selector
Value Text, URL, or selector value ✅ Yes Varies
Internal Only Only click same-domain links ❌ No true/false

3 Ways to Find a Link

1. Link Text (text) - Easiest

Type: text
Value: "Read More"
→ Clicks the link with the text "Read More"

2. Link URL (url) - Accurate

Type: url
Value: "/products/"
→ Clicks the link that contains "/products/" in the URL

3. CSS Selector (selector) - Advanced

Type: selector
Value: ".product-link"
→ Clicks the link with the "product-link" class

Usage Examples

Example 1: Click "Read More"

Selection Type: Link text
Value: Read More
Internal Only: true
→ Clicks the "Read More" button within the website

Example 2: Click a Google result

Selection Type: Link URL
Value: /example.com
Internal Only: false
→ Clicks the result that contains "example.com" in the URL

Example 3: Click a specific product

Selection Type: Link text
Value: Nike Air Max Shoes
Internal Only: true
→ Clicks the link with the text "Nike Air Max Shoes"

Example 4: Click using CSS Selector

Selection Type: CSS Selector
Value: .featured-product a
Internal Only: true
→ Clicks the link within the featured product

Cost

30 tokens (fixed)

How it Works

  1. The app finds all links (<a>) on the page matching the condition.
  2. Priority Matching Rules (Case-insensitive):
    • For text type: Priority 1 matches links with 100% exact text. If none exists, it automatically falls back to Priority 2 matching links that contain the text (partial match).
    • For url type: Priority 1 matches links with 100% exact URL (both absolute and relative URLs). If none exists, it automatically falls back to Priority 2 matching links that contain the URL string (partial match).
  3. If there are multiple matches at the same priority level → The app selects the first visible valid link.
  4. Safety Handling: Skips non-navigable or external protocol links (such as mailto:, tel:, javascript:, #).
  5. Clicks that link and navigates to the new page.

Example:

Page has 2 links:

- Link 1: "Click here" (pointing to /post-1)
- Link 2: "Here" (pointing to /post-2)

Config: Type = text, Value = "here"
→ The app selects Link 2 (100% exact match, case-insensitive)

If the page only has Link 1:
→ The app selects Link 1 (partial match fallback)

Important Notes

{info} Note:

  • If no matching link is found → The workflow fails.
  • Multiple matches → Selects the first valid visible link.
  • Text and URL matching are case-insensitive.
  • Automatically prioritizes exact matches first, then falls back to partial matches.
  • Safely skips mailto:, tel:, and javascript: links to prevent OS dialog interruptions.
  • Switch "Internal Only" on to avoid wandering off the website.
  • Always add a Wait action after this.

{success} Tip: If the text has accents or special characters, it's better to use the URL instead of the text for more accuracy.


⌨️ Text Input - Input Text

Description

Enters text into an input box or field on a web page (identified by a CSS selector) while accurately simulating natural human typing speed.

Key Feature: Supports a list of multiple input texts (one text/keyword per line). On each workflow execution run, the engine automatically picks one random text from the list to enter into the target element.

When to Use?

Recommended when:

  • Typing search keywords into Google (with automated rotation across multiple queries within a single workflow).
  • Filling out form fields with randomized option lists.
  • Searching for products or articles on a website.
  • Entering comments or reviews with varied content.

Not recommended when:

  • Forms require login credentials → Workflows do not support authentication yet.
  • Dealing with CAPTCHAs → Workflows cannot bypass them.

Configuration

Field Description Required Example
CSS Selector Target input field position ✅ Yes textarea[name="q"]
Text List of input texts/keywords (one per line). A random text is picked for each execution run ✅ Yes See examples below
Send Enter Automatically press the Enter key after typing ❌ No true/false

Usage Examples

Example 1: Rotating Google Search Keywords (Recommended)

CSS Selector: textarea[name="q"]
Text:
Traffic4SEO
best seo automation tool
seo traffic bot
Send Enter: false
→ On each execution, the system randomly selects 1 of the 3 keywords to type into the Google search box.
→ Does not press Enter (will use a subsequent Click on Link node to click Search).

Example 2: Product Search with Automatic Enter

CSS Selector: input[name="search"]
Text:
nike air max shoes
adidas ultraboost shoes
puma running shoes
Send Enter: true
→ Picks a random shoe keyword from the list, types it, and automatically presses Enter to perform the search.
→ No subsequent Click node needed.

Example 3: Filling Random Email Addresses

CSS Selector: input[type="email"]
Text:
[email protected]
[email protected]
[email protected]
Send Enter: false
→ Automatically selects 1 email address to enter into the form.

Example 4: Random Review/Comment Entry

CSS Selector: #comment-box
Text:
Great article, very helpful!
Detailed explanation and easy to follow.
Thanks for sharing this knowledge.
Send Enter: false
→ Types a randomly selected review message into the comment box.

Cost

10 tokens (fixed) - The cheapest among all node types!

How to Find a CSS Selector

Method 1: Use Browser DevTools (Recommended)

  1. Right-click on the input field.
  2. Select "Inspect".
  3. Right-click on the HTML element representing the input field.
  4. Select "Copy" → "Copy selector".
  5. Paste into the CSS Selector field in the node configuration.

Method 2: Find by Attribute

<!-- Input with a name attribute -->
<input name="email">
→ Selector: input[name="email"]

<!-- Input with an id -->
<input id="search-box">
→ Selector: #search-box

<!-- Textarea with a class -->
<textarea class="comment-input">
→ Selector: textarea.comment-input

Important Notes

{warning} Configuration Notes:

  • Line Separation: Each line in the "Text" field represents a separate value/keyword. Do not use commas to separate keywords unless you want to type the entire string containing commas.
  • CSS Selector Accuracy: The selector must target the correct input/textarea element; if invalid, the workflow step will fail with an element not found error.
  • Visibility & Interactivity: The input field must be visible on screen and interactable (not hidden or disabled/readonly).
  • Human-like Typing: The system types each character with randomized micro-delays to simulate human behavior.

{info} SEO Optimization Tip:

Entering a list of keywords in the Text Input node allows you to flexibly rotate search keywords within a single workflow. This diversifies incoming traffic from Google Search queries without the need to create and manage multiple separate workflows.

Additionally, if "Send Enter" is set to true, you don't need to add a Click node to submit the form.


Usage Tips for Node Types

1. Always Add Wait Between Nodes

❌ WRONG:
Url Goto → Text Input → Click on Link
(No Wait)

✅ CORRECT:
Url Goto → Wait (2-5s) → Text Input → Wait (1-2s) → Click on Link → Wait (5-10s)

2. Choose the Right Node to Save

Situation: Open a specific URL

❌ WASTEFUL: Urls Goto (45 tokens)
✅ SAVING: Url Goto (30 tokens)

Difference: 15 tokens/run = 7,500 tokens for 500 runs!

3. Combine Selectors for Accuracy

❌ NOT GOOD:
Click Random Link (no selector)
→ Might click menu, footer, or ads.

✅ BETTER:
Click Random Link with selector: .post-content a
→ Only clicks links within the article content.

4. Use Text Instead of Selector When Possible

Click on Link:

😊 EASY: Type = text, Value = "Read More"
😰 HARD: Type = selector, Value = "div.card > a.btn-primary:nth-child(2)"

→ The result is the same, but text is much easier!

5. Test Each Node Before Combining

Complex Workflow:
Url Goto → Wait → Text Input → Wait → Click → Wait → Click Random Link

How to test:

1. Create a workflow with only: Url Goto → Wait
2. Test Run → OK
3. Add: Text Input → Wait
4. Test Run → OK
5. Continue adding node by node...

→ Much easier to find errors than testing everything at once!

Combining Node Types

Example Workflow 2: Reducing Bounce Rate

1. Url Goto: https://example.com/blog/great-article
   ↓
2. Wait: 30-60s (simulate reading the whole post)
   ↓
3. Click Random Link: selector = ".related-posts a"
   ↓
4. Wait: 10-20s (browse the related post)
   ↓
5. Click on Link: text = "Home"
   ↓
6. Wait: 5-10s (view homepage)

Frequently Asked Questions

❓ What's the difference between Url Goto and Click on Link?

  • Url Goto: Forces the browser to open a new address (like typing in the address bar).
  • Click on Link: Finds an existing link on the page and clicks it (like a real user).

Tip: Always use Click on Link if the link already exists on the page to make it more natural.

❓ Why did my workflow fail at the Click node?

Common reasons:

  1. Link hasn't loaded yet: Use a Wait node before clicking.
  2. Selector is wrong: Double-check it in DevTools.
  3. Link is hidden: The app can't click what it can't see.

❓ Can I use CSS Selectors for everything?

Yes, but:

  • Text is easier for links.
  • Selectors are necessary for input fields or buttons without text.

Next Steps