Automations handle repetitive tasks for you using a simple recipe: WHEN something happens in the app, IF the conditions are met, DO the actions. It is like Zapier or Make, but built into Task Manager - with no external services.
Open them using the view icon (the squares) in the top bar - the same menu that contains Calendar, Board, Notes and the AI Assistant. The window looks and works like the others, with the same light/dark theme, docking alongside columns and a saved layout.
The quickest way: tell the assistant
You do not need to click through the tiles. Open the AI Assistant and describe the rule in plain language:
I want all files sent to the Accounting chat to be saved in the FV folder, and I want to be notified “FV has been saved”
The assistant will put together a ready-to-use draft: a name, trigger, conditions and actions. A “Go to Automations” card will appear below its reply - the window opens only when you click it, so you won't lose your conversation mid-sentence. The draft is unsaved and disabled - review it, make changes, and then click Save. The recipe won't work until you do.
You can go back to the assistant and make changes in plain language - while the Automations window is open, it knows which recipe you're referring to, and your changes go straight into the draft (without a card): “change the folder to Invoices”, “add a condition that the file must be a PDF”, “remove the notification”. Each time, you'll get an updated draft to approve.
Use everyday names (“Accounting chat”, “FV folder”, “Kasia Dąbrowska”) - the app will find the right chat, folder and person. If it can't find something or skips an unknown field, it will tell you below the draft.

