Flowcharts are essential tools for visualizing processes with simple arrows and boxes, widely used across various business scenarios. This article introduces five types of flowcharts suitable for business and four practical use cases. Flowcharts can streamline project management, enhance productivity, and facilitate continuous improvement by clearly mapping out workflows. Types include document flowcharts for managing document processes, data flowcharts for system data pathways, swimlane charts for team responsibilities, workflow charts for office tasks, and EPC flowcharts for business processes. Use cases include strategic planning, continuous improvement, creating new strategies, and training materials.
Diagramming AI provides the functionality to generate flowcharts. While there are many use cases for flowcharts, here we introduce the generation of flowcharts with specific examples.
Example: Product Sales Flow
Specific Case: Illustrates the workflow from store opening preparation, customer service at the register, to store closing tasks in a retail setting. Useful for training new employees.
Instruction text for AI
Illustrates the workflow from store opening preparation, customer service at the register, to store closing tasks in a retail setting. Useful for training new employees.
Generated Diagram (mermaid): ~~ Templates: Flowchart - General ~~
Generated Code
flowchart TD
Start[Store Opening Preparation] --> RegisterService[Customer Service at Register]
RegisterService -->|Sale| Bagging[Packing Items]
RegisterService -->|Return| ProcessingReturn[Return Processing]
Bagging --> ThankYou[Say Thank You]
ProcessingReturn --> ResolveIssue[Resolve Return Issue]
ResolveIssue --> Refund[Process Refund]
ThankYou --> RegularCustomer[Recognize Regular Customers]
RegularCustomer --> OfferLoyalty[Loyalty Program Offer]
OfferLoyalty --> RegisterService
Bagging -->|Assistance Needed| CallHelper[Call for Assistance]
RegisterService -->|End of Day| ClosingTasks[Store Closing Tasks]
ClosingTasks --> CheckInventory[Check Inventory]
ClosingTasks --> CleanRegisterArea[Clean Register Area]
ClosingTasks --> CashCount[Cash Count]
CashCount -->|Discrepancy| InvestigateDiscrepancy[Investigate Discrepancy]
InvestigateDiscrepancy --> ResolveDiscrepancy[Resolve Cash Discrepancy]
ResolveDiscrepancy --> CompleteClosing[Complete Store Closing]
CleanRegisterArea --> SweepFloor[Sweep Store Floor]
SweepFloor --> TurnOffLights[Turn Off Lights]
TurnOffLights --> LockDoors[Lock Store Doors]
LockDoors --> End((End))
Generated Diagram (mermaid) ~~ Templates: Flowchart - With Subgraph Lane ~~
Generated Code
graph TB
subgraph SA[Store Opening Preparation]
A[Unlock Store]
B[Turn on Lights]
C[Setup Registers]
D[Stock Shelves]
end
subgraph SB[Customer Service]
E[Greet Customers]
F[Assist on Sales Floor]
G[Handle Transactions]
H[Respond to Inquiries]
end
subgraph SC[Store Closing Tasks]
I[Close Registers]
J[Clean Store]
K[Lock Doors]
L[Prepare Deposits]
end
A --> E
B --> E
C --> G
D --> F
G --> I
E --> F
H --> J
F --> H
I --> K
J --> L
L --> K
Generated Diagram (PlantUML) ~~ Templates: Activity Diagram - Basic ~~
Generated Code
@startuml
start
:Prepare store for opening;
:Stock shelves with products;
:Check inventory levels;
if (Customer arrives) then (yes)
:Greet customer;
:Assist with shopping;
if (Customer is ready to checkout) then (yes)
:Ring up items at register;
:Accept payment;
if (Customer has loyalty card) then (yes)
:Apply loyalty discount;
endif
:Bag items;
else (no)
:Continue assisting customer;
endif
else (no)
:Continue stocking shelves;
endif
:Close store at end of day;
:Clean store and reset for next day;
stop
@enduml
Example: Complaint Handling Flow
Specific Case: Outlines the steps from receiving a customer complaint to its resolution, aiding in prompt and effective responses. Helps predict outcomes for various decisions.
Instruction text for AI
Outlines the steps from receiving a customer complaint to its resolution, aiding in prompt and effective responses. Helps predict outcomes for various decisions.
Generated Diagram (mermaid) ~~ Templates: Flowchart - Conditional Flow ~~
Generated Code
graph TD
A{Received Customer Complaint}
A -->|Investigate| B[Initial Analysis]
A -->|N/A or Incorrect Customer Information| AA[Inform Customer - Invalid Complaint]
B -->|Issue Identified| C[Assign to Relevant Department]
B -->|No Issue Identified| D[Inform Customer - No Action Needed]
C --> E{Is Immediate Action Required?}
E -->|Yes| F[Categorize as Urgent]
E -->|No| G[Categorize as Non-Urgent]
F --> H[Resolve Issue Promptly]
H --> I[Notify Customer of Resolution]
G --> J[Schedule Resolution Based on Priority]
J --> I
I --> K[Collect Feedback from Customer]
D --> K
K --> L[Review Feedback for Future Improvement]
L --> M[Case Closed]
AA --> M
Generated Diagram (PlantUML) ~~ Templates: Activity Diagram - Multiple conditions (Vertical) ~~
Generated Code
@startuml
!pragma useVerticalIf on
start
:Receive Customer Complaint;
if (Complaint Type == "Service") then (yes)
:Log Service Complaint;
:Assign to Service Team;
elseif (Complaint Type == "Product") then (yes)
:Log Product Complaint;
:Assign to Product Team;
else(none of these)
:Log General Complaint;
:Assign to General Support;
endif
:Investigate Complaint;
if (Resolved?) then (yes)
:Notify Customer of Resolution;
else (no)
:Escalate Complaint to Manager;
endif
stop
@enduml
Example: Product Development Flow
Specific Case: Maps out the roles and tasks of multiple departments involved in a product development project, clarifying responsibilities and enhancing collaboration.
Instruction text for AI
Maps out the roles and tasks of multiple departments involved in a product development project, clarifying responsibilities and enhancing collaboration.
Generated Diagram (PlantUML): Templates: Activity Diagram - Swimlane
Generated Code
@startuml
|Customer|
start
:Submit product requirements;
|Project Manager|
:Review requirements;
:Define project scope;
:Assign tasks;
|Design Team|
:Create initial design;
if (Design approved?) then (yes)
:Finalize design;
else (no)
:Revise design;
:Submit for approval;
endif
|Development Team|
:Implement feature;
:Code review;
if (Passes review?) then (yes)
:Merge code;
else (no)
:Refactor code;
:Submit for review;
endif
|Quality Assurance|
:Test feature;
if (Tests pass?) then (yes)
:Approve release;
else (no)
:Report bugs;
:Development Team fixes bugs;
:Retest feature;
:Submit for approval;
endif
|Project Manager|
:Review test results;
if (Approved for release?) then (yes)
:Schedule release;
else (no)
:Reevaluate project scope;
endif
|Customer|
:Receive product;
stop
@enduml
Example: Service Process Improvement
Specific Case: Visualizes customer service processes using BPMN, ensuring standardized procedures for efficient service delivery across different organizations.
Instruction text for AI
Visualizes customer service processes using BPMN, ensuring standardized procedures for efficient service delivery across different organizations.
Generated Diagram (PlantUML): Templates: Activity Diagram - Swimlane
Generated Code
@startuml
| Customer |
start
: Request service;
| Customer Service |
:Log request;
:Verify customer information;
if (Information correct?) then (yes)
| Technical Support |
:Assign technician;
:Analyze issue;
if (Can it be resolved now?) then (yes)
:Resolve issue;
:Document resolution;
| Customer Service |
:Update request status;
:Inform customer;
else (no)
:Escalate issue;
| Manager |
:Review escalation;
:Assign to senior technician;
| Senior Technician |
:Investigate issue;
if (Issue resolved?) then (yes)
:Resolve issue;
:Document resolution;
| Customer Service |
:Update request status;
:Inform customer;
else (no)
:Schedule on-site visit;
:Visit customer location;
:Resolve issue on-site;
:Document resolution;
| Customer Service |
:Update request status;
:Inform customer;
endif
endif
else (no)
:Request additional information;
:Update request status;
:Inform customer;
endif
stop
@enduml
Example: User Authentication Flow
Specific Case: Outlines the authentication process during user login, from user input, authentication, authorization, to success/failure, enhancing security measures.
Instruction text for AI
Outlines the authentication process during user login, from user input, authentication, authorization, to success/failure, enhancing security measures.
Generated Diagram (mermaid) ~~ Templates: Flowchart - Colored ~~
Generated Code
flowchart TD
Start[Start]:::startStyle --> UserInput{User Inputs Credentials}:::decisionStyle
UserInput -->|Valid Input| Authenticate{Authenticate User}:::processStyle
UserInput -->|Invalid Input| Fail["Login Failed: Invalid Input"]:::failStyle
Authenticate -->|Authenticated| Authorize{Authorize Access}:::authorizeStyle
Authenticate -->|Not Authenticated| Fail
Authorize -->|Authorized| Success["Login Successful"]:::successStyle
Authorize -->|Not Authorized| Fail
%% Links for clarity
Start -.->|Initiation| UserInput
UserInput -->|Forgot Password| Recover[Password Recovery]:::recoveryStyle
Fail -.->|User Retry| UserInput
%% Styling
classDef startStyle fill:#6be,stroke:#333,stroke-width:3px
classDef decisionStyle fill:#4aa,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
classDef processStyle fill:#ccf,stroke:#333,stroke-width:2px
classDef authorizeStyle fill:#ddf,stroke:#333,stroke-width:2px
classDef successStyle fill:#cfc,stroke:#333,stroke-width:3px
classDef failStyle fill:#fdd,stroke:#333,stroke-width:2px
classDef recoveryStyle fill:#ffa,stroke:#333,stroke-width:2px
%% Additional scenarios
UserInput -->|Rate Limiting Triggered| SecureCheck["Security Check"]:::securityStyle
SecureCheck -->|Cleared| Authenticate
SecureCheck -->|Failed| Fail
%% End Points
Success((Success)):::successStyle
Fail((Failure)):::failStyle
Success -.->|Proceed to Dashboard| Dashboard[User Dashboard]:::dashboardStyle
%% Additional Styling
classDef securityStyle fill:#eef,stroke:#333,stroke-width:2px
classDef dashboardStyle fill:#acb,stroke:#333,stroke-width:3px
Generated Diagram (mermaid) ~~ Templates: Flowchart - Colored With Subgraph Lane ~~
Generated Code
flowchart TD
subgraph UserInput[User Input]
style UserInput fill:#ffe0b2,stroke:#333
Start[Start Login Process]:::startStyle --> InputDetails[Enter Credentials]:::inputStyle
InputDetails --> ValidateInput{Valid Input?}:::decisionStyle
end
subgraph Authentication[Authentication]
style Authentication fill:#dcedc8,stroke:#333
ValidateInput -->|Yes| AuthCheck[/Check Authentication/]:::authStyle
AuthCheck --> Verify1[Verify Username]:::verifyStyle
Verify1 --> Verify2[Verify Password]:::verifyStyle
Verify2 --> MethodCheck{MFA Enabled?}:::decisionStyle
end
subgraph MultiFactor[Multi-Factor Authentication]
style MultiFactor fill:#b3e5fc,stroke:#333
MethodCheck -->|Yes| SendCode[Send MFA Code]:::mfaStyle
SendCode --> ValidateMFA[Validate MFA Code]:::mfaValidateStyle
ValidateMFA -->|Success| AuthResult{Authentication Successful?}:::decisionStyle
end
subgraph Authorization[Authorization]
style Authorization fill:#ffcdd2,stroke:#333
AuthResult -->|Yes| UserRoles[Check User Roles]:::authRoleStyle
UserRoles --> GrantAccess[Grant Access]:::grantStyle
GrantAccess --> EndSuccess((Authentication Success)):::endSuccessStyle
end
subgraph FailureHandling[Failure Handling]
style FailureHandling fill:#ffcc80,stroke:#333
ValidateInput -->|No| DisplayError1[Display Input Error]:::errorStyle
MethodCheck -->|No| AuthResult
AuthResult -->|No| DisplayError2[Display Auth Error]:::errorStyle
ValidateMFA -->|Fail| DisplayError2
DisplayError1 --> EndFail((Authentication Fail)):::endFailStyle
DisplayError2 --> EndFail
end
Start -. "Begin Login" .-> InputDetails
AuthCheck -. "Fetch Details" .-> Verify1
ValidateInput -. "Validation" .-> InputDetails
AuthCheck -. "Async Validation" .-> AuthResult
MethodCheck -. "Check MFA Setup" .-> AuthResult
AuthResult -. "Sync Check" .-> UserRoles
GrantAccess -. "Granting" .-> EndSuccess