> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jsonify.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Workflow Design Principles

> Learn best practices for planning and building effective and reliable Jsonify workflows.

Building powerful automations with Jsonify becomes much easier when you follow a few key design principles. This section outlines best practices to help you create workflows that are effective, reliable, and easy to understand.

## 1. Plan Your Goal Clearly

Before you use a single block, clearly define what you want your workflow to achieve. Ask yourself:

* What is the ultimate output I need? (e.g., a list of company names and their websites, extracted product reviews, a summary of articles).
* What are the starting points? (e.g., a list of URLs, a search query, a set of variables).
* What are the main steps involved in getting from the start to the end, even if a human were doing it?

A clear goal makes it easier to choose the right blocks and structure your workflow logically.

## 2. Think Sequentially

Workflows in Jsonify execute blocks in a sequence, from top to bottom. The output of one block often becomes the input or context for the next.

* **Logical Order:** Ensure your blocks are arranged in a logical order. For example, you can't `Extract Data` before you `Open Websites` or `Follow Links` to a page.
* **One Thing at a Time:** While some blocks can perform multiple internal steps (like `Explore Content`), it's often clearer to break down complex tasks into a series of simpler blocks.

## 3. Choose the Right Block for the Job

Jsonify provides a variety of blocks, each designed for specific tasks. Understanding their purpose is key:

* Need to input a list of URLs? Use `Open Websites`.
* Need to click a button or type text? Use `Interact with Page`.
* Need to find links based on a description? Use `Find Links` (followed by `Follow Links`).
* Need to get specific data from a page? Use `Extract Data`.
* Need to run the same logic for multiple inputs? Start with `Open datasets`.

Refer to the "Mastering Workflow Blocks" section for details on each block.

## 4. Build and Test Iteratively

Don't try to build a massive, complex workflow all at once.

* **Start Simple:** Begin with the first few core steps (e.g., opening a site, extracting one piece of data).
* **Test Often:** Run your workflow frequently as you build it. This helps you catch errors early and verify that each part is working as expected.
* **Add Complexity Gradually:** Once a section is working, add the next logical set of blocks.
* **Use Small Data Sets for Testing:** When using `Open datasets` or processing lists, test with a small number of items first to speed up debugging.
* **Handling Paginated Data:** To extract similar data from multiple pages (e.g., paginated search results or product listings), it's often more reliable and less likely to trigger anti-bot measures to provide direct links to each page as input (e.g., using the "Add a numbered range of URLs" feature in `Open Websites`) rather than using a dedicated pagination block that simulates clicks on "Next" buttons. Processing each page URL as a new starting point can be beneficial because each new browser session initiated by the agent might use a unique IP address, making the activity appear less like a single bot rapidly clicking through pages from one IP.

## 5. Write Clear Instructions for the AI

Many blocks (like `Extract Data`, `Explore Content`, `Find Links`, `Interact with Page`) rely on your natural language instructions to guide the AI.

* **Be Specific:** Vague instructions lead to unpredictable results. Instead of "Get info," try "Extract the product price listed under 'Our Price'."
* **Provide Examples:** For `Extract Data`, giving examples in the description field significantly improves accuracy.
* **Use Constraints:** Tell the AI what *not* to do if necessary (e.g., "Do not extract text from the footer").
* **Context is Helpful:** Briefly stating the context (e.g., "You are on a search results page...") can aid the AI.

## 6. Understand Data Flow

Be mindful of how data flows through your workflow:

* **Variables:** Data from `Open datasets` is injected into subsequent blocks.
* **Block Outputs:** Some blocks (like `Find Links` or `Extract Data`) produce output that is implicitly used by the next block (like `Follow Links`) or can be explicitly captured and used later.
* **Iteration:** When using `Open datasets` or "Follow each link" in `Follow Links`, the subsequent blocks will run for each item/page, processing data in that specific context.

## 7. Keep It Readable

* **Name Your Workflows:** Give your workflows descriptive names.
* **Logical Grouping:** Arrange blocks in a way that visually represents the flow of logic.

By applying these principles, you'll be well on your way to creating robust and efficient automations with Jsonify.