Ready-made recipes - choose a scenario for your industry
Click + in the Automations window. As well as a blank recipe, you will see a catalogue of ready-made recipes organised into categories. Each one opens as an unsaved draft - fill in 1-2 details, such as your Workspace, chat, folder or reference number, then click Save.
Sales and leads
- Form lead → note (AI) - AI recognises an enquiry from a contact form, writes a report covering who the person is, what they need and the suggested first step, then saves it as a note in the Leads folder. Nothing needs to be filled in - it works straight away, and you can change the folder.
- New lead → follow-up task (AI) - the same recognition process creates a high-priority task due tomorrow. Select a Workspace before saving.
Mail and documents
- Email invoice → folder (AI) - an email with an attachment that AI identifies as an invoice is saved under Invoices / year / month (the folders are created automatically). Nothing needs to be filled in.
- Invoices to folder (AI) - the same process, but for files added to tasks and chats.
- Case documents → archive - emails with a reference number in the subject save their attachments to the case folder. Replace “SYGNATURA” with your own reference (in the condition and folder name). Note: a slash in a folder name creates a subfolder, so the reference “KM 512/26” will create the structure Cases / KM 512 / 26 - if you prefer a single folder, enter it without a slash (for example, “KM 512-26”).
Customer service
- Complaint → urgent task (AI) - AI recognises a complaint or problem report and creates a high-priority task and a notification. Select a Workspace.
Team and deadlines - existing ready-made recipes (Deadline Escalation, Absence Guard, Auto-triage, Silence Watchdog, Event Reminder), plus:
- Report a fault → task - a chat message containing “fault”, “urgent” or “not working” becomes a task with high priority. Choose a workspace; you can add more keywords.
Management and reviews - Morning Review (AI), Archive Clean-up, plus:
- Friday weekly summary (AI) - at 15:00 on Friday, AI posts a summary in the selected chat covering what has been completed, what is in progress and what is overdue. Select a chat.
Ready-made recipes marked (AI) are only visible when AI has been configured, while Mail recipes are only visible if you have access to the Mail module.
Old email recipes - one-off fix
Applies only to installations where email automations were created before version 2.2.224. At the time, the “send email” action had only a message field, so a prompt like “reply based on the price list” could be entered there - and was sent literally to the recipient instead of going to AI. Prompts for AI now have their own field, but older recipes still have them in the message field.
To fix this, an administrator runs php migrate-mail-instruction.php on the server. Without any options, the script only displays a report - for each recipe, it says whether the body appears to be an instruction for AI or a genuine email template and explains its assessment. It does not change anything. Only --wykonaj=19,23 moves the body in the specified recipes, saving a copy in logs/ before making any changes, so --cofnij=PLIK reverts everything.
For chat recipes, the script only displays the issue - make the change in the Automations window by replacing the “write a message” block with “write a message using AI”.
How to build a recipe manually
- Click + above the list. Instead of a blank page, you will see a list of templates (deadline escalation, silence watchdog, auto-triage, AI morning review, archive clean-up, absence guard, invoices to folder, event reminder) - each one can be changed freely after it has been created.
- WHEN (blue card) - select a trigger:
- Task created, Status changed (optionally only to a selected status),
- Task due in N hours, Task inactivity (no messages for N days),
- New message, Mentioned me, Attachment added,
- Event created, Event starts in N minutes (Calendar),
- New email in inbox (Mail),
- Every day at… (with a choice of days of the week).
Attachments have their own trigger, and that's no coincidence. When someone sends a message with a file, the app saves the message first and uploads the files afterwards - when New message occurs, there are no attachments yet. So build a “when an invoice arrives” rule using Attachment added: it runs after the upload and includes the specific file. Pasted images and drawings (content elements, not attachments) won't trigger it.
Your Calendar is personal, just like your inbox. A recipe only responds to your events - as an attendee, you have your own copy of the event, so the recipe responds to that copy. Events created by an automation do not trigger Event created.
- IF (purple card) - add conditions: priority, status, workspace, a phrase in the subject or message, chat/task (narrows the rule to a single thread), assignee, author, "overdue by N hours", "assignee is on leave", file name contains (attachment in the thread or email), event title contains, and for mail, sender (contains or does not contain) / subject / inbox / "has attachment". The list of conditions adapts to the selected trigger - with New message you won't see mail conditions, and vice versa. Conditions are combined with AND - all of them must be met. In the "contains" fields you can enter several words separated by commas - then it's enough for any one of them to match (e.g.
invoic, fv, billing). This is the only place with an "or" option; for anything else, use a second recipe. Enter the word stem, without the ending. The app looks for a fragment of text, so "invoice" will NOT find "invoices" or "invoicing" - yet that's how people write. Enter "invoic" and you'll catch all variants. Case doesn't matter. New time conditions: Time of event (before / from a given time inclusive, e.g. 17:00) and Day of week (working day Mon-Fri / Saturday-Sunday) - evaluated at the moment the event comes in. Time variants ("before 5pm → today, after 5pm or weekend → next working day") are built using separate recipes - conditions are combined with "and". There's a separate "AI will assess (custom condition)" condition - instead of a rigid rule, you describe in plain language what the AI should check, e.g. "whether the attachment looks like an invoice". The AI sees the sender, subject, author, a content snippet, the event title and attachment names (it doesn't look inside the files) and answers yes/no. This condition always counts as the last one - cheap conditions filter events first, so you don't pay for unnecessary AI requests. When unsure, the AI answers "no" - the automation would rather do nothing than do something wrong.
Two recipes for one email. If one email meets the conditions of both recipes, and each creates a task, you'll end up with two tasks. To get just one, add a condition to the second recipe that excludes the cases already handled by the first:
- first recipe: Sender contains
@client.com→ Create task; - second recipe: Email subject contains
complaintand Sender does not contain@client.com→ Create task.
You can switch the "contains" / "does not contain" operator by clicking the pill next to Sender. Enter the same fragment in both recipes - "contains" looks for it in the sender's address and name, so it's a text match rather than a strict domain check. You can't save an empty "does not contain" condition.
Include knowledge (the “include knowledge…” chip). Both the “AI evaluates” condition and the “Write a message with AI” action can also access the internet (from 2.2.353), if the recipe owner has enabled the AI Assistant with internet access permission: in the instructions, you can tell AI to, for example, “build a website address from the lead’s email domain, fetch it and take its content into account when evaluating” - the engine will fetch up to 2 pages per run. “Write a message with AI” blocks can be given a selected knowledge base - the same sources as in the Assistant: a note, Files folder, chat, task, entire workspace or inbox. This lets AI reply on your behalf based on your materials, for example: when someone asks about pricing → evaluate whether they’re asking about prices based on “Pricing 2026” → reply using that price list. Each block has its own knowledge base - you can evaluate based on the terms and conditions, and reply based on the price list. When you include knowledge, AI is instructed not to make things up: if something isn’t in the sources, it will say so. Watch the cost and volume: this material is sent to AI for EVERY event, so there’s a limit of about 12,000 characters (the Assistant allows 60,000). Sources that don’t fit are omitted entirely - choose a specific folder or note rather than an entire workspace.
You can ask the Assistant to do this. Just say what it should base its work on: “answer questions about pricing based on the Pricing folder” or “evaluate submissions in line with the Terms note”. The Assistant will prepare a draft straight away and outline in bullet points how the automation will work (WHEN / IF / DO). If the plan looks right, click the button to move to Automations and save the draft; if not, simply reply to the Assistant with what to change, and it will prepare a revised version. It will put the recipe together and fill in the knowledge field itself - just describe what you need in plain language (“Pricing folder”, “FAQ note”, “Accounting chat”, “my notes”). Anything it can’t find will be listed in the notes above the draft; you can add it with a chip.
- DO (amber cards) - add actions (up to 10, performed in sequence): write a message in a thread (with variables such as
{{zadanie.nazwa}}and an optional mention of assignees), write a message with AI, create a task, change status/priority, archive, send an email, clean up old “Completed” items, save attachments in a folder - works for emails as well as files uploaded to a task or chat. Choose the location from a list (the “choose a folder…” chip opens the Files browser): Documents, any subfolder or a workspace folder. You can also create a new folder right in this window (“New folder…”). Duplicates (same name and size) are skipped. Older recipes (and those put together by the Assistant) use a typed-in path instead - a slash separates levels, so “Documents / My files / Invoices” saves to the Invoices subfolder, and any missing levels are created automatically; clicking the chip switches the recipe to the location selected from the list, create a note (private or in the workspace where the event occurred - in that case, people in that workspace can see it); the folder field puts the note in the specified Notes folder - the path works like saving attachments, and any missing levels are created automatically, show a notification (it appears in your Notification Centre under “Automations”) and create a calendar event (title with variables; due date “in N hours” OR, in day mode: the same day / the next working day at the specified time - working-day mode skips Saturday and Sunday; the event is added to your calendar, with no attendees) and AI chooses the event time - for when the date isn’t known in advance and needs to be CHOSEN from the event content and your calendar. Describe how to decide in the instructions, for example: “if the first time proposed in the email is free, book it; if it’s busy, check the second; if both are busy, don’t create an event and give 2 free times between 10 and 16 in the decision”. AI always sees your calendar (busy times and absences), and saves its decision to the variables{{ai.decyzja}},{{ai.termin}},{{ai.tytul}}- use them in the NEXT blocks (a notification with{{ai.decyzja}}, an email written by AI saying “in line with the ai_event field”), so the entire recipe refers to one and the same time. Put this block BEFORE the email and notification. - Save. Saving is explicit (via a button) - an enabled recipe starts working straight away, so nothing is saved “halfway through editing”.
Test before enabling
The Test button takes the most recent events matching the trigger and shows what would happen - which ones would pass the conditions and what messages would be sent (with variables filled in). It does not perform or send anything.
Run history
The History button shows every event that matched the trigger: completed (with a list of steps), skipped (with the condition that stopped it) and errors (with the server message). Entries are kept for 30 days.
Temporary AI error - retries on its own
When the first step of a recipe (e.g. “Send a message via AI”) gets no response from the AI provider due to a temporary issue - no connection, timeout, provider overload - the recipe retries on its own after 2, 10 and 30 minutes. In History you'll see every attempt with the note “Will retry automatically at …”. You only get a failure notification once the fourth, final attempt also fails.
Only a recipe in which nothing has executed yet retries on its own. If the error occurred at a later step (e.g. a task was already created, but the AI message failed), an automatic retry would duplicate the earlier steps - so it's your call then. An exhausted account budget with the AI provider isn't temporary either - it doesn't retry.
“Retry” button
For a run that ended in an error, there's a Retry button. The recipe will run again for the same event (the same email, task or message) within a minute, and in History you'll see the term “Retry scheduled for …”. Note: a retry runs all steps from the start - if some of them succeeded the first time, they'll run again. “Retry” also works for runs from before this version, as long as they relate to an email still in the inbox.
Mail: inbox and sender at the trigger
With the "When a new e-mail arrives" trigger, you can set right away which inbox and from whom it should apply to - there are two fields next to the trigger name for this. This is not the same as the "Inbox" and "Sender contains" conditions in the IF section:
- the filter at the trigger says which e-mails the recipe even looks at. The rest doesn't appear in the History - it's not "skipped", because it simply doesn't apply;
- conditions in IF narrow down what the trigger has already let through, and every rejection is visible in the History along with the reason.
If you have several inboxes, set a filter at the trigger - otherwise the History will fill up with ordinary correspondence and you won't be able to find what matters. Existing recipes keep working unchanged; you can leave the fields empty ("any inbox", "from anyone").
When a recipe has never run
If a recipe has been enabled for more than a week, at least 10 events have passed through it, and it has not run even once, you'll get a notification in the Notification Centre - with the number of events and the condition that rejected them. This almost always means a typo or a condition that was set too narrowly when it was created. Once you fix the recipe, the counter starts again, and after the first successful run, the notification won't come back.
How do you know a recipe has stopped working
The "runs" counter only counts the passes where the recipe actually did something. If a condition stops matching - for example, because the other side changed the subject of the e-mails they send - the recipe is still enabled and still watches every event, it just rejects it, and the counter stays put.
That's why, after 48 hours without a single run, the program says so directly: on the list, next to the name, you'll see "· last run: 6 days ago" (or "hasn't run even once yet"), and when you open the recipe, the header shows how many events since then have failed the conditions and which condition stopped them, e.g. "33 events since then haven't passed the conditions (last one: E-mail subject contains: lead)". That's usually enough to see what to fix.
As long as the recipe keeps running, you won't see any of these notes - a narrow condition is entitled to reject most events, and that's not an error.
Safeguards
The overriding rule is: no safeguard operates silently - if anything blocks a Recipe, you receive a notification in the Notification Centre (bell).
An administrator can change the thresholds under Settings → Advanced → Limits (active events per user, automation runs per hour; 0 = no limit). The daily limit for AI requests from Automations is under the AI tab.
- A Recipe runs with your permissions - it cannot do anything you could not click yourself (it will not post in someone else’s task or add a task to someone else’s Workspace).
- Run error (failed action, limit exceeded, daily AI budget exhausted) = a notification containing the error details the first time it occurs; subsequent identical errors will not generate repeated notifications - details are always available in the recipe's History.
- Loops are limited: a recipe doesn’t respond to events it triggered itself, and a chain of “automation triggers automation” ends at the second link - a notification reports the interrupted chain (at most once per hour).
- Hourly run limit - once exceeded, the recipe pauses automatically; you receive a notification and an email (this prevents a cascade of runs, for example during an import).
- 3 consecutive errors = automatic pause + notification + email. Its status is shown on the list.
- An administrator can see all recipes, disable or delete any of them, and edit them. The recipe still runs with its author’s permissions - the editor then shows “author: X (you’re editing as an administrator)”.
- The switch in the editor shows whether a recipe is enabled. Pausing after errors is a separate state - it’s described by the line below the name and the “Paused” section in the list, while the switch remains on, so you can still turn the recipe off as usual.
Access
Automations belong to the Pro plan. They're not available in the Standard plan, and previously saved recipes wait paused. In the Pro plan, everyone can use them by default. An administrator can revoke access for a selected person in the users panel (the Can use Automations toggle) - the item then disappears from the views menu. A global administrator's access cannot be revoked.
If you’ve connected an inbox (Settings → Mail), the “New email in inbox” trigger and the “Send email from your inbox” action become available.
The trigger runs for every received message (copies of your own sent messages do not trigger it). Conditions let you narrow it down to what matters to you: Sender contains, Email subject contains, Mailbox (if you have more than one) and Has an attachment.
The action sends the message from your address - not a system address - so it does not end up in spam. The recipient can be the email sender (the reply stays in the same thread), you or a specified address. You can use the variables {{mail.temat}}, {{mail.nadawca}}, {{mail.nadawca_nazwa}}, {{mail.skrzynka}} and {{mail.data}} in the subject and message body.
Example: when an email arrives with “invoice” in the subject → create a task in the Accounting workspace and reply to the sender: “We’ve received it and will take care of it within 2 working days”.
Your mail remains yours. A recipe only responds to its author's mailboxes. You cannot create an automation for someone else's mail - not even as an administrator.
Example: invoices are automatically saved to a folder
From mail:
- WHEN: New email in mailbox.
- IF: Has an attachment → yes, then “AI evaluates”: whether the attachment looks like an invoice.
- DO: Save attachments in the Invoices folder → Show notification “Invoice from {{mail.nadawca}} has been saved”.
From a chat or task (someone on the team adds an invoice to the thread):
- WHEN: Attachment added.
- IF: Event author → selected person, then “AI evaluates”: the attached file is an invoice - indicated by the file name (faktura, FV, invoice) or the message content.
- DO: Save attachments in folder → choose My files / Invoices → Show notification “File {{plik.nazwa}} from {{wiadomosc.autor}} was saved to Invoices”.
Both recipes are available as templates under + → Invoices to folder (AI). You can arrange the conditions in any order - AI will still run last, after the cheaper filters.
Folders organised by year and month. In the folder field, a slash creates another level, while date variables are inserted when the file is saved - enter Faktury / {{rok}} / {{miesiac}} and a file from 3 September will be saved under Invoices / 2026 / 09. Missing folders are created automatically, so you do not need to set them up in advance or move anything at the end of the month. Available date variables: {{data}}, {{godzina}}, {{rok}}, {{miesiac}} (two digits) and {{miesiac_nazwa}} (e.g. Wrzesień).
Example: an email enquiry becomes a task
- WHEN: New email in mailbox.
- IF: Sender contains → the client's domain (or Subject contains → enquiry).
- DO, in order:
- Create a task - set the workspace, the person responsible and a due date of +2 days. In the subject and description, use the variables:
{{mail.temat}},{{mail.tresc}},{{mail.nadawca}}. - Write a message (or let AI write the message) - it will land in the thread of the task you just created. The
{{mail.*}}variables still work, so the note can quote the enquiry or summarise it. - Save attachments in a folder - e.g.
Zgłoszenia / {{rok}} / {{miesiac}}.
- Create a task - set the workspace, the person responsible and a due date of +2 days. In the subject and description, use the variables:
The task is linked to the mail thread: a blue badge with the email subject appears in its header, and clicking it opens the original correspondence. This also works the other way round - the thread menu (⋮) shows Linked: <task>. Nothing gets lost between the mailbox and the task list.
The order of the blocks matters. A message will be added to a task only if the Create task block comes before it. An email isn’t a thread you can write to - until a task exists, the “AI writes a message” block works as an analysis whose result you can use later with
{{ai.odpowiedz}}(for example, in a note or notification).
What this recipe will NOT do: it will not read the due date from the email content (you set the due date as +N days after the email arrives), nor will it choose the person responsible based on the content - it assigns the person you select in the recipe. If enquiries need to go to different people, create several recipes with different sender or subject conditions.
Example: Calendar
Reminder 15 minutes before a meeting: WHEN Event starts in 15 min → DO Show notification with the text “{{wydarzenie.tytul}} at {{wydarzenie.godzina}}”. Ready-made recipe: + → Event reminder.
Preparation before an event: WHEN Event created, IF title contains “audit” → DO Create a calendar event: “Prepare materials: {{wydarzenie.tytul}}”, in 2 h.
Event variables: {{wydarzenie.tytul}}, {{wydarzenie.data}}, {{wydarzenie.godzina}}. File variables: {{plik.nazwa}}, {{plik.rozmiar}}. Date variables (work everywhere, including in folder names): {{data}}, {{godzina}}, {{rok}}, {{miesiac}}, {{miesiac_nazwa}}. Mail variables: {{mail.temat}}, {{mail.nadawca}}, {{mail.tresc}}. The variables {{ai.odpowiedz}} (plain text), {{ai.odpowiedz_html}} (with formatting - use this in note content) and {{ai.naglowek}} (the first line of the report - ideal for a note title, such as a lead company name) contain the result of an earlier “Write a message with AI” block - for a mail event, this block doesn’t send anything; it only prepares an analysis for subsequent actions (notes, notifications and emails).
AI query limit
The “AI evaluates” condition and “write with AI” action query the model for every matching event, so the administrator sets a daily limit on these requests in Settings → AI (200 by default; 0 disables the limit). Once the limit is reached, recipes that use AI are skipped for the rest of the day, with a clear entry in the history. The counter resets at midnight and everything resumes automatically, with no need to switch anything back on manually.
