# Workflows standardisieren Eine der Stärken Planios: Immerwiederkehrende Aufgaben zu Workflows machen. Wir erklären wie’s geht. Am Beispiel eines einfachen Workflows für Urlaubsanträge. Das Schöne ist auch hier gilt: Einmal gelernt, immer verstanden. Für Ihren persönlichen Workflow. {{>toc}} ## Die Planio Workflow-Basics Die Idee dahinter: Jede Aufgabe gehört zu einem Tracker, der den Workflow definiert. Am besten wir schauen uns das mal genauer an: ### Tracker Für uns sind Tracker so etwas wie eine Art Überaufgabe. Deswegen gehört jede Einzel-Aufgabe immer zu **einem** Tracker. Sie ist somit Teil der Überaufgabe. Kleines Beispiel? **Supportanfragen**, **Software-Bugs** oder – richtig geraten – **Urlaubsanträge**. ### Status Der Status beschreibt die einzelnen Zustände einer Aufgabe in Planio – z. B. **Offen**, **In Bearbeitung** oder **Erledigt**. Jede Aufgabe kann immer nur einen Status haben, der sich dabei im Zuge der Aufgabenbearbeitung verändert. ### Rollen Nutzer haben ihren eigenen Planio Zugang. Für die Teilnahme an Projekten. Dabei nimmt jeder eine oder mehrere Rollen gleichzeitg ein – z. B. von **Manager** und **Mitarbeiter** bis hin zu anderen Rollen wie **Kunden**. Die Rolle gibt die Berechtigungen vor. Die Berechtigungen wiederum, was jeder einzelne Nutzer sehen und nicht sehen kann. Innerhalb eines Projektes definieren sie damit auch den Workflow der Nutzer. ### Workflows Innerhalb eines Workflows kommt alles zusammen: Die auswählbaren Tracker, alle erlaubten Rollen sowie jeder mögliche Aufgaben-Status. Der Workflow gibt als vor, welchen der verfügbaren Status ich wählen kann. Oder welche Teile einer Aufgabe für mich sichtbar oder unsichtbar sind. Kompliziert? Keine Sorge. Wir führen Sie in Ruhe durch. Damit auch Sie in den Genuss einer der größten Stärken von Planio kommen. Los geht’s! ## Die Schritte zum Urlaubsantrag Sie träumen vom perfekten Strand in der Karibik? Wunderbar! Dann beantragen wir doch gemeinsam Ihren Urlaub: In den meisten Unternehmen wird der Urlaub üblicherweise vom Vorgesetzten genehmigt. In der Regel bedeutet das: Wir füllen den vorgedruckten Urlaubsantrag aus. Geben ein Start- und Enddatum an. Anschließend wird der Urlaub entweder genehmigt oder abgelehnt. Wenn der Antrag durch ist, können die Daten nicht mehr beliebig geändert werden. Falls der Urlaubsantrag abgelehnt wurde, ändern wir das Datum, hoffen das alles glatt geht und schwupp sind wir in der Karibik. Herrlich! Und jetzt zeigen wir Ihnen wie dieser Prozess in Form eines Workflows mit Planio umsetzen lässt. Natürlich mit Anzeige im Planio Kalender. Damit jeder weiß, wann jeder Urlaub hat. ## Die Werkzeuge: Tracker, Status, Rollen und Workflow Wir brauchen folgende Zutaten: Ein **Tracker** namens **Urlaubsantrag**. Den jeweils passenden Status – **Offen**, **Genehmigt** und **Abgelehnt**. Zwei Rollen: **Manager** und **Angestellte**. Und los! ### Tracker anlegen First things first. Let's get down to business: - Bitte unter **Administration → Tracker** – Klick auf **Neuen Tracker** mit Namen Urlaubsantrag. - **In der Roadmap** anzeigen bitte Häkchen weg, da wir keine Urlaube nicht in der Projekt-Roadmap benötigen. - Häkchen weg in allen Standardfeldern, bis auf **Beginn** und **Abgabedatum**, die wir für Anfang und Ende unseres Urlaub nutzen werden. - **Workflow kopieren von** – bitte nichts auswählen. Dann auf **Anlegen**. ![](creating_a\_new_tracker.png) *So sieht Ihr Tracker jetzt aus* ### Aufgabenstatus anlegen Jetzt legen wir den passenden Status an für **Offen**, **Genehmigt** und **Abgelehnt:** - Bitte unter **Administration → Aufgaben-Status** - *Offen* – gefunden? Dann bitte Klick auf den Status. Und darauf achten, dass ein Häkchen gesetzt ist unter **Standardeinstellung**. Damit jede neue Aufgabe immer mit dem Status *Offen* beginnt. - Offen – nicht gefunden? Dann bitte Klick auf **Neuer Status**, *Offen* in das Feld **Name** eintragen, Häkchen unter **Standardeinstellung** setzen. Kein Häkchen bei **Zu allen Workflows hinzufügen**, wir wollen ja hier speziell den *Urlaubsantrags-Workflow* anlegen. - Klick auf Anlegen oder bzw. auf Neuer Status. - Status für Genehmigt und Abgelehnt genauso wie bei Offen anlegen und darauf achten, dass bei Genehmigt ein Häkchen gesetzt ist unter Aufgabe erledigt. Und darauf achten: Genehmigt oder Abgelehnt nicht als Standardeinstellung speichern. - Navigate to **Administration** -\> **Issue statuses**. - Do you see a status called *Open*? Great, click on it, and make sure that the **Default value** checkbox is checked. This will make *Open* the default status that's always the first status for a newly created issue. - Do not see the status? Simply click on **New status**, enter *Open* in the **Name** field, and check the **Default value** checkbox. Uncheck the **Add to all workflows** checkbox since we only want it for our *Vacation request* workflow. - Click on **Save** or **Create** respectively. - Create the remaining statuses *Approved* and *Rejected* following the same pattern and make sure the *Approved* status has the **Issue closed** checkbox checked. Do not check the **Default value** checkbox for *Approved* and *Rejected*. ![](create_an_issue_status.png) *This is what your "Approved" status will look like.* ### Create a role This one should be easy: - Navigate to **Administration** -\> **Roles and permissions**. - Do you see the roles *Manager* and *Staff* already? Great. You're done with this step. Those are actually the two basic roles your Planio account came with. - Do not see the roles? Create them by clicking on **New role**. Enter the role's **Name** and ignore the rest for now, just be sure that the check boxes for permissions **View calendar**, **Edit issues**, **View issues**, and **Add issues** are checked. Repeat this for both the *Manager* and *Staff* roles. ![](how_to_add_a\_role.png) *Adding a role* ### Define the workflow This is the fun part. Here is where it all comes together. - Navigate to **Administration** -\> **Workflow**. - Select the *Staff* role and your *Vacation request* tracker. - Uncheck the **Only display statuses that are used by this tracker** checkbox and click on **Edit**. - The checkbox matrix that appears lets you configure all allowed status transitions for a given role and tracker. For instance, the *Staff* workflow should have the checkbox at the lower left checked. This means that members having the role *Staff* can set an issue having a **current status** of *Rejected* back to *Open*. - Now, let's configure the *Staff* workflow according to the following screenshot: ![](vacation_request_workflow_for_staff.png) *Workflow for Staff role* - Click on **Save**. - Next, select *Manager* as a role, make sure the **Only display statuses that are used by this tracker** checkbox is unchecked click on **Edit** again. - Configure the *Manager* workflow according to the following screenshot: ![](vacation_request_workflow_for_manager.png) *Workflow for Manager role* - Click on **Save**. Wait, what did we just do? Have a look at the screenshots again. What we defined is: - *Managers* can set an open vacation request to *Approved* or *Rejected* and a *Rejected* vacation request to *Approved* (in case they changed their mind). - *Staff* can only set a *Rejected* vacation request back to *Open*. (This is for when they change their dates and want to re-request approval.) ### Adapt fields permissions Now, let's customize the issue form fields a bit according to the issue status. - Still on the **Workflow** screen, select the **Fields permissions** tab. - For *Manager*, set everything to *read-only* except the **Subject**: ![](fields_permissions_manager.png) *Fields permissions for Manager role* - For *Staff*, do the same except for the **Start date** and **Due date** fields: ![](fields_permissions_staff.png) *Fields permissions for Staff role* This makes sure only *Staff* can actually set the dates for a vacation request and that those dates cannot be changed anymore, once approved. ## Put it all to work in an actual project That's enough of prep work. Let's try it out. - Start by creating a new project via **Projects** -\> **New project**. - Give your project a name, e.g. **Vacation planning**. - Disable all modules but **Issue tracking** and **Calendar**. - Select only your **Vacation request** tracker and nothing else. - Click **Create**. That's it, you're done. Your users can now use this project for your new vacation request planning workflow. In order to submit a vacation request, all they'd have to do is create a new issue. Selecting a **start date** and a **due date** will be required when creating *vacation request* issues and all other useless fields will be hidden. ![](new_issue_form.png) *Stripped down issue form for vacation requests* In order to try it out for yourself and play around with it, we recommend you create two users that have no administrator privileges and add the as *Staff* and *Manager* to your project respectively. (If you try it out as an administrator, don't be alarmed by the fact that you can always choose from all statuses when updating an issue. That's normal if you're an admin. Regular users will only see the statuses as defined by their workflow.) ### Bonus: The calendar view What's up with the **Calendar** module we've enabled in the roles and your project, you ask yourself? Well, after adding a couple of vacation requests, check out the **Calendar** tab in your project. The Planio calendar will give you a nice monthly overview of all vacation requests which have been tracked. ![](vacation_calendar.png) *Vacation calendar view in Planio* By using a [custom query](http://plan.io/blog/post/25072622222/trackers-viewing-and-grouping), you can even create a calendar view that displays only approved vacation requests. Or create a query for your managers that shows only *Open* requests that have to be approved still.