Skip to content

Automation Robots

Required Access Level

Admin or Super Admin

What is a robot?

A robot is an automated program that executes tasks without human intervention. Robots can:

  • Start processes automatically at scheduled times
  • Fetch data from external systems to feed Flowi Agentic
  • Execute steps that do not require human interaction
  • Integrate with ERPs, tax systems, and other platforms

Each robot is a pre-compiled JAR file uploaded to the platform, operating on a CRON schedule.

Attention: Robots ≠ Agents

"Robots" handle rigid systemic integrations (code). If you need cognitive automation (reading PDFs, interpreting free-form text, or making flexible AI-based decisions), refer to the AI Agents manual.

Listing Robots

Access Automation → Robots in the sidebar.

The screen displays:

  • Robot name
  • Status (active / inactive)
  • Next scheduled execution
  • Last execution result (success / failure)

Registering a new Robot

  1. Click on New Robot
  2. Fill in:
    • Name — robot identification
    • Schedule — cron expression (e.g.: 0 8 * * MON = every Monday at 8 AM)
    • JAR File — upload the compiled file
    • Parameters — optional JSON configuration
  3. Click Save

Cron Expression

Format: minute hour day-of-month month day-of-week
Examples:

  • 0 8 * * * — every day at 8 AM
  • 0 8 * * MON — every Monday at 8 AM
  • */30 * * * * — every 30 minutes

Activating and Deactivating

Use the active/inactive toggle in the list to control whether the schedule is running. A deactivated robot will not execute but remains registered.

Manual Execution

Click Run now to trigger the robot outside of its schedule. Useful for testing.

Monitoring Executions

The execution history for each robot shows:

  • Start and end date/time
  • Status: SUCCESS or FAILED
  • Output log or error message

In case of failure

Robot failures are logged but do not interrupt other processes. Check the log to diagnose the issue and fix the JAR before reactivating.

JAR Development (Native API)

To ensure security and performance, Flow.IA robots run isolated in a Sandbox (URLClassLoader) within the same virtual machine as the system. They receive a RobotContext that provides access to global platform resources without the need for REST calls or Token authentication.

Java Code Structure

To build your robot, implement the FlowIaRobot interface:

java
import ia.flow.engine.FlowIaRobot;
import ia.flow.engine.RobotContext;
import java.util.Map;

public class MyRobot implements FlowIaRobot {
    @Override
    public void execute(RobotContext context) {
        context.log("Scanning CMS...");

        // Direct access to JSON Parameters provided in the UI
        Map<String, String> params = context.getParameters();
        
        // Native API Access: Consume or write to the current Tenant's CMS
        context.getCms().getRecordsByCollectionSlug("invoices")
               .forEach(record -> context.log("Processing invoice: " + record));

        // Native API Access: Start new processes
        context.getProcesses().startProcess("billing-workflow", Map.of("source", "robot"));

        // Native API Access: Query organizational members
        var members = context.getTenant().getMemberEmails();
        context.log("Members notified: " + members.size());

        // Native API Access: Upload files (e.g. attaching to a process instance or task)
        byte[] pdfContent = new byte[]{ /* ... file bytes ... */ };
        java.util.UUID attachmentId = context.getStorage().uploadAttachment(
            "instance", "instance-uuid-here", "invoice.pdf", "application/pdf", pdfContent
        );
        context.log("Uploaded invoice attachment: " + attachmentId);
    }
}

The RobotContext is your isolated facade to Flow.IA. It guarantees that any operation (like getCms(), getProcesses(), or getStorage()) is strictly restricted to data belonging only to the active robot's Tenant, preventing a robot from leaking data from neighboring companies on the platform.

Flowi Agentic — Plataforma de Gestão de Processos com IA