📝 Step 1: Login and Access Workflows

  1. Go to worqhat.app
  2. Login to your organization account.
  3. Navigate to “Workflows” from the dashboard or sidebar.

⚙️ Step 2: Create a New Workflow

  1. Click on “Create Workflow”.
  2. You’ll be redirected to the Workflows Page, where all your workflows are listed.
  3. Click on “Create New” — this opens a modal asking for the workflow name.

⚡ Step 3: Choose a Trigger

A Trigger is how your workflow is started. Select one of the following:

✅ Supported Trigger Types:

  • URL-based: Start the workflow by making an HTTP request to a provided URL.
  • File-based: Similar to URL-based, but allows uploading a file with the request.
  • Time-based: Works like a cron job. Trigger it at regular intervals (seconds, minutes, hours).
  • Email-based: Send an email to a unique address to trigger the workflow.
  • WhatsApp-based: A message sent to a specific WhatsApp number will start the workflow.

✍️ Step 4: Describe Your Workflow (Optional)

You’ll now see an optional modal to describe your workflow, which helps WorqHat’s AI assistant generate the first draft:

🧠 AI Description Fields:

  • Given: e.g., “an Image, a Text Document, etc.”
  • I want to: e.g., “detect faces, analyze sentiment, etc.”
  • And return: e.g., “the detected objects, the analysis results, etc.”

You can also add:

  • Additional Instructions (Optional)
  • Reference Image (Optional)

🎨 Step 5: Canvas — Build Your Workflow

Whether you used the AI or not, you’ll be taken to the Workflow Canvas:

  • Use the right-hand sidebar to drag and drop nodes.
  • Connect nodes in the desired flow.
  • Click on a node to configure it and use variables via the {} button in node settings.

🔧 Step 6: Configure Docs and API Access

  1. Click on the “Docs” button (next to Analytics).
  2. WorqHat will provide:
    • Suggested API Key
    • Your workflow endpoint
  3. Click on “Generate Document” for code examples in:
    • Python
    • Node.js
    • cURL
    • and more…

✅ Step 7: Activate and Save Your Workflow

  • Switch the status from 🔴 Red (Inactive) to 🟢 Green (Active).
  • Click “Save Changes” to preserve your work.

🧪 Step 8: Test Your Workflow

Use the built-in “Test Flow” button to test your workflow — no website or Postman required.


📦 Variables and Storage

You can define variables in your workflow to store and reuse information between steps — just like memory cells in a program.

These are extremely helpful when:

  • You want to pass values (like user input or file content) from one node to another.
  • You need conditional branching or custom logic.
  • You want to reduce hardcoding and make your workflows dynamic.

🔧 How to Access Variables

Use the {} button inside any node’s input field to reference a variable.

💡 Example: Setting a Limit

Suppose you’re checking whether a submitted number exceeds a limit of 50.

  1. Variable Node
    Set a variable called limit with value: 50

  2. Condition Node
    Use an expression like: inputNumber > limit

  3. Message Node (If True)
    Message: The value exceeds the limit of limit.

This keeps your workflow clean, reusable, and easily adjustable later.


📊 Analytics

  • Click on “Analytics” to see logs and performance metrics of your workflow.

🧠 Summary

FeatureDescription
Drag-n-Drop CanvasBuild workflows visually
Trigger TypesURL, File, Email, WhatsApp, Time
API + DocsAuto-generate code and API keys
Manual & AI BuildSupports both methods
Variable SupportDynamic inputs/outputs
Built-in TesterNo Postman needed

📍 Example Use Cases

  • Lead Generation: Receive WhatsApp leads and analyze sentiment.
  • File Parser: Upload Excel sheets and extract structured data.
  • Email Classifier: Send emails to a workflow that tags spam or priority.

🙋 Need Help?

Check out our Docs Page or reach out to our community for support.


// Example: Trigger a URL-based Workflow using fetch
fetch("https://api.worqhat.com/flows/trigger/FlowId", {
  method: "POST",
  headers: {
    Authorization: "Bearer Token",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    text: "Your input text here",
  }),
})
  .then((response) => {
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    return response.json();
  })
  .then((data) => {
    console.log(data);
  })
  .catch((error) => {
    console.error("Error:", error);
  });