Overview
Workflows are the core tasks in SFLUV that proposers create and voters approve. Each workflow consists of multiple steps assigned to different improver roles and can be one-time or recurring (daily, weekly, monthly).Workflow Lifecycle
- pending - Under voter review (14 day expiry)
- approved - Approved by voters, awaiting start
- rejected - Denied by voters
- expired - Pending over 14 days without decision
- in_progress - Started, steps being completed
- completed - All steps finished
- paid_out - All improvers and supervisor paid
- blocked - Recurring series awaiting prior workflow payout
- deleted - Removed via deletion proposal
Create Workflow
POST /proposers/workflows
Auth: Proposer role required
Request Body:
Workflow title (must not be empty)
Detailed workflow description
Frequency:
one_time, daily, weekly, or monthlyISO 8601 datetime when workflow begins
Link to existing recurring workflow series (optional)
Optional supervisor configuration
user_id(string, required): Supervisor DIDbounty(uint64, required): Supervisor payment in wei
Array of workflow roles:
client_id(string): Temporary ID for step assignmenttitle(string): Role namerequired_credentials(string[]): Credential types needed
Sequential workflow steps (see Workflow Steps)
201- Workflow created successfully400- Invalid request (missing fields, invalid recurrence, etc.)403- User not approved as proposer500- Server error
Get Workflow by ID
GET /workflows/{workflow_id}
Auth: Authenticated user required
Path Parameters:
Workflow UUID
200- Success404- Workflow not found403- Not authenticated500- Server error
Get Proposer Workflows
GET /proposers/workflows
Auth: Proposer role required
Description: Returns all workflows created by the authenticated proposer, including all statuses (pending, approved, rejected, completed, etc.)
Get Single Proposer Workflow
GET /proposers/workflows/{workflow_id}
Auth: Proposer role required (must be workflow creator)
Path Parameters:
Workflow UUID
200- Success404- Workflow not found or not owned by proposer403- Not authenticated or not proposer500- Server error
Delete Workflow
DELETE /proposers/workflows/{workflow_id}
Auth: Proposer role required (must be workflow creator)
Path Parameters:
Workflow UUID
200- Workflow deleted successfully400- Workflow cannot be deleted (already approved/in progress)404- Workflow not found or not owned by proposer403- Not authenticated or not proposer500- Server error
Get Active Workflows
GET /workflows/active
Auth: Authenticated user with proposer, improver, voter, or supervisor role
Description: Returns workflows with status approved, blocked, in_progress, or completed (not yet paid out).
Response: Array of ActiveWorkflowListItem objects (simplified workflow representation without steps/roles)
Schema Reference
Workflow Object
WorkflowRole Object
WorkflowVotes Object
Bounty Values
All bounty amounts are in wei (1 ETH = 10^18 wei). Example:- 50 HONEY =
50000000000000000000wei - 0.5 HONEY =
500000000000000000wei
Related Endpoints
- Workflow Steps - Claim, start, complete workflow steps
- Workflow Templates - Reusable workflow definitions
- Workflow Votes - Vote on workflow proposals