Developer demo showing how to build a production-ready e-commerce workflow in Orkes Conductor.
The workflow automates order creation, payment processing, inventory updates, and fulfillment confirmation.
- Google account or email to sign into Orkes Playground (free)
- Basic understanding of REST APIs
- Familiarity with JSON (helpful but not required)
When a customer places an order on an e-commerce site, multiple things need to happen:
- Process their payment
- Check if the payment succeeded
- If yes: reserve inventory, send confirmation email, notify warehouse
- If no: send failure notification
Coordinating all these steps across different services is complex. Conductor makes it simple.
Go to Orkes Playground.
You'll see the Launch Pad with two options: browse pre-built workflow templates or start from scratch.
For this tutorial, click "Start from Scratch" so you can learn how to build a workflow from the ground up.
You'll be prompted to log in.
Sign in with your Google account or email. Once logged in, you'll be taken to the main Conductor interface.
The workflow creation interface after clicking "Start from Scratch" — shows an empty canvas ready to build.
From the main interface, navigate to Definitions → Workflow in the left sidebar.
Click the "Create Workflow" button in the top right.
You'll see the workflow configuration form. Fill it out:
Name: E-Commerce Order Processing
Description:
When a customer places an order, this workflow handles everything: payment processing, inventory checks, email confirmations, and shipping coordination.
Shows how to build resilient, production-ready automation for e-commerce systems.
Leave the other settings at their defaults for now.
Scroll down to Input and Output Parameters.
Click "Add parameter" five times and add these keys:
orderIdcustomerIdcustomerEmailtotalAmountitems
All input parameters (orderId, customerId, customerEmail, totalAmount, items) and output parameter (trackingNumber) configured.
Still in the parameters section, scroll to Output parameters and add:
Parameter: trackingNumber
Leave the Value field blank — it will be filled during execution.
Click the "Task" tab at the top.
Click the + button below Start.
Select "HTTP Task" from Quick Add.
Click on the HTTP task to configure it.
Reference name: process_payment
Method: POST
URL: https://httpbin.org/post
Scroll to the Body section and replace {} with:
{
"orderId": "${workflow.input.orderId}",
"customerId": "${workflow.input.customerId}",
"totalAmount": "${workflow.input.totalAmount}",
"paymentMethod": "credit_card"
}Click the + button below process_payment.
Select "Switch" task.
Click on the Switch task.
Reference name: check_payment_status
Key: paid → Value: success
Evaluate: ECMASCRIPT
Code:
$.paidSwitch case key: success
Click "Save".
Run your workflow to test. You'll see tasks executing in real-time.
On the success branch, click the + icon and add another HTTP Task.
Reference name: send_confirmation_email
Method: POST
URL: https://httpbin.org/post
Body:
{
"to": "${workflow.input.customerEmail}",
"subject": "Order Confirmation",
"orderId": "${workflow.input.orderId}",
"message": "Your order has been confirmed!"
}Save your workflow — it should look like this:
Start
↓
Process Payment (HTTP POST)
↓
Check Payment Status (SWITCH)
↓ (success)
Send Confirmation Email (HTTP POST)
↓
End
- Add FORK Tasks to run inventory updates and notifications in parallel.
- Add error handling for payment failures.
- Connect to real APIs (Stripe, PayPal, SendGrid).
- Configure retry logic and timeouts for resilience.
Questions or suggestions?
Open an issue or reach out!












