```{admonition} Welcome to the SpiffWorkflow quick start guide!
:class: info
👇 Throughout this step-by-step guide, we will walk you through key components of SpiffWorkflow, ensuring that you have a clear understanding of how to use the platform effectively.
Sartography, the company that shepherds the SpiffWorkflow and SpiffArena projects, provides users with a platform to explore workflow concepts through a collection of examples, diagrams, and workflows.
In this section, we will navigate through the platform and provide a generic overview of each section step-by-step, allowing you to understand and engage with the platform more effectively.
- The "In Progress" section provides an overview of all ongoing process instances, including those initiated by you, those awaiting your action, or those awaiting action from a team you are a member of (Optional).
- The "Completed" section allows you to view all completed process instances, including those initiated by you, those initiated by other SpiffWorkflow users with tasks completed by you and if applicable, those with tasks completed by a group of which you are a member.
- The “Start New” section displays the processes you are permitted to start according to your role.
💡 **Process:** A process is a sequence of tasks that must be completed to achieve a specific goal.
**Instance:** An instance, on the other hand, represents a specific occurrence of a process. Each instance has its own set of data and state that is updated as the instance progresses through the workflow.
```
If you are a member of a team, you may also have one or more Instances with tasks waiting for [team name] lists as well.
A **process group** is a way of grouping a bunch of **process models** and a **process model** contains all the files necessary to execute a specific process.
The Process Instance section provides a detailed view of individual process instances, allowing you to track their progress and manage them effectively.
This section includes essential information such as the instance ID, process name, the individual who started the process, the end date, and the current status.
When getting started with SpiffWorkflow, it's essential to take the time to explore and familiarize yourself with the platform's interface and features.
Feel free to ask questions about the platform's features or how to get started.
- **Started by me:** This section shows a list of process instances that were started by you, providing you with an overview of the instances you have initiated.
- **Waiting for me:** This section displays a list of process instances with tasks assigned to you and are currently waiting for you to respond to.
- **Waiting for [team name]:** If you are a member of SpiffWorkflow**,** this section displays a list of process instances with tasks assigned to a group you are a member of and currently waiting for someone in that group to complete them.
In the case of new users who haven't started or been part of any process or been assigned to any team, you won't be able to see any items on the home page.
The Process-defined **metadata can provide valuable insights into its history, current status, and other important details that is specifically created and used within a particular process.
With the SpiffWorkflow platform, users can easily view the metadata for a process instance.
In order to use this feature, simply create a **README File** inside the process model called README.md and document the model, so everyone can be on the same page.
If you are on a homepage, you can navigate to the table you wish to filter.
Look for the black funnel icon in the top right-hand corner above the table and click on the Icon: By clicking on the filter icon, you'll be taken to a full-screen process view.
- **Implication:** There might be issues or obstacles preventing the task from proceeding as expected. Immediate attention and troubleshooting may be required.
- **Implication:** This task was intentionally stopped before completion. This could be due to time constraints, external triggers, or other predefined conditions that have been set as boundary events.
A milestone is a specific point in a process that signifies a significant event or state. It provides a high-level overview of the progress made in the process.
In BPMN, if you draw an intermediate event and do not specify its type (like message, signal, start, or end) but give it a name, it becomes a milestone.
Essentially, a milestone is an event that hasn't been set to something specific.
- Two processes running concurrently, exchanging messages.
- One process initiating another through a message.
- An external system making an API call, passing a payload (like a JSON data structure) that can either communicate with an ongoing process or initiate a new one.
### The Waiter-Chef Illustration
To explain the concept, we are using a relatable example involving two processes: the Waiter and the Chef.
**Waiter Process**:
![Waiter Process](images/waiter.png)
1. The waiter takes an order.
2. This order is then communicated to the chef via a message.
3. The waiter then waits for a response from the chef, indicating the order's readiness.
**Chef Process**:
![Chef Process](images/chef.png)
1. The chef starts by receiving the order message from the waiter.
2. After preparing the meal, the chef sends a message back to the waiter, signaling that the order is ready.
One of the complexities in BPMN messaging is ensuring that the right processes are communicating with each other, especially when multiple instances are running.
This is achieved using correlation keys and properties.
- **Correlation Properties**: These are unique identifiers within the conversation. In the example, the "table number" serves as the correlation property, ensuring the right waiter communicates with the right chef.
For a more visual understanding and a step-by-step walkthrough, you can watch Dan Funk's full tutorial [here](https://www.youtube.com/watch?v=Uk7__onZiVk).
- **Find the Short Link Icon**: Look for the link icon near the process instance heading and click on the link icon to copy the short link to your clipboard automatically. please refer to the screenshot provided
To access and review completed user forms within a specific process model, follow these guidelines:
1.**Find the Tasks Tab in Process Instance**: Begin by going to the process instance and scroll to locate the 'Tasks' tab. This area displays all user forms connected to the process.
- **Forms You Completed**: In this section, you can view the forms that you have completed. It allows you to see the specific details and inputs you provided in each task.
**Forms Completed by Others**: This part shows all the forms completed by any user. You can see who completed each form and the last time it was updated. However, for privacy and security reasons, you won't be able to view the specific input details of forms completed by others.
This approach ensures you can monitor and review the progress of user forms within any process model while maintaining the confidentiality of inputs made by other users.
1.**Run the Process**: Initiate a workflow process in SpiffWorkflow.
2.**Access the Process Instance**: After running the process, navigate to the specific process instance within the SpiffWorkflow interface. This is where you can track the progress of the tasks.
![Access process instance](images/Access_Process_Instance.png)
3.**View Task Details**: Click on the executed task or event that has been completed. For instance, in this example we clicked on "user task".
- **COMPLETED Status**: Tasks marked as 'COMPLETED' have finished their execution successfully and have moved the workflow forward.
- **MAYBE Status**: Indicates that the task still exists within SpiffWorkflow. While these tasks could be omitted for clarity, retaining them provides a complete picture of the workflow's execution.