The world of automation is undergoing a radical transformation. We're moving beyond simple, linear scripts to create intelligent, autonomous systems that can reason, plan, and execute complex tasks. This is the dawn of the Agentic Workflow, and at its core lies a simple but profoundly powerful concept: the atomic action.
To build reliable and scalable autonomous agents, we need to stop thinking in monolithic scripts and start thinking in discrete, manageable units. On the .do platform, we call this The Atomic Unit of Work. These actions are the fundamental building blocks for every powerful automation you can imagine.
Think of an atomic action as the smallest, indivisible unit of work in any process. It's a single, self-contained task designed to do one thing and do it well.
Each action is a Lego brick: simple, standardized, and designed to connect with others. It either completes its task successfully or it fails, but it never half-finishes. This atomicity is crucial for building reliable systems.
If actions are the bricks, then workflows are the magnificent structures you build with them.
An action is the individual step. A workflow is the orchestration of multiple actions, arranged with specific logic, timing, and conditions to achieve a larger business goal.
By composing workflows from simple, reusable actions, you gain immense benefits:
The true power of the .do platform is that it treats your business processes as code. You can define, version, and manage your operations with the same rigor as software development.
Let's look at how you can define a new atomic action to send a welcome email using the .do SDK.
import { Action } from '@do-co/agent';
// Define a new atomic action to send a welcome email
const sendWelcomeEmail = new Action('send-welcome-email', {
title: 'Send Welcome Email',
description: 'Sends a standardized welcome email to a new user.',
input: {
to: { type: 'string', required: true },
name: { type: 'string', required: true },
},
async handler({ to, name }) {
console.log(`Sending email to ${to}...`);
// Actual email sending logic (e.g., using an SMTP service) would go here
const message = `Welcome to the platform, ${name}!`;
console.log(message);
return { success: true, messageId: `msg_${Date.now()}` };
},
});
// Execute the action with specific inputs
const result = await sendWelcomeEmail.run({
to: 'new.user@example.com',
name: 'Alex',
});
console.log(result);
In this example, we've created a reusable, programmable building block.
This sendWelcomeEmail action is now a part of your automation toolkit, ready to be dropped into any agentic workflow, from user onboarding to marketing campaigns.
Agentic workflows represent the future of automation, enabling businesses to build autonomous systems that drive efficiency and innovation. But these advanced systems don't appear out of thin air. They are built, piece by piece, on a solid foundation of well-defined, reliable, and scalable atomic actions.
By embracing this modular approach, you're not just automating tasks; you're creating a library of programmable business capabilities—the very essence of a modern, agile organization.
Ready to build your first atomic action? The future of work is built on .do.
What is an atomic action in the .do platform?
An atomic action is the smallest, indivisible unit of work in a workflow. It's a self-contained, executable task—like sending an email, querying a database, or calling an external API. Each action is designed to do one thing well.
How are actions different from workflows?
Actions are the individual steps, while workflows are the orchestration of multiple actions in a specific sequence or logic. You build complex workflows by composing simple, reusable actions together.
Can I create my own custom actions?
Absolutely. The .do SDK allows you to define custom actions with specific inputs, outputs, and business logic. This transforms your unique business operations into reusable, programmable building blocks for any workflow.