# What is Cubicl?

Cubicl is the easiest task management tool that you can assign tasks to your teams and monitor them. You can see the states of the tasks and the workload of the teammates.

## **How Cubicl Work OS Works?**

### Task Management

Assign tasks to the teammates and change the states of tasks easily.

<figure><img src="/files/z7YSOAjravSSWhhC8Abo" alt="" width="563"><figcaption><p>Kanban View in Tasks</p></figcaption></figure>

On the home page, users see the tasks that are assigned to them or tasks that they follow. So, they do not forget tasks and complete them in time.

<figure><img src="/files/jX6OGWRvKdwi5tqkBA2v" alt=""><figcaption><p>Home Page</p></figcaption></figure>

### Client Management

Add your clients to Cubicl. Track your tasks and deals related to them. Follow related notes and activities.

<figure><img src="/files/GNpFK07BxuxcxgjMJdil" alt=""><figcaption><p>Clients Page</p></figcaption></figure>

![A Client's Page](/files/-MamyQ03pQIE3wFVu0IM)

### Project Planning

Create a project plan (Gantt Chart) and follow the plan with your team.

![Gantt Chart](/files/-MUSzPeWe5hqA4NtkfpZ)

You can easily edit the start date and deadline of tasks on Gantt Chart:

![Gantt Chart](/files/-MTekigcjh2rLctX5HII)

### Chat with Your Team

Thanks to chat box in Cubicl, you don't need to send e-mails to your teammates or ask question to them about tasks via phone call. You can make announcements, share files, and communicate with them without using another app.

<figure><img src="/files/-MWdsgrLD1prdVjD6tB0" alt="" width="563"><figcaption></figcaption></figure>

### Archiving

Completed tasks can be archived. You can access the details, dates, and assignees of archived tasks in the Archive.&#x20;

### Notifications

Get notifications about activities on your tasks.

<figure><img src="/files/2sN7ibc9fA2QWHftLBZo" alt="" width="263"><figcaption></figcaption></figure>

You get either **desktop notifications** at the corner of your screen if Cubicl is running in the background or **e-mail notifications** if you are not signed in Cubicl.


# Get to Know Cubicl

Learn menus and pages in Cubicl.

Cubicl is easy to use for task management. As a first step, create an account in Cubicl and your free demo will be started. Then, begin to explore Cubicl.

## Create an Account and Invite Your Team

To use Cubicl, firstly, you have to have [a user account](https://cubicl.io/register). Cubicl is a task management application for teams; therefore, after creating your user account, the application will ask you to create an **Organization Account**. For this, you need to add a company or team name only.

Then, you can invite your team to the application. You can do this while creating an organization account or later. You only need to write e-mail addresses to invite team members. Invitation mail will be sent to them. Those who click on the link in the invitation mail and sign up Cubicl are added to your organization. You are ready to work together.

## Menus and Pages in Cubicl

When you sign in Cubicl, you will see a screen like this:

<figure><img src="/files/jX6OGWRvKdwi5tqkBA2v" alt=""><figcaption><p>Home Page</p></figcaption></figure>

On the **Top Menu**, you will see a time tracker, messages and notifications short-cuts, and help and logout buttons. There are some pages on **Navigation Menu** on the left, Messages and Notes on the **Right Menu,** and your tasks in the middle.

Under the **Other button** on Navigation Menu, you can add features that you will use or remove them from the list.

To do this, click on the **Other> Edit Pages buttons**, select the features you will use, and click **Done**:

<img src="/files/-MkfDJ3LSrpNHGuuKfty" alt="Other Button" width="375">

You can decide which features will be added to the Other Button on the **Organization> Organization Details> Active Pages**:

![Active Pages](/files/-MkfGkqGv5ZySQdc_Wwp)

### Home Page

Home Page shows the tasks you need to do. Tasks that you create, tasks that are assigned to you, and tasks that you follow are listed there.

### My Calendar

View your tasks in different projects on the My Calendar page. Also, you can create tasks there.

### Chat

Communicate with team and team members.

### Projects

Create projects for your teams, departments, projects or groups. In this way, each project can follow related tasks in a related project. You can order your projects according to your organization/firm hierarchy. After you sign up Cubicl, you will see just one project under the **Projects** headline in Navigation Menu. This project is your main project which implies your organization/firm. All of your teammates will be members of this project after you invite them.

### Clients

It is under Other Button. Add your clients to Cubicl. After you create, you can create tasks and deals about them.

### Deals

It is under Other Button. Add deals that you offer to your clients.&#x20;

### Email Boxes

It is under Other Button. Connect your business emails such as <accounting@mycompany.com>, <support@mycompany.com> to Cubicl. Thus, your e-mails are created as a task in Cubicl. You can work under that task with your teammates and reply to e-mails from Cubicl.

### Integrations

It is under Other Button. Integrate Cubicl with apps like Google Drive, Google Calendar and Slack.

### Forms

It is under Other Button. Create forms to collect information about tasks or conduct surveys within the team.

### Client Portal

It is under Other Button. Share links with your clients to collect their support requests. When they create a request, a notification drops to your Cubicl account. In addition to that, you can share tasks and files with them via Client Portal.

### Workflows

It is under Other Button. Use the Workflows to create sequential and interrelated tasks. If you have routine tasks that follow each other, workflows make task management easier.

### Time Offs

It is under Other Button. Add time offs for the organization and the teammates.

### Organization

It is under Other Button. Invite your team to Cubicl and arrange your organization's setting.

### Profile Page

Arrange your profile and notification settings.

### Right Menu

You can see your teammates there, chat with them, and create little notes. You can arrange menu visibility by clicking on the little setting button. To see the hidden menu,  mouse over the little speaking balloon.

### Top Menu

There are time tracker, notifications, messages, and help and logout buttons on the Top Menu.


# Frequently Asked Questions (FAQ)

### How I learn Cubicl?

Cubicl is a simple program to use. You can learn how to use Cubicl in detail in the user manual. Our team will reach you and assist you in this process. Apart from the user manual, you can check out our [Youtube](https://www.youtube.com/@cubiclapp) channel and our [101](https://docs.google.com/presentation/d/1FeZ8SGrkR4h3QoVyDGlDwOsow1q_xRDLBZLPVSeP3vY/edit?usp=sharing) and [201](https://docs.google.com/presentation/d/13NZj5SUM-ttscza9JR7yr04UIM7FgHpGhNqjiGAV9JA/edit?usp=sharing) presentations.

### Do I have to add a credit card when starting a trial?

No. You don't add your credit card information to start a trial. You will not be charged any fees until you start subscription.

### Are the changes I made in my trial account deleted when my paid account started?

No, you can continue using the application from where you left off. All changes you make will be saved. If you want to use it on a new account, you need to create an account again.

### Is my personal data and information safe?

Yes. According to General Data Protection Regulation (GDPR), we are protecting your personal data. Your data in the system is stored on our highly secure servers. Since our database is backed up daily, your information is not lost. You can also back-up if you wish.

It will be checked whether your Cubicl password is strong enough during registration, password renewal and password update processes. By using passwords that meet the strong password requirements, you make your account even more secure. You can also enable 2-Factor Authentication (2FA) from Account Settings.

### Do I need to install the Cubicl to my computer?

No. Cubicl is cloud-based application. You just need to create an account on our website.

### Do you have a mobile app?

Yes. You can access Cubicl from anywhere with Android and iPhone applications. You can download our mobile apps from app stores.

### Can I give different permissions to team members?&#x20;

Yes. Different permissions can be given to users for different pages in Cubicl. For example, in a project, employees may enter a task activity and add files, but they may not have the permission to edit the task. Project admins can have broad permission, including deleting the project. To get detailed information about permissions, visit the [Permission Table](/organization-and-user-settings/user-permissions#permission-table).

### Can you add our feature/ development requests to the application?

We collect your requests in a pool and give them priority. As a feature's priority increases, we begin to work on it. We regularly update our web and mobile applications and announce newly added features to you. If you submit your requests, we will update our development list.

### How can I delete my account?

If you do not want to continue using Cubicl after your free trial ends, you do not need to take any action or delete your account. Your account will not be active unless you start a subscription from the Subscription and Payments tab on Organization page. If you still want to delete your account, you can contact us via <support@cubicl.io>.

### There are 3 plans. Which plan should I choose?

We recommend that check the features in plans and choose which answers your needs.

### How can I get support if I face a problem?

For all kinds of problems, you can send an e-mail to <support@cubicl.io>. Also, you can reach us from the Help menu in Cubicl.

### How you charge?

We charge monthly per user. Your usage amount depends on the number of users. In this way, you only pay for the amount you use. In addition, you can benefit from a 10% discount on pre-paid purchases of 6 months, a 20% discount on 1-year pre-paid purchases, and a 30% discount on 2-year pre-paid purchases.

Payments can be done via bank/ credit card.


# First Steps in Cubicl

## Create an Account and Invite Your Team

Create an account and invite your team via the [registration webpage.](https://cubicl.io/register)

## Update Your Profile

Click on the profile picture in the Navigation Menu. Upload a profile photo and set notification settings.

## Create Projects

If you have a large number of employees or multiple departments or teams, it is recommended that you should create a project for each department, team, or project. In this way, your projects would be more organized. You can track related tasks in related projects.

If you have a small team, you can skip this step. You can create projects when you need them.

To create a project, click the **New Project** button in the Navigation Menu. A form will be opened.

Name your project while creating it. Projects have a hierarchical structure, which means each project is created under another project. Identify the main project. To create a project, you must add at least 1 person as a project admin. To add your team to a project, you must first invite them to the organization, and they must create a user account in Cubicl.

## Assign Task

Create tasks that are already in progress or that you plan to do. First, go to the project in which you want to create a task. You will see **Tasks** page of the project. On this page, click **Create** button to create a task.

On the Create Task Form, you only need to name the task. If necessary, you can also add a description, dates, sub-steps, and assignees. The people you want to add as assignees must have been already invited to the organization and have created an account in Cubicl .

## Schedule Meetings

For events such as meetings, training, etc., create tasks on the calendar.

On **My Calendar** or **Calendar** in the related project, click on the day that the calendar event will be added. Name the event on the create task form. You can also add additional information, description, and assignees.

## Save Personal Tasks and Notes

**My Notes** on the Navigation Menu is a personal page. Other users cannot see this page. Add your personal tasks here. For example, invoices you have to pay or specific notes for your work. Or create sticky notes.


# How Do I Track My Tasks?

To track your tasks, the **Home Page** is enough. When you sign in Cubicl, the first thing you see is the Home Page, and it consists of 2 columns: the **timeline** is on the left, and **reports** and **tasks** are on the right.&#x20;

<figure><img src="/files/tH8PWrpiaSX6mgk8K8xM" alt=""><figcaption><p>Timeline, Reports and Tasks</p></figcaption></figure>

## Timeline

On the timeline, tasks you need to do are sorted by their deadlines. Also, they are grouped as: **Overdue, Today, Tomorrow, This Week, Next Week, This Month**.&#x20;

The timeline shows short notes about your tasks. When you click on the title of a task, you will be directed to the detail page of the task. Completed tasks are removed from the timeline.

## Tasks

To see a task in the timeline, it should have at least a deadline. Tasks without a deadline are shown in the **tasks** column on the Home Page. Here, tasks are grouped by their types: **Assigned to You** and **Created by You**.

## Reports

Reports field on the Home Page shows states of tasks and users' workloads for a time period of your choice. Also, if a teammate is tracking time, it is shown to you. For a more detailed report, you can click **Go to the report page** button.

## Purpose of the Home Page

Thanks to the Home Page, you never forget your tasks. You can see the upcoming tasks so that you can get prepared and plan according to them. Yours and your team's main goal is to keep this page as short as possible by completing all of the tasks on the Home Page.


# How Do I Create a Project Plan?

{% hint style="warning" %}
**NOTE:** If you are not managing a project or tracking short-term tasks mostly, you do not need to create a project plan on Gantt Chart. You can track your tasks through the **Tasks** page.
{% endhint %}

You can create a project plan (Gantt Chart) for your projects. Each project can have only one Gantt Chart; therefore, you need to create a project for each project. You can archive them when the project is completed.

![Gantt Chart](/files/-MUSzPeWe5hqA4NtkfpZ)

Cubicl Gantt Chart is an interactive tool. You can create a task and add it to the chart. To do this, all you need to do is to click on an empty line on the time grid of the chart or type the name of the task to **New Task...** field. Your tasks are shown as bars on the time grid. You can change the dates by dragging and dropping the bar, and change its deadline by pulling the right side of the bar, as well. Creating a project plan is that easy.

You can group taskbars by coloring them or creating task groups. All members of the project can view the project plan -unless you change it-, but only project admins can make changes on it. You can download the project plan as a PDF.&#x20;

Gantt Chart also makes it easy to track the tasks. Overdue tasks are shown in red, active tasks are shown in blue, and completed tasks are shown in green color. If you want, you can remove completed tasks in case of using the Gantt Chart for task tracking. Removing completed tasks is not recommended for projects.


# How Do I Communicate with My Team?

## Cubicl Remarkably Diminishes the In-Company E-Mail Traffic

First and foremost, since Cubicl saves your tasks and shows their current states, it is not needed to ask your teammates about the current states of tasks. Because all of these are on Cubicl, already! Also, as you can share information by entering comments on tasks, all of the correspondences about a task are gathered in one place. You do not lose time while searching e-mails.&#x20;

## Instant Messaging With Team Members

<figure><img src="/files/KpmwTf57qnef23TaFqWy" alt=""><figcaption><p>Chat Box</p></figcaption></figure>

You can chat with your team without leaving the application and changing the page you are on.

## Mobile Application

Wherever you are, you can communicate with your team via Cubicl mobile application.


# How Do I Stay Informed About Progress?

You get notifications for;

* assigned tasks to you
* updated tasks you follow
* changed status of tasks you follow
* tasks that you tagged
* deleted tasks that you follow.

<figure><img src="/files/2sN7ibc9fA2QWHftLBZo" alt=""><figcaption></figcaption></figure>

If Cubicl is running in the background, you can get **desktop notifications** on the corner of your screen.

If Cubicl is not open, you can get **e-mail** **notifications.**

Also, you can get notifications via Cubicl mobile app.


# How to Create a Task?

When you click on the Create button on the Tasks page of the project, a modal opens to create a task. Additionally, you can create tasks from the following pages:

* By clicking on an empty row at the bottom of the Gantt Chart page of the project.
* On the Calendar page of the project, by clicking the Create Task button or clicking on any day.
* On the My Calendar page in the left navigation menu, by clicking on any day.
* By clicking the Create button on the task details page of any task.

## Details Tab in Create Task Modal&#x20;

When creating a task, all fields except Task Name are optional. On the task details page, you can enter description, priority, start date and deadline of the task, tags, client, and assignees. In the Owner section, your profile is shown as you are the one creating the task. Ownership can be edited after creating the task.

If you want tasks to appear on the Timeline on users' Home Page, you should at least add deadline to the task.

When adding a client, you can either create a new client at that moment or select from your existing clients.

To add a user as an assignee, that user must have been invited to the organization account and accepted the invitation. You can confirm if the user is in the organization by going to Other > Organization page.

### Estimated Time&#x20;

In addition to the fields mentioned above, you can also add an Estimated Time field to the Details tab. For this, the Project Admin needs to go to the [Project Settings](/task-and-project-management/projects/project-settings#customizing-projects-and-tasks) page and enable the feature.

### Additional Task Form Fields&#x20;

In addition to the fields mentioned above, if you want to add custom fields specific to your work, the project admin should go to the [Project Settings](/task-and-project-management/projects/project-settings#customizing-projects-and-tasks) page and add the additional fields. Once saved, these additional fields will appear on the Details page of the respective project.

## Files Tab in Create Task Modal&#x20;

You can upload files to the task both from your computer, from URL and from Google Drive or Dropbox.

{% hint style="warning" %}
**NOTE:** The files you add to the task will be visible within the task. They will not be added to the Files page of the project.
{% endhint %}

## Steps Tab in Create Task Modal&#x20;

You can add Subtask or Progress Bar to divide the task into smaller parts and track progress.

### Substeps in Task&#x20;

When dividing the task into substeps, you must name them. You can enter a description, progress bar, substep, and assignee for the substep.

### Progress Bar in Task&#x20;

If you want to divide the task numerically instead of dividing it into substeps with custom names and descriptions, you can simply enter the number of substeps.

The assignee can enter the number of completed task steps on the task details page. As the number of substeps is completed, the task bar turns green.

## Recurrence Tab in Create Task Modal&#x20;

This tab is for creating regularly recurring tasks.&#x20;

When you check the "Make the task recurrent" option, specify the time interval. For example, every 3 days, every Friday every 4 weeks, once every 12 months, etc.

Choose when the new recurring task will created:

* After the end date of the current task. Even if the current task is not completed, a new task is created regularly.
* When the current task is completed. A new task is not created until the current task is completed. Task delay prevents the regular creation of new tasks.

Specify the repetition limit:

* Task repeats continuously.
* Task repeats until a date I specify.
* Task repeats a number of times I specify.

## Other Tab in Create Task Modal&#x20;

### Hidden Task&#x20;

When you select the option for only the assignees can see the task, only the users who created the task and the assignees can see the task.

### Adding Workflow to Task&#x20;

You can add workflows previously created here to the task. Visit the [Workflows](/task-and-project-management/workflows) page to learn more about the workflow.


# Cubicl Mobile Application

Cubicl Task Management Application can be used on both web and mobile applications.

<img src="/files/-MYKsQS_gEMcF9Qbd7LQ" alt="Cubicl Mobile App" width="375">

To download Cubicl to your iPhone, click [the link](https://apps.apple.com/tr/app/cubicl/id1329564118).

To download Cubicl to your Android, click [the link](https://play.google.com/store/apps/details?id=io.cubicl.cubicl).


# Projects

It enables teams within the company to collaborate in a shared workspace and access all project-related information and tasks.

If you are a company with a large number of employees or projects, creating all of the tasks in one place makes it hard to track tasks. As a solution, you can separate tasks by creating separate **Projects**.

You can transfer the structure of your organization to Cubicl by creating different projects for your company's:

* Units
* Teams
* Groups
* Projects
* Departments
* and Offices in different locations.

## Main Project

When you create an account for your organization, a main project for your organization is created automatically. Every team member you invite to your organization account will be added to this main project, as well. You can use this project for announcements and tasks related to the whole company. Small teams do not need to create another project other than the main project. Main project includes all projects, so if you want to see all tasks in the organization, use the main project.

<figure><img src="/files/ybYUaFPgP2L7BG5vke0B" alt="" width="333"><figcaption><p>Popup project list</p></figcaption></figure>

{% hint style="warning" %}
**NOTE:** The main project cannot be deleted.
{% endhint %}

### Hierarchical Structure

Projects have a hierarchical structure and they are sub-projects of the main project. Each project is created as a sub-poroject of another project, and each project can have unlimited sub-projects.

To **change the hierarchy** between the projects, click on the **Settings** icon near the title of **Projects** and change the hierarchy of projects by dragging and dropping projects.

When you click on the **Show My Projects** button, you will only see the projects you are a member of, so you will see a simpler structure.

<figure><img src="/files/Bmxbn1ekbYfxvQE1rMJl" alt=""><figcaption><p>Changing hierarchy</p></figcaption></figure>

## Create a New Project

After clicking on the **New Project** button, a **New Project Form** will appear. Here, you can add a project name, parent project, admins and members, project permissions, and decide whether it will be a private project or not. Also, you can change these via the [Project Settings](/task-and-project-management/projects/project-settings) page later.

![Create a new project](/files/nNIS96Gm8VX1tLq7fb03)

### More Than One Parent Project

You can select more than one parent project for collaborative projects for more than one unit or teamwork. To do that, you should add all related projects as Parent Project in the New Project Form. So, both the sub-projects and tasks you create will be shown under selected parent projects.

{% hint style="warning" %}
**NOTE**: You can change all project settings later except selecting more than one parent project for a sub-project. That is why, if you want to create a project under more than one project, you should do this on this step.&#x20;
{% endhint %}

### Project Admins and Members

The person who created the project adds project admins and project members. At least one project admin must be added to the project while creating it. project admins have full authority in the project, which means they can edit anything on the project.

{% hint style="warning" %}
**NOTE:** If a person you want to add to the project is not a member of your organization account, you **cannot add** her as a project member to the project. You can go to the [Organization Settings](/organization-and-user-settings/organization-settings#invite-members) page to find out what you should do to invite your team members to your organization account.&#x20;
{% endhint %}

<img src="/files/-MWxlPV9MO62gM3UEvcJ" alt="Warning Message" width="375">

{% hint style="warning" %}
**NOTE**: **Account manager and project admin should not be confused with each other.** Account manager is able to add new users to the organization, remove users, subscribe to Cubicl, and manage payments. On the other hand, a project admin manages a project in the organization. For more information about it, visit the [Organization Settings](/organization-and-user-settings/organization-settings#account-manager) page.
{% endhint %}

### Private Project

A private project can be viewed only by project admins and project members of it. Non-members cannot even view the name of the project in the Projects section.

<figure><img src="/files/RLy56vETbjedWJ1Mov0r" alt=""><figcaption><p>Private Project</p></figcaption></figure>

### User Permissions in Project

To make an activity in the project, such as viewing, creating, editing, and deleting tasks, a user must have permission to do it.

Users are categorized into 4 groups depending on permission level:

* Project admins
* Project members
* User-based
* Others

*a. Project Admins*

For project admins, there is no permission limit in the project. They can view, create, edit, and delete tasks. Since projects are in a hierarchical structure, project admins have permission in sub-projects of the parent project, as well.

*b. Project Members*

Project members are the users who are added to the related project. By default, they have permission only on the contribution level, which means they can view and create tasks but cannot edit and delete them.

*c. User-Based*

They are individual users, you can set different permission levels for them.

*d. Non-Project Members*

These are people who are members of the organization but not members of the project. By default, they can only see project content. They cannot do anything other than that.

*Exceptions*

By default, the permission system works as mentioned before. However, there are some exceptions depending on the user's situation. For instance, project members cannot edit other people's tasks, but they can edit the task they have created. They can delete their own comments.

*Changing Project Permissions*

You can change project permissions to limit or extent permissions for project members and non-project members via the [Project Settings](/task-and-project-management/projects/project-settings) page.&#x20;

## Detailed Projects Page

In Cubicl, projects are displayed in a pop-up window by default. However, if you want to perform bulk actions, add custom fields, or manage projects in more detail, you can use the **Projects Page**. To open it, click the button next to the **Projects** heading.

<figure><img src="/files/UMN4uKxxSTKohusW6mP7" alt="" width="289"><figcaption><p>Go to project page button</p></figcaption></figure>

{% hint style="warning" %}
**NOTE:** All organization members can view the Projects Page. However, only Project Admins have permission to edit projects. A user who is assigned as the admin of a project can edit that project and all of its subprojects. For example, a user who manages the main project can edit every project within its hierarchy. If you are not a manager of a project, you cannot make any changes to it.
{% endhint %}

### Customizing the Projects Page

<figure><img src="/files/KupZMX4MKizKLAZUTYyF" alt=""><figcaption><p>Projects page</p></figcaption></figure>

Click the **Page Settings** button to customize the Projects Page.

<figure><img src="/files/s8jp3UZckpE6jTJXIQV5" alt=""><figcaption><p>Projects page settings</p></figcaption></figure>

From the Page Settings, you can:

* Edit existing **project types** or create new ones.
* **Add custom fields** in addition to the default fields, such as Estimated End Date, Budget, or Related Document Link.
* Change the default **navigation behavior**. By default, projects open in the **Popup List** view, but you can set the **Projects Page** as the default view if you prefer working with a more detailed interface.
* Choose which **columns** are displayed and arrange their order.

### Project Views

The Projects Page allows you to display projects in **Table**, **Card**, or **Accordion** views.

<figure><img src="/files/WUGcelK5QDIwwu6xKH13" alt=""><figcaption><p>Different views in projects page</p></figcaption></figure>

In the **Table** and **Card** views, you can change the **sorting** order of projects.

<figure><img src="/files/j3C4Wn12EJwfL0SVLmA2" alt=""><figcaption><p>Sorting projects</p></figcaption></figure>

Changing the sorting order does **not** affect the project hierarchy. To reorganize the hierarchy, click the **Hierarchy** button and use drag-and-drop to change the parent-child relationships between projects.

<figure><img src="/files/OzfSIqn1kROl7ZLO0QgJ" alt=""><figcaption><p>Changing hierarchy in projects page</p></figcaption></figure>

Use the **search and filtering** options to quickly find the projects you need. You can filter projects by:

* Status
* Members
* Customer
* Project Type
* Priority
* Created Date
* Estimated End Date

You can also hide archived and completed projects from the list.

<figure><img src="/files/kpxMCOlBH8kzUYW2qXGh" alt=""><figcaption><p>Filtering projects</p></figcaption></figure>

### Bulk Actions on Projects

Select multiple projects using the checkboxes to perform bulk actions such as:

* Archive or restore projects
* Hide or show projects in the navigation

<figure><img src="/files/IWUbZv514O5ARRVBR8KF" alt=""><figcaption><p>Bulk actions in projects page</p></figcaption></figure>

{% hint style="warning" %}
**NOTE:** When you hide one or more projects from the navigation, the change only affects your account. Other users will continue to see the projects in their navigation as usual.
{% endhint %}

### Project Actions

Each project has an **Actions** button. Click it to update project details and perform project-specific operations.

<figure><img src="/files/7TlGhdI0kAPPzG2yYj8m" alt=""><figcaption><p>Editing a project in projects page</p></figcaption></figure>

* Create a task within the project.
* Open **Settings** to:
  * Rename the project.
  * Change the project icon.
  * Make the project public or private.
  * Assign a project number.
  * Update details such as the estimated end date, project type, and priority.
  * Enter values for custom fields.
  * Add or remove project admin and members.
  * Open the project's full **Settings** page for additional configuration.
* Change the project status. The default statuses are:
  * Pending
  * Active
  * Suspended
  * Cancelled
  * Completed
* Hide the project from the navigation or make it visible.
* Archive or delete the project.

## Project Pages

When you click on a project name on the Navigation Menu, you will be directed to the project. In the project you can find pages like:

* [Tasks](/task-and-project-management/projects/tasks-page)
* [Files](/task-and-project-management/projects/files-page)
* [Gantt Chart](/task-and-project-management/projects/gantt-chart)
* [Time Chart](/task-and-project-management/projects/timeline-chart)
* [Calendar](/task-and-project-management/projects/calendar)
* [Reports](/task-and-project-management/projects/reports)
* [Settings](/task-and-project-management/projects/project-settings).


# Tasks Page

To track tasks in a project.

You can use **Tasks** page to view, create, edit, and delete tasks. Each project has a Tasks page that shows the project's tasks. This is the page you see, when you open a project.

![Tasks in the Project](/files/-MWxlwT3O4xko32bid4s)

On the top-left of the page, there are a **create new task button, a search box, a view settings button,** and a **filter button**. On the right, there are **all tasks, tasks by members,** and **archive** page buttons.

## Create Task Button

When you click on **Create** button in the project, **Create Task Form** pops up. Here, you have to add a task name to the task. The rest is optional.&#x20;

<img src="/files/-MWxmUuVoiATaaamruwo" alt="Create Task Page" width="563">

## Filter Tasks

On the Tasks page, you can filter tasks by assignees, task owner, tag, client, creation date, completion date, start date, and due date. You can also hide subtasks, and use dedicated filters to view support, email, or recurring tasks. Additionally, in **List** view only, you can filter tasks from sub-projects as well.

<figure><img src="/files/oVVLDXTJaBQ2fxiTPf3d" alt="" width="375"><figcaption><p>Filters in task page</p></figcaption></figure>

## Search Button

You can quickly search for tasks by their names.&#x20;

<img src="/files/-MWxmp2XiouzHtvYVkon" alt="Search Button" width="563">

## Kanban View

From the settings icon on the Tasks page, you can switch the view to Kanban to track your tasks in a Kanban view.

<figure><img src="/files/WvXrPd23nStXFPoG5EdU" alt="" width="214"><figcaption></figcaption></figure>

Task states are shown as columns. To change the state of a task, drag and drop the task card from one state to another state. Also, you can change the sorting of tasks in one column by dragging and dropping.

<figure><img src="/files/z7YSOAjravSSWhhC8Abo" alt=""><figcaption><p>Kanban View</p></figcaption></figure>

### Editing Kanban States <a href="#editing-kanban-states" id="editing-kanban-states"></a>

Project managers can edit states directly within the Kanban view using the 'Edit Mode' button, without needing to navigate to the Project Settings page. They can add new states, rename existing ones, or change their order. However, deleting a state can only be performed via the Project Settings page.

<figure><img src="/files/KTCsJTpor7jcbUaCidbN" alt="" width="375"><figcaption></figcaption></figure>

### Bulk Actions in Kanban States

At the top of each state column in Kanban view, you'll find a + button to add a new task and a three-dot menu for actions.

<figure><img src="/files/MY3kmACusUvcl7xPLv14" alt="" width="297"><figcaption><p>Bulk action in a state</p></figcaption></figure>

* **Edit:** Bulk edit all tasks under that state.
* **Move:** Move all tasks in the stage to another state or to a different project and state.
* **Archive:** Archive all tasks under the state in bulk.
* **Delete:** Delete all tasks in the state at once.

### Customizing Kanban Task View

You can choose what information to display on task cards from the **Details** tab on the project's settings page. For more details, please visit the [relevant page](https://docs.cubicl.io/task-and-project-management/projects/project-settings#customizing-kanban-and-list-view).

<figure><img src="/files/OxcBzniJR6syrKK8X1k6" alt="" width="280"><figcaption><p>An example for a task card</p></figcaption></figure>

### Actions in Kanban Task

In Kanban view, clicking the three-dot icon at the top of a task card allows you to perform actions such as bulk selection, copying, editing, sharing with a customer, and activating custom actions.

For more details, visit the following pages:

* [Task Details Page](/task-and-project-management/create-tasks/task-details#actions-in-task) – for actions you can perform on individual tasks
* [Bulk Actions in Tasks](/task-and-project-management/projects/tasks-page/bul-actions) – for performing bulk actions in Kanban view
* [Custom Actions](/task-and-project-management/custom-actions) – to learn more about setting up and using custom actions

<figure><img src="/files/1uuFnjj9Oc30WQm34yKV" alt="" width="305"><figcaption></figcaption></figure>

### Cost Managemenet in Kanban

Cubicl offers a powerful and practical feature in the Kanban view for teams who want to track task-based costs within projects. The total cost information displayed next to each stage makes the financial impact of every step in the process clearly visible.

To use this feature:

1. **Create a Custom Field**\
   Go to the project's [settings page](https://docs.cubicl.io/task-and-project-management/projects/project-settings#adding-additional-fields-to-the-task-form) and add a custom field of the **Currency** type to the task creation form. For example, you can name this field **Cost**.
2. **Add a Field to Kanban Cards**\
   From the same settings page, go to the [**Task Fields to Show**](https://docs.cubicl.io/task-and-project-management/projects/project-settings#customizing-kanban-and-list-view) section and select the **Cost** field you created to be displayed on task cards in the Kanban view.
3. **Create Tasks and Enter Values**\
   When creating a task, enter expense values, such as $**20000** for the "Develop User Login Screen" task.
4. **Track Totals Instantly**\
   In the Kanban view, the total of the values in the **Cost** field for the tasks in each stage is automatically displayed under the title of each stage (e.g., **Waiting**, **Active**).

<figure><img src="/files/pknQAn9v5SbNVYM5QC2A" alt=""><figcaption><p>Cost Management in Kanban</p></figcaption></figure>

**What Does This Feature Provide?**

* **Instant Budget Visibility**: Track the budget in real-time by seeing how much cost has accumulated at each stage throughout the process.
* **Ease of Decision-Making**: Quickly identify which stages are accumulating high-cost tasks and take prompt action.
* **Access to Information Without Reporting**: View cost information directly on the dashboard without the need for extra filtering or reporting.
* **Healthier Planning**: Make more balanced resource plans by considering both workload and cost data.

In addition to tracking costs, you can also adapt this feature to monitor **income, invoice payments, contract amounts, deals, investments, profit targets**, and more.

## List View

In the List View, tasks are displayed as a table.

<figure><img src="/files/CtvkYXS1K6VMSofWJuGe" alt=""><figcaption><p>A task in a list view</p></figcaption></figure>

You can choose which information to show for each task from the Details tab on the project's settings page. Visit the [relevant page](https://docs.cubicl.io/task-and-project-management/projects/project-settings#customizing-kanban-and-list-view) for detailed instructions.

Due dates in the list view are highlighted in red for overdue tasks and in orange for upcoming tasks.

If a task is placed under the **task group** in Gantt Chart, task groups are shown under the task name. For detailed information about task groups, have a look at the [Gantt Chart](/task-and-project-management/projects/gantt-chart/features#creating-new-task-group) page.

While tasks are listed according to their priorities in the list view, you can change the priority of the task by holding and dragging it.

<figure><img src="/files/sDPvJjgeYOhbyy1mXa2Z" alt=""><figcaption><p>List View</p></figcaption></figure>

In the list view, you can see the progress of a task with steps. Progress is calculated automatically for them. Progress is not shown for tasks without steps. To calculate it, the weight is evenly distributed for each step.  For a step with its own sub-steps, total weight equals the sum of weights of sub-steps.

## Task Sorting

In both Kanban and List views, tasks are sorted by **Priority** by default. The most recently created task is added to the bottom of its priority group. However, you can change this sorting order using the **Settings** button.

<figure><img src="/files/WvXrPd23nStXFPoG5EdU" alt="" width="214"><figcaption></figcaption></figure>

### Sorting by Priority

On the left side of a task card, task priority is shown with colored dots. If you set sorting by priority, both in Kanban View and in List View, tasks are sorted starting from high priority to low priority. In Cubicl, red color indicates the highest, and gray color indicates the lowest level of priority.

<img src="/files/-MayfCxtqeGawbTgtXU_" alt="Priority Colors for a Task" width="188">

### Sort by Deadline

Both in Kanban View and in List View, you can sort tasks by their deadlines. However, tasks without a deadline are only shown in List View.&#x20;

### Newest to Oldest Sorting

With this sorting option, tasks in the Kanban view are displayed with the most recently created task at the top. In other words, tasks are ordered by their creation date.

## Show Images on Task Card

In Kanban view, you can enable the **Show Images** option from the Settings button on the Tasks page. This will display the first image file attached to a task directly on the task card.

<figure><img src="/files/7E08JGFCPbHTkvQgLCWI" alt="" width="277"><figcaption></figcaption></figure>

In this way, you can distinguish tasks easily.&#x20;

<figure><img src="/files/pyokVnho9RJpsu4I6Ei5" alt="" width="292"><figcaption><p>Image on Task Card</p></figcaption></figure>

If you prefer a simple Kanban View, you can switch this feature off.

## Client Message Badge

In the Kanban, List, and By Members task views, if the latest message on an email-based task or support ticket was sent by the client, the task card will display a “new activity” badge.

<figure><img src="/files/3zQEFTPzTzvgOvBZEjRd" alt="" width="288"><figcaption></figcaption></figure>

## Tasks by Members

On the Tasks page, you can sort tasks by members, as well. You can assign a task from one user to another by dragging and dropping the task card. In particular, you can use this feature when a user leaves the organization and it is needed to assign her tasks to another user.

<figure><img src="/files/ld5YkuFSES3TabNRvoOK" alt=""><figcaption><p>Tasks by Member</p></figcaption></figure>

When you try to assign a task from one of the two assignees of the task to the other assignee, you will see this warning:

<img src="/files/-MWxo_Z4CIAzvX9kBeCj" alt="Warning Message for Changing of Assignee" width="375">

## Task Archive

Tasks you archived in the project are listed in **Archive**.

<figure><img src="/files/iH2HbN3hLH7LKeAeavcP" alt=""><figcaption><p>Archieve Page in Tasks Page</p></figcaption></figure>

If you want to **restore** a task, click on the Restore button that pops up when you click the task card.

{% hint style="warning" %}
**NOTE:** You **cannot make changes** on archived tasks. To make changes, you need to unarchive them first.
{% endhint %}

If you want to create a task that is the same as an archived task, to **copy** it, click on the **Copy** button that pops up when you click the task card. **Create task form** will pop up. After you update it, the task you created will be shown on the tasks page of a project.

When you click the Delete button, the task will be deleted.

### Bulk Actions in Archive

To bulk delete, restore, or copy tasks from the archive, click the 'Bulk Action' button, select the relevant tasks, and complete your operation.

<figure><img src="/files/PBT9ncFAh1zeSqYbXGjr" alt=""><figcaption></figcaption></figure>


# Bulk Actions in Tasks

In the Kanban view, clicking the three-dot icon next to a task allows you to: select tasks for bulk actions, copy, edit, archive, or delete the task, share it with a client, export it, change its project and stage, download any attached files, sync it to Google Calendar, or start a custom action.

<figure><img src="/files/IXaFujfsOu1SKo7AmG46" alt="" width="305"><figcaption><p>Actions in Kanban</p></figcaption></figure>

This section covers only bulk actions. For all other actions, please visit [Task Details > Actions](/task-and-project-management/create-tasks/task-details#actions-in-task).

## Multi-Select

By clicking **Select**, you can select more than one task at the same time. A window pops us at the right corner of the screen, like this:

<img src="/files/-MfcZnXmnSgPGtSTuuOu" alt="Select Tasks" width="375">

For the tasks you’ve selected, you can perform bulk actions such as **Archiving**, **Editing**, or **Deleting**. Under the **Others** button, you’ll also find options to **Move** Tasks, **Copy** Tasks, or **Export Tasks to Google Calendar** in bulk.

<figure><img src="/files/gSPla18qTTdUpq4uUYZ2" alt=""><figcaption><p>Multiple Selection</p></figcaption></figure>

### Bulk Task Editing: Assignees, Labels, and More

After selecting multiple tasks, click **Edit** in the modal that appears at the bottom right to make changes to all selected tasks at once:

* Update task priorities
* Assign the same client to all selected tasks
* Clear or set new start and due dates
* Add new labels
* Change assignees in bulk

<figure><img src="/files/BEkydqM8cfld1zfUWKPt" alt="" width="563"><figcaption><p>Edit tasks in bulk</p></figcaption></figure>

### Bulk Task Move: Change Project or State

From the Others menu, click **Move** to transfer multiple tasks at once to a different **project** or **state**.

<figure><img src="/files/dMDb5WAose2kxmMAsxua" alt="" width="375"><figcaption><p>Transfer tasks another project or another state</p></figcaption></figure>

## Bulk Actions in Kanban States <a href="#bulk-actions-in-kanban-states" id="bulk-actions-in-kanban-states"></a>

At the top of each state column in Kanban view, you'll find a + button to add a new task and a three-dot menu for actions.

<figure><img src="/files/B3qgi0XwXtNun7TeOWEv" alt="" width="296"><figcaption></figcaption></figure>

Perform bulk actions in states using the three-dot button:

* **Edit:** Bulk edit all tasks under that state.
* **Move:** Move all tasks in the stage to another state or to a different project and state.
* **Copy:** Bulk copy tasks under a state to a selected project. If the same state exists in the target project, tasks are copied there; otherwise, they are copied to the default state.
* **Archive:** Archive all tasks under the state in bulk.
* **Delete:** Delete all tasks in the state at once.


# Files Page

To upload files related to the project.

You can use the Files page to save files and folders related to the project. Each file includes size information, as well as its upload date and time in its details.&#x20;

![Files Page](/files/-MWxvZxGFcruT_SZkkDl)

## Files Storage

At the top of the page, you can see the total storage size available in the organization and how much space the files you upload to the organization occupy.

<figure><img src="/files/mFReY8uXrvNY72GgfdJJ" alt="" width="363"><figcaption><p>Total storage</p></figcaption></figure>

Near it, you can see how much storage is occupied by this project and its sub-projects' files.

<figure><img src="/files/ME5fxeYQ2LVFvnttN2cA" alt="" width="435"><figcaption></figcaption></figure>

## Upload Files and Folders

For project files, you can create a folder and upload them into this folder, or you can upload them directly.&#x20;

Regardless of the file type, you can **upload** files from your **computer, Google Drive, or Dropbox**.

<figure><img src="/files/x87aiJp4gX2PcT4pH3SG" alt=""><figcaption><p>Upload Files from your computer, Google Drive, or Dropbox</p></figcaption></figure>

## File Sorting

You can sort your uploaded files in several ways:

* A to Z
* Z to A
* Oldest to newest
* Newest to oldest

<figure><img src="/files/Rt0EeZg6fvMhIg4tKuhm" alt=""><figcaption></figcaption></figure>

## Actions on Files and Folders

On the Files page, you can **download** a file by clicking its name, select **more than one** file, change the **name** or **project** and **location** of a file, and **delete** files you no longer need using the three dots on the task.

![Edit File](/files/-MWxvq84MoPLjpkuSNqD)

## Bulk Download of Files and Folders

To download multiple files or folders, click the **Select** option for each item you want to download. Then, click the **Download** button at the top. The selected files will be downloaded in **ZIP** format, maintaining the **hierarchy** from the Projects page.

<figure><img src="/files/1SL5z8jlR5lbMJCRK385" alt=""><figcaption><p>Bulk download project files</p></figcaption></figure>

{% hint style="warning" %}
**NOTE:** You cannot download files from Dropbox or Google Drive.
{% endhint %}


# Gantt Chart

To make a project plan.

## What Is Gantt Chart?

Gantt Chart is a visual task management tool that has been widely used in production and project designing until today, and it is created by Henry Gantt in the 1910s. Check [Wikipedia Link](https://en.wikipedia.org/wiki/Gantt_chart) to learn more.

It is quite easy to learn and use it. Once you've learned it, you will be able to plan your tasks more quickly and accurately. Gantt Chart in Cubicl is shown below. A Gantt Chart is composed of two parts:

1. Tasks List: It is placed on the left of the chart. There is one task on each line.
2. Time Grid Lines: It is placed on the right of the chart. It provides you a calendar view of your tasks. Here, each task is shown as a bar.&#x20;

![Gantt Chart](/files/-MUSzPeWe5hqA4NtkfpZ)

### Time Grid Lines

Each day is shown as a column. You can see days and months on the time grid lines. Holidays are shown in gray columns.

### Tasks

In Gantt Chart, there is one task on each line and dates in each column. In lines, you can see the taskbar and assignees. So, you can control the workforce and connection between tasks to create more accurate project plans. In this way, the plan goes right,  tasks are done in time, you provide efficiency, you face fewer problems with the clients, and time and money are used efficiently. If it is necessary, you can change the plan immediately.

### Task Groups

It is used to group tasks connected to each other. It makes defining work packages easy. It is shown in gray bars in the picture above and it includes tasks under it.

### Connections

In projects, to begin a task, another task must be done before, otherwise, you cannot continue to work on the project. In Gantt Chart, connections are used to illustrate the relationship between tasks. On the image above, you see an arrow-shaped connection between tasks. Thanks to connections, you can see relationships between tasks. Also, when the date of a task changes, the other task's date changes automatically.

### Time Line

It is the purple vertical line that is on the 12 October column in the picture above. It demonstrates the current time. Tasks at the left of this line are supposed to be completed. By looking at this line, you can see which state the project is supposed to be and how many of the tasks are done in time.


# Features Of Gantt Chart

## Tasks List

It is placed on the left of the Gantt Chart. Task names are lined up. On each line, a task is placed. Next to each task, there is a sequence number:

![Tasks on the Gantt Chart](/files/-MWxwAzCg8h6jwDVm8bb)

If you click on name of a task on this menu, you will be directed to the details page of the task.

### Creating New Task

There is an input line at the bottom of the list to create a new task. By clicking on this line, you can create a new task. When you do it, a taskbar emerges. There is a cancel button on the left of the task name. By dragging and stretching out the taskbar placed on the time grid lines, you can arrange the task's start date and deadline.&#x20;

![A New Task](/files/-Mb0A9slHRh_7WMYnv5M)

If **there are previously created tasks** that you want to add to the Gantt Chart, click on the " There are ... tasks not included in this table. Click to show/hide" at the bottom of the chart. When you mouse-over the task you want to add, "Add to Chart" button will show up. In this way, you can add tasks previously created. &#x20;

![Not Included Tasks](/files/-MWxwUAEyk828iCTdhXx)

Here are the other options for adding tasks to the Gantt chart:

* For bulk addition: from the Details tab on the project’s Settings page. More details, please visit [this page](/task-and-project-management/projects/project-settings#automatically-adding-tasks-to-the-gantt-chart).

<figure><img src="/files/fdsNVp6hfpAMYRxRmuQE" alt="" width="372"><figcaption></figcaption></figure>

* While creating a task: from the Other tab.

<figure><img src="/files/fJBusaJ4xQWwUUSzx20h" alt="" width="375"><figcaption></figcaption></figure>

* From the Actions button on the task details page.

<figure><img src="/files/8smqSGR3Nq6f8mPSeL0y" alt="" width="375"><figcaption></figcaption></figure>

* From the task card in the Kanban view on the Tasks page.

<figure><img src="/files/tFFYcLXVF6vCSlwlycb3" alt="" width="286"><figcaption></figcaption></figure>

### Creating New Task Group

On Gantt Chart, you can create tasks one by one and list them. If you want, you can group tasks connected to each other under the **Task Groups.**

To create a new task group, click on the setting button next to the "New Task" line. Then, select "Task Group" option:

<img src="/files/-MWxwimCZOjPGTqljRKi" alt="Creating New Task Group" width="375">

Now, you can type the name of the task group on the place used to type the task name. Unlike tasks, a taskbar is not created immediately.&#x20;

When there is a task under a task group, a gray bar is shown. This bar shows start dates and deadlines of all of the tasks under a task group.&#x20;

![A Task Group](/files/-Mb0BWc9YnZfpxZ-5s1D)

Task groups have an interbedded structure. You can create task groups under a task group.

### Sorting Tasks and Task Groups

If you want, you can change the sorting of the Gantt Chart by dragging and dropping tasks and task groups.

![Changing Sort](/files/-Mb0C5JLtDcOBpp1Pgls)

### Removing Tasks and Task Groups from Gantt Chart

To remove tasks and/or task groups that are not necessary anymore or you do not need them to be in the project, mouse-over the number on the left of the task name. A cross sign will replace the number. You can remove the task by clicking on this cross sign.&#x20;

<img src="/files/-MWxx2fvRik2MtHuRlCm" alt="Removing a Task From Gantt Chart" width="375">

{% hint style="warning" %}
**NOTE**: Removing a task from Gantt Chart does not delete it. It will still be on the tasks page of the project. If you want to delete a task completely, use delete button on the task edit form or task details page. Tasks deleted through this way will be removed both from the tasks page and the Gantt Chart.
{% endhint %}

## Time Grid

### View

Time Grid is placed on the right of the Gantt Chart and it visualizes dates of tasks. Time Grid offers you two types of view: daily and weekly view.

<img src="/files/-MWxxQKAxZTzREwYc7Af" alt="Time Grid Settings" width="375">

Holidays are shown in gray columns in Time Grid. You can set work days and work hours for your team via the Gantt settings menu.

<img src="/files/-MWxxceoKYpJ-Smyuxvb" alt="Time Grid Work Days and Work Hours" width="563">

#### Daily View

In this view mode, each column demonstrates a day.

![Daily View](/files/-MWxwAzCg8h6jwDVm8bb)

#### Weekly View

In this view mode, each column illustrates a week. Each column is split into sub-columns to show days. It is more appropriate to view long-term projects.

![Weekly View](/files/-MWxy3Ofr5SVGl2C90U0)

## Components of Gantt Chart

### Task-bars

Each task is shown as a bar. By looking at this bar, you can get informed about its start date, deadline, duration, completion level, and so forth. A whole taskbar is shown in dark color when its completion level reaches 100%.

<img src="/files/-Mb0EdzefHFypoh5lwMY" alt="Task Bars" width="563">

### Gantt Chart Task-bar Colorizing Tool

To colorize taskbars on the Gantt Chart one by one, click on the "Colorize" button. A colorization tool will pop up:

<img src="/files/-Mb0EyuzXa2t4tXFPo_n" alt="Colorize Button" width="375">

Select one of the colors shown. Then, click on the taskbar you want to colorize. Later on, click on "OK" button. If you click on the rubber button and then on the taskbar, the colors of the taskbar will be deleted and turned to the default color. In Cubicl, blue is the default color for tasks.

### Editing Task

Click on the taskbar to edit the task. Task editing form will be opened. Here, you can edit and/or delete the task.

### Dragging Tasks

Gantt Chart is an interactive tool. You can drag and drop task-bars to change their dates. Duration will not change while dragging tasks.

![Changing Dates of a Task](/files/-MUTf9r5s4D0v6rUe26I)

You can change a task's duration by stretching it out from its right side.

![Changing Duration of a Task](/files/-MUTfalBtE-YnG3Pd6sZ)

### Creating New Task

You can create a new task by clicking on the "New Task" line on the Time Grid. A create task form will be opened to create a task for the day you clicked.&#x20;

### Task Group Bars

Task group bars are shown as gray bars. The start and end date of these bars are set as the start and end date of the tasks below them. It takes shape according to the dates of the tasks.

<img src="/files/-Mb0GkKPalUZB3Q3qXL0" alt="Task Group Bar" width="563">

Clicking on the task group bar opens an edit form. Through this form, you can change the task group name and the color of the tasks under the task group.

<img src="/files/-Mb0GzWnNJaqdWyNOfQv" alt="Editing A Task Group Bar" width="375">

### Links

To complete a task, other tasks must be done before. The next task cannot start until these tasks are finished. You can link tasks to show this connection. In this way, when a task's date changes, the dates of other task that is linked to that task are also automatically updated. To create a link, click the dot on the right side of a task and drag it on the dot that is on the left side of another task.

More than one link can be added to a task. There can be multiple links from one task to other tasks.

<img src="/files/-Mb0IpI18i10ChdQjOm4" alt="Link between Task-bars" width="563">

Clicking on a link opens the edit connection form. From here you can put a time period between two tasks or delete the link. By default, the time period is zero. That is, the next task starts immediately after the previous task is completed.

<img src="/files/-Mb0JAGYnX7Ucn9wvT7w" alt="" width="375">

### Hidden-Visible Components

You can make some components in the Gantt Chart visible or hidden by clicking the eye button at the top of the Gantt Chart.

![](/files/-Mb0JboKuQqkz8Gp1zSC)

#### Assignees

Users are listed on the right of the task-bar. This way you can see the assignees.

![Assignees](/files/-Mb0KCJjkXz-73F6WM-6)

#### Completion Dates

On Gantt, the completion date of the task is shown by a yellow icon. Thus, the difference of time between planned and completion dates can be understood.&#x20;

![Completion Date](/files/-Mb0LEUSZ0r_Bc8YPdL3)

#### Task Status Colors

In Cubicl, the lines of the Gantt Chart are colored so that you can see the status of the task. **Red** for overdue tasks, **blue** for active tasks, **green** for completed tasks, and **gray** for archived/ suspended/ canceled tasks.

![Task Status](/files/-Mb0MNmyRle6PELao4a1)

#### Date Changes

Date changes made in task's detail page can be seen on the Gantt. In this way, you can understand what changes have happened in the previously planned project.

![Date Changes](/files/-Mb0M_4zEt04TRZIPnyW)

### Recommendation to Update Gantt Chart According to Time-Offs&#x20;

After time-offs added to members, if time-offs and dates of tasks are overlapping, a warning appears in the below the chart saying "You have update recommendation for ...task".

![Update Recommendations](/files/-Mb0NOnjc9K_PYdfXrAg)

You can change the task dates that overlap with time-offs, or you can assign another member instead of the assigned member on leave. For this, click the "Actions" button on task update recommendations page. Also, you can find detailed information about adding or changing time-offs [here](/starting/mobile-application).

<img src="/files/-Mb0eJb_U38hM8Lf-W_1" alt="Date Change" width="563">

## Download the Gantt Chart

Clicking the "Download" button will download the project plan in PDF format.

## Sorting Gantt Chart by Date

The "Sort by Date" button sorts the tasks in the Gantt Chart by their start dates. Tasks within task groups are ordered among themselves.&#x20;

![Sort by Date](/files/-Mb0fdYrEHmKGeUD2bKq)

## Permissions

The Gantt Chart can be edited only by project admins. Other users cannot change the chart. Therefore, even if you are a project member with permission to edit and delete tasks, you cannot change the dates and delete a task attached to the Gantt Chart.

Add the people that you want them to be able to edit the Gantt Chart as project admins.


# Tips for Planning a Project

#### Create Tasks

Whether you create tasks on the Gantt Chart or the Tasks page in the project, add related tasks with your project to the Gantt Chart.

#### Spend Time to Plan

Gantt Chart is the most practical way to make plans. However, making plans takes time. Well-thought plans will make your works easier, in the future. That is why it is better for you to spent time well for making plans. The time you allocated here will prevent obstacles in your plan.&#x20;

#### Track Tasks

When you open the project, check Gantt Chart page. Colors on the lines shows you overdue, active, and completed tasks. If you are using Gantt Chart for task management, after checking completed tasks and archiving them, you can remove them from Gantt Chart. If you are using it for project management, it is better to not remove completed tasks in the Gantt Chart to see unit of the project.

#### Edit the Chart

You should add new tasks or some tasks may not be completed on time. In that case, edit and update the project plan, regularly.&#x20;


# Timeline Chart

To see members' workload.

You can use Timeline Chart to view the workload of members.

<figure><img src="/files/Rtca2aAyBPd71fXFvIJ2" alt=""><figcaption></figcaption></figure>

Each row represents a project member. The schedule displays all tasks assigned to that person. This way, you can see which days team members are busy or available. During task assignments, you can easily identify who is suitable.

* You can apply **filters** in the Timeline.
* You can view the schedule on a **daily** or **weekly** basis.
* If there are leave entries added under **Time-Offs**, you can see them on the Timeline.
* If you have the required permissions, you can update the schedule according to your **working days** and **hours** from the Settings button.

<img src="/files/-Mb11TcdAh0aZroyA7kK" alt="Work Days and Hours on Timeline Chart" width="563">


# Calendar

To track your projects' tasks on calendar.

Each project has a calendar. This calendar is used for common events that interest project members, such as meetings or training.

![Project Calendar](/files/-MUroFhir7c2Xy-Jyv29)

## Displaying Calendar Events

When you open the calendar page, you’ll see the events for that month. You can view these events and tasks in month, week, day, or list formats.&#x20;

![Calendar List View Mode](/files/-MVLso8fpnyETSC5j0ut)

You can use some filters in project calendar:

<figure><img src="/files/2LLalNTm9l6tlMgi4GOm" alt="" width="291"><figcaption><p>Calendar filters for display</p></figcaption></figure>

## Creating Task on Calendar

To create a task on the calendar, you should click the date. Task form will be opened:

<img src="/files/-MVLuS6t30pzgMOAolWp" alt="" width="563">

#### General Details

Add the title and dates for the new task. When you select a start date, the deadline will be set for 1 hour later, automatically. You can change it by clicking on the deadline button, if you want.

#### Assignees

You can add assignees. Only them will see this event on their own calendars. They get notification about adding to this event.&#x20;

#### Editing Calendar Event

When you click on a task on the calendar, the edit form will pop up. Also, you can change dates of tasks by drag and drop the task.&#x20;

![](/files/-MVLwE2u7Co-8F5ndiYF)

## Deleting Calendar Event

You can delete a calendar event by clicking on "Delete" on the task edit form.


# Reports

To analyze states of tasks.

"Reports" page in the project shows statistics about the project's tasks and members, and member-based reports. On this page, by selecting a time period, you can receive information about current tasks status, statistics by time, activities, workload, and so forth.&#x20;

## Report Filters

In reports, you can filter tasks based on their state, time interval, assignee, client, owner, and archive status.

<figure><img src="/files/OZPwC1M5SKwroNKUko9U" alt="" width="359"><figcaption><p>Filter by archive status</p></figcaption></figure>

Additionally, you can generate reports that include subprojects of that project. Reporting with subprojects provides a more comprehensive result.

{% hint style="warning" %}
If you want a comprehensive **report for your whole organization**, use the reports page of your main project, which is the first project after you sign in Cubicl. The main project includes all projects in your organization.
{% endhint %}

## Downloading Reports

Reports are downloaded in **Excel** format according to the selected filter.&#x20;

The downloaded file contains pages like: By Date, By Employees, By Clients, By Tags, Time Tracking, Statistics.&#x20;

Depending on the content of the page, the downloaded file includes the task state (pending, completed, etc.), task name, project name, task creation date, task start date, task deadline, task completion date, task assignees, tags, clients, [additional fields](/task-and-project-management/projects/project-settings#customizing-projects-and-tasks) added to the task form, request number (for email or support request tasks), estimated time, task type (completed in time, completed late, overdue etc.), total recorded duration for the task, statistics for current task state and task activities by members.&#x20;

[Click the link](https://docs.google.com/spreadsheets/d/16AYfQUkrDiLgCQoT1G7KkjPgwyFt5OWf/edit?usp=sharing\&ouid=112888165615204476393\&rtpof=true\&sd=true) to view a sample report.

## Tasks

You can report tasks by their members, status, tags or clients for a selected time period.

<figure><img src="/files/8dZWlwa8dtZdBHwwtGoM" alt=""><figcaption></figcaption></figure>

* **Task Reports by Status:** Tasks are listed according to their status, such as completed, completed late, completed on time, to-do, and canceled/suspended.
* **Task Reports by Members:** Tasks are listed based on project members. For each member, the report shows the number of incomplete, overdue, completed on time, upcoming, canceled/suspended, and total tasks.
* **Task Reports by Customers:** If clients are assigned to tasks, tasks are listed based on those clients. For each client, the report shows the number of incomplete, overdue, completed on time, upcoming, canceled/suspended, and total tasks.
* **Task Reports by Tags:** Tasks are listed based on the tags saved in the project and assigned to tasks. Untagged tasks are also included in this report.

{% hint style="warning" %}
To get good results from reports, you need to create tasks already, add at least deadlines to these tasks, add assignees to these tasks, and add clients, if any. Otherwise, you cannot receive these details.&#x20;
{% endhint %}

## Time Tracking

You can see users spend how much time on each task or tags attached to the tasks in the time period you select.

{% hint style="warning" %}
In order to get healthy results from the time tracking report, assignees should run the time tracker while doing the task. Otherwise, you cannot access this data.
{% endhint %}

<figure><img src="/files/EOwHsMiwmGqEbe3WnaSO" alt="" width="563"><figcaption><p>Time Tracking</p></figcaption></figure>

### **Time Spent On Task States**

Tasks are shown according to the filters above. For example, if the task archive status is selected as all, both unarchived and archived tasks will be included in the report. Tasks created before the due date selected in the filter will be included in this report.

<figure><img src="/files/slkQ5CTSC78Cog1WZkse" alt="" width="375"><figcaption><p>Filter</p></figcaption></figure>

This section displays the time spent in each state of tasks until the state is changed, for tasks created within the selected time frame. For example, the duration between when a task is in the "Pending" stage and when it is moved to the "Active" stage represents the time it remained in the "Pending" stage. Durations in the stages are calculated based on the working days and hours of the project.

Reporting can be obtained based on Tasks and Assignees.

<figure><img src="/files/Qn7klCcxm0gwfDGxqec4" alt="" width="375"><figcaption><p>Lime Spent on Task Stages</p></figcaption></figure>

## Statistics

Statistics is for getting a general picture about the tasks in the project.

### Current Task Status

View the up-to-date status of tasks in your project.

**Default View:** Reflects the overall project status across all time periods. Shows the number of tasks in each state. If the include subprojects filter is applied, tasks in subprojects with the same state name are also counted.

<figure><img src="/files/1hViPUBKHaq6uyMwmfbw" alt=""><figcaption></figcaption></figure>

**By Project:** More meaningful when the include subprojects filter is applied. Displays task counts for all states across each subproject.

<figure><img src="/files/z1TjfTFFRssAWxt4hHIs" alt=""><figcaption></figcaption></figure>

**By State Type:** Shows the number of tasks by state types (pending, active, completed, suspended, canceled). If the include subprojects filter is applied, tasks in subprojects are included as well.

<figure><img src="/files/BU6Y9X5g6pRxQEGvV11k" alt=""><figcaption></figcaption></figure>

### Statistics by Time

In this chart, you can see the activities related to the tasks in the time period you selected.

![Statistics by Time Period](/files/-Mb1EJUlcbw6YC7XTf26)

### Task Activities by Members

You can use this chart to see statistics on a per-user basis. You can choose a time period.

![Tasks Activities by Members](/files/-Mb1EeWuKGJU-dztT3tn)

### Workload by Days

The workload table shows the number of tasks assigned to users in a day, week, and month view.

In daily view, each cell represents a day of the week. When you hover with the mouse over a cell, the number of tasks for that day appears. The day and month of each column are shown on the table, and the date is shown when you hover the mouse over it. Gaps between cells mean it's the end of the week and the beginning of the next week.

![Workload](/files/-Mb1F75u7NHmp_44pcy6)

On the table, you can see 1 week before and 4 weeks after the date you selected above. Cells are colored blue from the start date of the task to the end date; and, the color of cells gets darker as the workload increases.


# Project Settings

To arrange project settings.

To manage the project and see the members, click "Settings" in the project. The Settings tab consists of 4 sub-tabs. By default, the "Members" sub-tab is shown. Only project admin can access to other sub-tabs.

{% hint style="warning" %}
**NOTE: Only the project admins** can edit the project settings. Other tabs, except member tab, cannot be accessed by members.
{% endhint %}

## Adding and Editing Project Members

On this tab, you see project admins, members, and sub-projects.

![Project Settings](/files/BDfCioHcUL5ItCPHsjju)

If you are a project admin, you can add new members to the project. The people you want to add to the project must already be invited to Cubicl and had an account. To invite members to the organization account, check the [Organization Settings](/organization-and-user-settings/organization-settings) page.

On this page, you can make people an admin or remove them from the project by hovering over the members with the mouse and clicking the button that appears.

## Project and Task Settings

In the Detail sub-tab, you can change the project name, user permissions, task states; can select workdays and hours, and automatically place them on task forms; add the estimated time field and additional task form fields to the tasks; you can select the pages you want to show in the project.

### Project Name and Privacy

You can update the project name and privacy status. The private project is only visible to its members. The main project cannot be made private.

<img src="/files/yf39VJV2M4kW8I0sP5Pc" alt="Project Details" width="355">

You can add clients to projects. When you add a client to a project, that client will be automatically added to all tasks in the project.

### Project Permissions

Project permissions can be arranged for project members, non-project members and users. Project admins have full authority in the project.

![Project Permissions](/files/gAxTZZ4wof9vF7rePKCl)

If no permission has been set for a user, the permission settings selected for Members or Non-Project Members will be applied.

### Task States

Tasks states are Pending, Active, and Completed, by default. However, you can customize them according to your needs, or you can add new stages.

![Task Stages](/files/-Mb1JD6ZCMA9-0lR9Nm2)

### Working Days and Hours

It is for Timeline and Gantt Charts. You can add working hours to task forms. Thus, the selected working hours will automatically be the start and end times of the task when creating the task.

<img src="/files/-Mb1JNHPHqkLvwdXN8w8" alt="Working Days and Hours of a Project" width="375">

### Removing Project Pages

By default, a project includes the following pages: Tasks, Files, Gantt Chart, Time Chart, Calendar, and Reports. You can hide any project pages you don't use by going to the **Project Pages** section under the **Details** tab of the project's settings page.

<figure><img src="/files/xsdYCwPqEFgBUfAhMVAw" alt="" width="302"><figcaption><p>Remove project pages</p></figcaption></figure>

### Default Project Page

Project admins can decide which page users will see first when entering a project. This can be set under **Project Settings > Details**.

The change made applies to all project members within the relevant project.

<figure><img src="/files/3QH0YhxzkRyjayl5GXkx" alt="" width="240"><figcaption></figcaption></figure>

### Defaulf Task View

By default, the Tasks page of every project opens in Kanban view.

If you prefer the Tasks page to open in List or By Member view every time, you can change the Task View setting by navigating to **Project Settings > Details** within the relevant project. This adjustment can only be performed by project managers.

Once set, your selected view becomes the project default, eliminating the need to manually switch views upon every entry.

The change applies to all project members within that specific project, ensuring the Tasks page opens in the same view for everyone. Furthermore, a unique default view can be configured separately for each project.

<figure><img src="/files/UygUAdnW8zE4IgBLif04" alt="" width="256"><figcaption></figcaption></figure>

### Adding Estimated Time to Tasks

To avoid wasting unnecessary time, you can add an **Estimated Time** field to the task form. This option is available under the **Estimated Time** field in the **Details** tab of the project's settings page.

<figure><img src="/files/Kdqxk0yGfe7EHe1R2rtL" alt="" width="288"><figcaption><p>Estimated time field</p></figcaption></figure>

### Adding Additional Fields to the Task Form

The default task creation form includes fields such as name, description, start and due dates, assignees, client, and tags. If you wish, you can make tasks more detailed by adding additional fields to the task form. This can be done from the **Additional Task Form Fields** section under the **Details** tab of the project's settings page.

<figure><img src="/files/mFVtaAZZwBAcpso1BIzL" alt=""><figcaption><p>Additional task fields</p></figcaption></figure>

The **Estimated Time** and any additional fields you add will appear on the right side of the task form.

<figure><img src="/files/uyEh2RpuBsbJRdoYYnLM" alt=""><figcaption><p>A task with estimated time and additional fields</p></figcaption></figure>

### Customizing Kanban and List Vie**w**

You can customize what information appears in the **Kanban** and **List View** on the project's **Tasks** page. This can be done from the **Task Fields to be Show** field in the **Details** tab of the project's settings page.

<figure><img src="/files/w7f2ApojSGcdp4EC7Dqo" alt=""><figcaption><p>Task fields for kanban and list views</p></figcaption></figure>

Since the List view is displayed as a table, it shows all additional fields, including **Estimated Time** and **Tags**.

<figure><img src="/files/CtvkYXS1K6VMSofWJuGe" alt=""><figcaption><p>A task in a list view</p></figcaption></figure>

In the **Kanban** view, only one field is displayed at a time, and you can choose between **Estimated Time** or **Additional Fields**.

<figure><img src="/files/OxcBzniJR6syrKK8X1k6" alt="" width="280"><figcaption><p>A task in kanban view</p></figcaption></figure>

{% hint style="warning" %}
**NOTE:** If the additional field selected for the **Kanban** view is of the **Number** or **Currency** type, the sum of the values entered in the tasks will be displayed next to the task status. For example, if there are three tasks under the **Pending** stage with expenses of $10000, $5000, and $30000, the total of $45000 will be shown next to the **Pending** status. This feature is especially useful for teams tracking costs, as it provides an easy way to monitor the project's budget and expenses at each stage. Seeing the total values helps project managers understand how much work is still pending and the costs incurred at each stage of the project.
{% endhint %}

### Archive Tasks Automatically

You can automatically archive your completed tasks which did not get any new activity for the past 1 month. This way, you don't have to waste your time archiving your completed tasks.

Visit Project Settings> Details page for this.

<img src="/files/iZmlbe6rr9RDdqYJyqfE" alt="Archive Tasks Automatically" width="234">

### Automatically Adding Tasks to the Gantt Chart

You can choose to have newly created tasks added to the Gantt Chart automatically. This setting is available under Project Settings > Details. You can decide whether only tasks with dates should be added or if all tasks should appear on the Gantt Chart.

<figure><img src="/files/hIV91K5OPQxaAGPEeF8j" alt="" width="375"><figcaption></figcaption></figure>

### Automatic Task Status Updates

In busy workflows, new messages on completed, archived, or newly created tasks can easily go unnoticed. Automatic status updates help prevent this by moving tasks to the appropriate stage as soon as new activity occurs.

This system works with three conditions:

* When a new support ticket or email-based task is created
* When a completed task receives a new message
* When a message is added to an archived task

You can set which stage the task should move to for each condition. For example, if a client replies to a completed task, it can automatically move to the Pending stage. This ensures your team never misses client activity and can respond promptly.

These settings can be configured under Project Settings > Details.

<figure><img src="/files/UHuVZn91bwTFyEotSJHM" alt="" width="271"><figcaption></figcaption></figure>

### Subtask Operations

From **Project > Settings > Details**, you can control how date or state changes made to a main task are reflected in its sub-tasks.

<figure><img src="/files/qV1glKTcrch90Vv199Y6" alt="" width="563"><figcaption></figcaption></figure>

Instead of automatic updates, this feature is based on user confirmation. When the main task is updated, a confirmation modal is displayed asking whether the sub-tasks should also be updated. The modal clearly shows the new date or state that will be applied to the sub-tasks. Based on the user’s choice and update permissions, the changes are then applied to the sub-tasks.

## Actions for Project and Task

Under the Actions sub-tab, you can integrate the project with the Slack Application; you can go to deleted tasks and export tasks in the project; archive or delete the project.

### Slack Integration

Slack is a messaging application for your projects. It can work integrated with Cubicl. If your company is using Slack before, you can get notifications via Slack for activities in Cubicl.

![Slack Integration](/files/-Mb1L9CpIIkHTlAGKBGR)

### Task Operations

You can go to deleted tasks.

<img src="/files/-Mb1Lir7ufsv1XphtD3R" alt="" width="375">

You can **bring back** deleted tasks.

![Deleted Tasks](/files/-Mb1LyZDHS2V45KlMYoD)

You can export your task, except archived tasks, as Excel file.

<img src="/files/-Mb1MET2X01h8-tZoqIw" alt="Export Tasks" width="375">

### Project Operations

You can archive or delete projects that you no longer use or need.

{% hint style="warning" %}
**NOTE:** The main project **cannot** be **archived** and **deleted**.
{% endhint %}

<figure><img src="/files/7aJohW3ykyezzwJvOoO4" alt=""><figcaption><p>Main project cannot be deleted</p></figcaption></figure>

{% hint style="warning" %}
**NOTE:** Deleted projects **cannot be restored**.
{% endhint %}

{% hint style="warning" %}
**NOTE:** When a project archieved, tasks on it also archieved.
{% endhint %}

![Project Operations](/files/LKi1dJjMpECAji5gkELx)

**To restore project from archive,** select the project you want to restore from the Teams and Projects title on the Organization page. Click the Actions tab on the project's Settings page. You can continue to use the project when you click on the Restore Project From Archive button.&#x20;

You can also access your archived projects from the Settings page of the parent project of the relevant project.

<figure><img src="/files/jnhrgIYzQxcax2lVFTmK" alt="" width="359"><figcaption><p>Project Operations</p></figcaption></figure>

## Tags

In the Tags sub-tab, you can view, create, edit, and delete tags of the projects. Tags are used to group tasks and make them more visible.

To add tags to tasks, you must first create them on this page. On this page, you can view tags at the top and create them in the form at the bottom.

![Tags](/files/-Mb1NsZXixgt9aPXy_3H)

**To create a new tag**, add a short tag name in the form at the bottom of the page and choose a color for the tag. Meanwhile, a preview of the new tag will be shown below.

**To edit tags**, mouse over the tags listed above. You will see buttons to edit and delete the tag. When you click on the edit button, the tag details are transferred to the form below. You can save the details after editing.

**To delete tags**, click the delete button. The tag will be deleted without any warning.


# Create Tasks

To create and track tasks.

To create a task, go to **the project** where you want to create the task and click the **Create** button. Create a task or import tasks from an excel file.

<figure><img src="/files/CjnaVgJiHDjZ4t3QPyCE" alt="" width="297"><figcaption></figcaption></figure>

## Details of Creating Task

<figure><img src="/files/1kHxyJfe2tP8PleH1CzT" alt="" width="563"><figcaption></figcaption></figure>

### Task Name

The task must have a name. You can leave other options blank or add details.

### Task Description

Here, you can write what kind of result you want to get at the end of the task or you can inform the assignees about the task.

### Task State

Specifies the state at which the task will be created.

### Priority

Priority of tasks change from Very High to Very Low in 5 categories.&#x20;

<figure><img src="/files/chISU6OKyY1Lc8SMhTRr" alt="" width="190"><figcaption><p>Priority of task</p></figcaption></figure>

The priority is used to order tasks that do not have a due date.

### Dates

**Start Date**: The date the task should begin.

**Deadline:** The date the task should be done.

Adding dates are optional. It is recommended to set it like this:

1. **Leave the date ​​blank** if the task's deadline is unknown, or if you're doing the task regardless of date, or if you haven't decided to do it yet or want to add it as an idea only.
2. **Just put a deadline,** if only the deadline of the task is important or it doesn't matter when to start.
3. If you want to see assignees' schedule and which days are busy, **put both dates**.&#x20;

The deadline is also used to sort tasks on the Tasks page and on the Home Page.

### Estimated Time

This field is for add estimated task duration to the task. Estimated Time field is not added on the create task form by default, so if you want to add it, go to the [Project Settings](/task-and-project-management/projects/project-settings#customizing-groups-and-tasks).

### Tags

It is used to group tasks into topics and make them more visible. You can also create a new tag while creating a task, or you can choose from created ones. For detailed information about tags, see the [Project Settings](/task-and-project-management/projects/project-settings) page.

### Client

You can select an existing client or create a new client record directly from this section.

<figure><img src="/files/yn78xalRfj44NgXoc771" alt="" width="349"><figcaption><p>Create a client</p></figcaption></figure>

### Assignees

Add assignees to the task. You can add non-project members to tasks so you can work with other teams in the organization together. However, you cannot add members who have not been added to the organization account. To learn how to invite members to the organization, visit the [Organization Settings](/organization-and-user-settings/organization-settings#invite-members) page.

If it is not clear who will do the task yet, you do not have to add an assignee to the task.

### Followers

People who are not assigned to a task but receive notifications about its activities are called followers.

### Task Owner

The person who creates a task is its owner.

**After creating a task**, if you do not want to receive notifications related to that task, you can change the creator from the task editing page.

<img src="/files/L2KhbWdMQvIPxPzyGXdV" alt="Change Creator of the Task" width="563">

### Additional Task Form Fields

In Cubicl, you can add additional fields to task create form. You can add these fields in types such as short text, long text, number, date, date and time and option list. For instance, in the picture above, "ID" field had been added. To learn how to add those fields, you should visit the [Project Settings](/task-and-project-management/projects/project-settings#tags) page. In the Create New Field section, type the field name and select its type. Click the **Add+** button and it will be saved in the task form.

<figure><img src="/files/NQYufKcIj0YyorbK0OEo" alt=""><figcaption><p>Create New Field</p></figcaption></figure>

In the **Created Fields** section, the fields you have previously added are listed. From here you can update and delete fields.

Your additional task fields are listed in the right corner of the task detail page. You can type values ​​to these fields in the task form according to the type of field you selected.

## Add Files to a Task

You can attach files from your computer, from URL, Google Drive and Dropbox to the task. In order to upload files from Google Drive, you need to give permission.

<figure><img src="/files/4LRfXvMDXgE00qm0OHdt" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="warning" %}
**NOTE:** Files cannot be added again in recurring tasks.
{% endhint %}

{% hint style="warning" %}
**NOTE:** Files that you add to the task are not uploaded to the project's files page.&#x20;
{% endhint %}

## Steps

You can add steps to tasks to track task progress in detail. You will be notified as the steps are completed. Also, steps are used to calculate the percentage of progress for tasks.

For a task, you choose one of 2 step options:

### 1. Steps

Steps are added to the task as items. Assignees check the steps they have completed. You can add a description, progress bar, substep and assignees to steps as well as tasks.

The steps have a hierarchical structure. Therefore, steps can also have their own sub-steps.

<img src="/files/-Mb1f82-jkHr0JpA0e9d" alt="Steps" width="563">

You can add steps to tasks from the edit form or task detail. In order to use this feature, click a task. Click the box that says "Add new step..." under the "Task Steps" title. After typing the name of the task step and click on enter, your step will be saved. To update the task step, just click the pencil icon and edit the step, then click the green tick icon.

<figure><img src="/files/7V3bnov9D0fjpRSBPAnz" alt=""><figcaption><p>Adding Steps</p></figcaption></figure>

#### Number and Depth of Substeps

One of the problems you will encounter when creating a task is how extensive it will be. For example, if you keep the scope of a task too broad, it will contain many steps. This task may take a long time to complete and you may not be able to track it properly.

If you keep the scope too narrow, you create too many small tasks. In this case, the tasks alone may not give enough idea about the work to be done. You also need to keep track of tasks that are related to each other.

You will understand which is suitable for you as you create tasks with steps. However, you can consider:

* If the task alone doesn't make sense, or if there is an obvious need for other tasks to define, you can create them as steps under a single task.
* If a person has to follow a few specific steps to get a task done and it's pretty repetitive, you can create it as a single task.
* If the task you're creating has many steps, you need to define individual assignees for most of the steps, you can create this task as separate tasks if the assignees don't need to work together to complete the task.

### 2. Progress Bar

A progress bar is placed on the task without step items. It looks like this in the interface:

![Progress Bar](/files/-Mb1gDdBi66Y8PhBfEG8)

You can use the progress bar for 2 purposes:

1. To keep track of a certain number of tasks that need to be done. For example, if a product needs to be made 10, the progress bar value is selected as 10. The progress bar is updated for manufactured products.
2. To show task progress as a percentage. For example, you can separate progress into 10 pieces. So, 1 progress on the task means 10% of the task is completed.

### Substep, Subtask and Workflow Differences

<table><thead><tr><th width="261"> </th><th>Substep</th><th>Subtask</th><th>Workflow</th><th>Main Task</th></tr></thead><tbody><tr><td><mark style="color:blue;"><strong>Actions That Can Be Taken While Creating</strong></mark></td><td></td><td></td><td></td><td></td></tr><tr><td>Task name</td><td>☑️</td><td>☑️</td><td>☑️</td><td>☑️</td></tr><tr><td>Adding Assignee</td><td>☑️</td><td>☑️</td><td>☑️</td><td>☑️</td></tr><tr><td>Changing the Priority</td><td>❎</td><td>☑️</td><td>❎</td><td>☑️</td></tr><tr><td>Adding a Description</td><td>☑️</td><td>☑️</td><td>☑️</td><td>☑️</td></tr><tr><td>Start Date and Deadline</td><td>❎</td><td>☑️</td><td>❎</td><td>☑️</td></tr><tr><td>Attaching Files</td><td>❎</td><td>☑️</td><td>❎</td><td>☑️</td></tr><tr><td>Adding Tags</td><td>❎</td><td>☑️</td><td>❎</td><td>☑️</td></tr><tr><td>Adding Client</td><td>❎</td><td>☑️</td><td>❎</td><td>☑️</td></tr><tr><td>Adding Estimated Time</td><td>❎</td><td>☑️</td><td>❎</td><td>☑️</td></tr><tr><td>Adding Additional Field</td><td>❎</td><td>☑️</td><td>❎</td><td>☑️</td></tr><tr><td>Adding a Substep</td><td>☑️</td><td>☑️</td><td>❎</td><td>☑️</td></tr><tr><td>Adding a Progress Bar</td><td>☑️</td><td>☑️</td><td>❎</td><td>☑️</td></tr><tr><td>Making the Task Recurrent</td><td>❎</td><td>❎</td><td>❎</td><td>☑️</td></tr><tr><td>Making the Task Private</td><td>❎</td><td>☑️</td><td>❎</td><td>☑️</td></tr><tr><td>Creating in a Different Project from Main Task</td><td>❎</td><td>☑️</td><td>☑️</td><td>❎</td></tr><tr><td><mark style="color:blue;"><strong>Actions That Can Be Taken After Creating</strong></mark></td><td></td><td></td><td></td><td></td></tr><tr><td>Editing Actions Above</td><td>☑️</td><td>☑️</td><td>☑️</td><td>☑️</td></tr><tr><td>State Tracking (Pending, Active etc.)</td><td>❎</td><td>☑️</td><td>☑️</td><td>☑️</td></tr><tr><td>Archiving</td><td>❎</td><td>☑️</td><td>☑️</td><td>☑️</td></tr><tr><td>Getting &#x26; Adding Followers</td><td>❎</td><td>☑️</td><td>☑️</td><td>☑️</td></tr><tr><td>Deleting</td><td>☑️</td><td>☑️</td><td>☑️</td><td>☑️</td></tr><tr><td>Making it the Main Task</td><td>❎</td><td>☑️</td><td>☑️</td><td>❎</td></tr><tr><td>Creating an Activity Log</td><td>☑️</td><td>☑️</td><td>☑️</td><td>☑️</td></tr><tr><td>Posting</td><td>❎</td><td>☑️</td><td>☑️</td><td>☑️</td></tr><tr><td>Time Tracking</td><td>❎</td><td>☑️</td><td>☑️</td><td>☑️</td></tr><tr><td>Adding Reminders</td><td>❎</td><td>☑️</td><td>☑️</td><td>☑️</td></tr><tr><td>Changing the Project</td><td>❎</td><td>☑️</td><td>☑️</td><td>☑️</td></tr></tbody></table>

{% hint style="warning" %}
**NOTE:** Once Workflow stages are added to the tasks, they will be added to the task like subtasks. For this reason, they can be edited like tasks after creating it.
{% endhint %}

**Purposes of Use:**

<table data-view="cards"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Substep:</strong> For dividing tasks into small steps or to creating a checklist for the task. Unlike subtasks, no activity record is created under the subtask. You have to write down your activities related to the sub-step to the task.</td><td></td><td></td></tr><tr><td><strong>Subtask:</strong> For dividing large tasks into subtasks. Actions can be taken in subtasks as normal tasks. You can create a new subtask to a main task, or you can add an existing task as a subtask.</td><td></td><td></td></tr><tr><td><strong>Workflow:</strong> When creating workflow stages, only the name of the task, its description, which project it will be in, and its assignees can be selected. And when it is added to the task, it is created as a subtask in the main task. This is previously saved as a template and added to the tasks as a workflow. For this reason, this is for tasks that have similar processes, repeating stages. You can edit this information you added from the task form after the workflow is created as a task.</td><td></td><td></td></tr></tbody></table>

## Recurring Tasks

For recurring tasks, you can create a task once and make it repeat. When the time comes, a new copy of the original task will be created and notifications will be sent to assignees and followers of the task.

![Recurrence](/files/XySNXo9hr5ETNApqri1u)

### Repetition Period

Tasks can repeat on a daily, weekly, and monthly basis. For weekly recurring tasks, you can select more than one day of the week. The task repeats each week on selected days of the week.

### Repetition Condition

You have 3 options:

1. After the deadline of the current task: The new task is created regularly, even if the current task is not completed.
2. After the current task is completed: The new task is not created until the current task is completed. A task delay prevents the creation of new tasks on a regular basis.
3. When the start date of the current task is reached: A new task copy is created when the start date of the current task is reached.

### Repetition Limit

You have 3 options:

1. Always repeats: The task always repeats until you end it.
2. Repeats until a certain date: The task repeats until the date you select.
3. It repeats a given number of times: After repeating the task as many times as you have chosen, its repetition ends.

### Repeat Sub-Tasks

When this setting is enabled, new tasks are also created for all current subtasks when a task recurs.

<figure><img src="/files/dLZd4I0PHvE0QEuxnXOe" alt="" width="563"><figcaption><p>Recurs subtasks as well</p></figcaption></figure>

## Other Task Features

<figure><img src="/files/fJBusaJ4xQWwUUSzx20h" alt=""><figcaption></figcaption></figure>

### Private Task

If you want to make the task **private**, you can use **other** tab. When you make the task private, only the creator and assignees can see it.

### Adding Workflow to a Task

If you want to add a **workflow** to the task, you can select a workflow. However, it is only added to new tasks. For more detailed information, check the [Workflows](/task-and-project-management/workflows) page.

### Adding the Task to the Gantt Chart

When the Add to Gantt option is selected, the task is also added to the project’s Gantt Chart.

*After a task is created, you’ll be taken to the task details page, where you can view and manage all the settings you’ve configured for that task.*

## Bulk Task Creation / Importing Tasks

You can upload a list of tasks to Cubicl in bulk.&#x20;

<figure><img src="/files/CjnaVgJiHDjZ4t3QPyCE" alt="" width="297"><figcaption></figcaption></figure>

Before starting the bulk upload, it is recommended to pay attention to the following points:

* Instead of uploading all tasks into a single project, import the relevant tasks into their corresponding projects.
* Make sure that the stage names in the project and in the import file are written exactly the same.
* If tags are used in the task list, you need to create those tags in Cubicl beforehand.
* Ensure that the date and time formats in the Excel file match the format used in Cubicl.
* Before performing the full bulk upload, it is recommended to test with a small list of 4–5 tasks. This allows you to detect possible errors in advance and make the necessary corrections before uploading the entire task list more safely.

<figure><img src="/files/RTt5Qk50L2YNO0fASVbz" alt=""><figcaption></figcaption></figure>


# Task Details Page

To reach all info about a task.

This page opens when you create a new task or click on a task from the task list. It shows the details about the task as seen below. This screen consists of two columns. The left column shows **task name, assignees, task state, task description, files, steps, time tracker, subtasks, and activities**. The right column includes **client, start date and deadline, estimated duration, tags, recurrence, followers, priority, creator and creation time, reminders, worfklow tasks and additional fields.**

<figure><img src="/files/v003aXcUQhfEwuDQcoaK" alt=""><figcaption><p>Task Details Page</p></figcaption></figure>

<figure><img src="/files/8cM1B0iXQwBpE3pFpeXH" alt=""><figcaption><p>Task Details Page 2</p></figcaption></figure>

## Time Tracker

You can use the time tracker to record the time you spend on the task. You can get a report of the time you spent on tasks from the [Reports ](/task-and-project-management/projects/reports#time-tracking)page.

![Time Tracking on Task](/files/-Mb2QrNiLRJW97K3yYnz)

The time tracker is also visible on the top menu. When you click on the counter, you can also see the tasks you have tracked before.

<img src="/files/-Mb2R0L3BAZN0LUsLzeF" alt="Time Tracker" width="375">

## Actions in Task

The Actions button on a task provides access to the activities you can perform on that task.

<figure><img src="/files/JEnhqEdwVbQggBCRmIdZ" alt="" width="375"><figcaption></figcaption></figure>

### Copy, Archieve or Delete

**Deleting a Task:** You can delete tasks. If needed, deleted tasks can be restored by going to the [Project Setting Page> Actions](/task-and-project-management/projects/project-settings#actions-for-project-and-task).

**Copying and Duplicating a Task:** You can copy tasks. This is especially useful for tasks you'll need again later. You can save these as template tasks in a project and reuse them by copying and modifying them as needed.

**Archiving a Task:** You can archive tasks you no longer plan to work on. Archived tasks can be accessed and restored later if needed from [project's archieve](/task-and-project-management/projects/tasks-page#task-archive).

### Share with Client

Before sharing a task with a client, make sure to add the client when creating the task, or click Edit, add the client, and save.&#x20;

You can share a task with client as clicking **Actions > Share with client.**

Once shared, the client can track task activities through the Client Portal.&#x20;

If contacts within a client (such as individuals with email addresses like the General Manager or IT Team Leader under ACME company) are not invited to the Client Portal from the Actions menu on the Clients page, their information will not be visible when sharing the task. Once a contact is invited, a green check mark will appear next to their name, indicating they can access the task through their own portal. For more details, visit the [Client Portal](/crm/client-portal#clients-portal-account) page.

### Assign Parent Task

Using the **Actions in Task > Assign Parent Task** option, you can make this task a subtask of another task. In other words, you assign a parent task to this task.

<figure><img src="/files/RtqFI4cetRP2TwY2OAuj" alt=""><figcaption></figcaption></figure>

### Change Project

If the task is in the wrong project, opened by mistake, or needs to be moved, go to **Actions > Change Project** to update the task’s project and select its stage within that project.

### Add to Gantt

The created task is not automatically added to the Gantt. However, you can do this using the **Actions > Add to Gantt** option.

### Add a Form

Forms can be used to gather task-related information, create process workflows, or conduct internal surveys.

You can add a from to a task as clicking **Actions > Add a form**.

Before add a form to a task, learn details about how to create a form as visiting the [Forms](/task-and-project-management/forms) page.

### Downloading Files

You can download a file by clicking its name. To download all files in the task at once, go to **Actions > Download Files**.

### Export to Excel

You can export all task details — including both default and [additional fields](/task-and-project-management/projects/project-settings#adding-additional-fields-to-the-task-form) from the task form — in **Excel** format when you click the **Actions>** **Export Task**.

### Export to Google Calendar

You can export a task to your Google Calendar by selecting **Actions > Export to Google Calendar**. To do this, the task must have both a start date and a deadline, and you should be logged into your Google Calendar account. For more details on integrating your account with Cubicl, visit the [Integrations](/task-and-project-management/integrations#google-calendar) page.

### Custom Actions

Cubicl’s Custom Actions feature allows users to add personalized action menu options to task cards and task detail pages. This enables customized automations for selected tasks, making task management more efficient and improving the overall user experience. For more information, visit the [Custom Actions page](/task-and-project-management/custom-actions).

## Task Summary with Artificial Intelligence (AI)

AI feature in task details page can be used for summarizing tasks and answering questions related to tasks.

<figure><img src="/files/TpCYSHp1vjn0WFUiXtgY" alt="" width="375"><figcaption><p>AI button in a task page</p></figcaption></figure>

### Task Summary

The task name, description, step completion, state changes, and all activities are used to create the summary. The generated summary is displayed in a new window. Conversations regarding the summary can be continued within this window.

At least one activity must be present in the task. If there are no activities, the summary cannot be created.

<figure><img src="/files/IJSXNtKdpLEgzj79kyvU" alt=""><figcaption><p>Creating summary and getting answers with AI</p></figcaption></figure>

### Asking Questions

A blank version of the same window used for displaying the summary is opened. You can ask questions related to the task and receive answers.

If the question is not related to the task, a fixed message is shown. This message guides you to modify or elaborate on their question.

{% hint style="warning" %}
In both cases, the conversation is deleted once the window is closed.
{% endhint %}

{% hint style="warning" %}
Summarization is disabled for e-mail tasks.
{% endhint %}

### Give Consent to Artificial Intelligence (AI)

Before using this feature, you must grant consent for your data to be processed by the external AI service.

<figure><img src="/files/zht28cLGZGRBH86Zguec" alt="" width="375"><figcaption><p>Warning for AI</p></figcaption></figure>

To revoke consent, you can delete your browser cookies. Follow these steps: In your browser, click the icon next to the Cubicl URL. Navigate to "Cookies and Site Data." Access the "Site Data on Device" section. Find the row labeled "cubicl.io" and click the trash bin icon to delete the data.

### Disabling AI Across the Organization

The AI feature can be disabled organization-wide. To do this:

Go to **Organization >** [**Organization Details**](https://cubicl.io/org/details) **> Active Features**. Disable the AI feature.

By following these steps, you can efficiently use or disable the AI feature as needed.

<figure><img src="/files/ySK8R6lFTOOTbvg77Yoo" alt=""><figcaption><p>Active features</p></figcaption></figure>

## Checking Steps

As you complete the steps on the task one by one, tick the box next to it.

![Task Steps](/files/-Mb2RFd0SJBN_rXlsvMd)

## Subtasks

You can add an existing task as a subtask, create a new subtask, or create a subtask by copying an existing task.

<figure><img src="/files/RHPX8LT3DpSW1c4kehu3" alt="" width="563"><figcaption></figcaption></figure>

They may be more extensive than steps, or they may be less related to the main task than steps. You can add subtasks to your subtasks. In the field task name field, task names are displayed up to a maximum of 4 levels. So in this field you can display the name of the 3 tasks above the subtask.

You can decide whether the changes you make to a main task should also be applied to its sub-tasks from the Sub-task Operation on the Project’s Settings > Details page. For more information, [please visit the page](/task-and-project-management/projects/project-settings#subtask-operations).

![Subtasks](/files/-Mb2ROcJ-Wt7MgRlCTIZ)

## Assign Me Button

If you are not an assignee, the "Assign Me" button is shown on the detail page of the tasks that you are not authorized to update. By clicking on this button, you can add yourself to the task as an assignee.

<figure><img src="/files/Rnz5zPhYNW0zJOnrRQrG" alt="" width="413"><figcaption><p>Assign Me Button</p></figcaption></figure>

## Follow or Unfollow

The person who creates the task and assignees receive notifications about the task. If you do not want to receive notifications, you must unfollow the task.

<img src="/files/-Mb2RW4a9HtHQ1gPpgve" alt="Folllowers" width="188">

## Reminders

Regardless of the task dates, you can add reminders for yourself or for all followers of a task.

You can access all your past notifications at any time.

<figure><img src="/files/6yIBtXeFbROmysBr9uhh" alt="" width="262"><figcaption></figcaption></figure>

Your notifications are synchronized across all open Cubicl web pages, the mobile app, and, if enabled, as browser notifications on your desktop.

The reminder notification modal appears as follows.

<figure><img src="/files/DDoVIzIt29z7fcl9K0rE" alt="" width="375"><figcaption><p>A reminder pop up</p></figcaption></figure>

Each reminder provides you with the following options:

* **Close:** Dismiss the reminder.
* **Go to Task:** Navigate directly to the related task.
* **Snooze:** Postpone the reminder for a set duration. Snooze durations include 5, 10, or 30 minutes, as well as 1 or 4 hours.

<figure><img src="/files/h5GhTXhc6OAIoev8DNIU" alt="" width="371"><figcaption><p>Snooze reminder</p></figcaption></figure>

## Task State

Default task states in Cubicl are pending, active, and completed. To customize the states of a project, you must edit the [Project Settings](/task-and-project-management/projects/project-settings#task-states).

![Task States](/files/05W9IdMAR43PZ4xAhTLP)

## Activity Logs

All changes regarding the task are presented here. From here you can review the history of the task and share information about the task.

![Activities](/files/-Mb2S5rBKidDdUjPNOmg)

To see the changes on the task, mouse over the task update log and click on the link that becomes visible. Deleted ones on the task are shown in red and added ones are shown in green.

## Posting

You can post to take notes for activities, communicate with your teammates over the task, and share the current state of the task.

<figure><img src="/files/FwQAKO6RLCSA7W5QJRRL" alt="" width="563"><figcaption></figcaption></figure>

You can edit your posts on tasks within the first 5 minutes. With editing feature:

* You can update the comments you have written in the posts,
* You can share or delete files,
* You can reply to posts or remove your replies from them,
* You can tag teammates in posts.

<figure><img src="/files/3Ld7obGMLcEMDur8TJey" alt=""><figcaption><p>Editing Posts</p></figcaption></figure>

Click the three dots icon next to the post you want to edit. Click on the **Edit** button and after making the changes, click the **Update** button.After your post has been edited, a notice will be displayed that the post has been edited. When you hover your mouse over this notice, you can view the edited parts of the post.

You can delete the posts you want to delete by selecting the Delete option.

<figure><img src="/files/O4jUgtzUoDL1fI43ihat" alt=""><figcaption><p>Last Edit Changes</p></figcaption></figure>

{% hint style="warning" %}
**NOTE:** You can't edit the posts made visible for the clients in support requests.
{% endhint %}

{% hint style="warning" %}
**NOTE:** You can't edit e-mails you send in e-mail tasks.
{% endhint %}

{% hint style="warning" %}
**NOTE:** You can only edit your own posts.
{% endhint %}

### Attaching a File to a Post

You can attach files to your post in activity logs.

Files added to activities in tasks are shown in the files area on the above as well as in activities. When the activity log is deleted, the file is also deleted.

<img src="/files/-Mb2SbL9W7VpxqoEqXGH" alt="Files of a Task" width="375">

### Tagging a User in Posts

Tasks may have more than one assignee or you may need to communicate with someone who is not a follower of the task. In such cases, you can tag people by putting an "@" sign in front of the user's name. She will be notified.

{% hint style="warning" %}
**NOTE:** If the task is a private task or the user you tagged does not have permission in that project, even if you tag the person, she cannot see the task content.
{% endhint %}

![Sending Files and Name Tagging](/files/-Mb2Tpq473EsH33k_qUy)

### Tagging Everyone in Tasks Activity&#x20;

To tag people, simply put a '#' sign in front of their name. You can tag assignees using #Assignees or project members using #ProjectName.

<figure><img src="/files/HtiZxvq8U7SdTR4APx6X" alt=""><figcaption><p>Tag Everyone</p></figcaption></figure>

{% hint style="warning" %}
**NOTE:** In private tasks, only tags for assignees and the "Assignees" tag are shown. In Private projects, only tags for project members and the "assignees" are shown.
{% endhint %}

### Reacting to Posts with Emojis

You can react to comments within task activities using emojis. The system clearly displays who left each specific emoji.

When a comment receives an emoji reaction, a notification is sent to the owner of that comment.

<figure><img src="/files/8zZujg40zO2huLO7BS4i" alt=""><figcaption></figcaption></figure>

## Editing a Task

You can update all the details of a previously saved task by clicking **Edit**. You can also make certain changes directly on the task page without opening the edit screen. Every update you make is recorded in the task’s activity log.

### Live Update Examples

You can **add an assignee** to a task from the task details page. Clicking on the "+" button in the assignees field opens the selection menu. The users you select from the selection menu will be added to the relevant task as an assignee. If you want to delete the assignee, you can click on the small red cross button on the top right of their profile photo.

<figure><img src="/files/glwW9yvr5TNMb8nB43m1" alt="" width="461"><figcaption><p>Edit Assignees</p></figcaption></figure>

You can **add clients** to tasks or **delete existing clients** by clicking the pencil icon in the client field. When you click on any place outside the menu, your changes will be saved.

<figure><img src="/files/OkDDcH8XhWO6lDZDDifR" alt=""><figcaption><p>Edit Clients</p></figcaption></figure>

You can **edit** or **delete dates** by clicking on the dates. When you click on a place other than calendar field, the selections you make will be saved.

{% hint style="warning" %}
**NOTE:** To edit start dates, the task must have a start date that added before.
{% endhint %}

<figure><img src="/files/YI7JD4SxqPZCh1cULvkA" alt="" width="281"><figcaption><p>Edit Dates</p></figcaption></figure>

You can **change the priority** of tasks. You can select the new task priority by clicking on the priority of the task. The selections you make will be automatically saved.

<figure><img src="/files/RUroIiqoToUgU2GprR6r" alt="" width="201"><figcaption><p>Edit Priority</p></figcaption></figure>

You can delete the files you have added. However, files added as activities cannot be deleted immediately.

<figure><img src="/files/aZ9vj2he1Ua5NIvERUYV" alt="" width="375"><figcaption><p>Edit files</p></figcaption></figure>

You can add or remove followers from the task.

<figure><img src="/files/ei1mY2xR0wtL1zmDAqnP" alt="" width="233"><figcaption><p>Edit followers</p></figcaption></figure>


# Chat

To communicate with the team.

If you want to view your individual and team chats in a large size, you can click on the **Chat** button on the navigation menu; if you want to view them as notifications, you can click on the **Messages** button on the above; or if you would like to view them as tiny boxes, you can find them through the right menu.

<figure><img src="/files/YlzaXLuZpbxDws3EJaBG" alt=""><figcaption><p>Messages in Cubicl</p></figcaption></figure>

## Chat with a User

You can directly chat with users who have signed up Cubicl. You cannot chat with those who are not invited to the organization account.

## Project Chat

In Cubicl, chat groups are created for teams, departments, groups, and projects. When a project is created, the project chat also is created automatically.

## Creating a Chat Group

If you want to create a chat group with people outside the project team in Cubicl, click the three-dot icon next to the Messages.

<figure><img src="/files/kgkUnWHVZe2ZfjKPDDNU" alt="" width="256"><figcaption></figcaption></figure>

Click Create **New Chat Group** to set the group name and choose its members.

<img src="/files/-MWdsQ7T4RFNly8AxDyA" alt="Chat Group" width="375">

### Editing a Chat Group

To edit a chat group you’ve created, click the three dots next to the group’s name and select **Details**. On the page that opens, click **Edit Mode**. You can change the group name, delete shared media, add new members, or click the + button to invite more participants.

<figure><img src="/files/A49TKRXs5JTNh7PrB2Gv" alt="" width="563"><figcaption><p>Edit mode of chat</p></figcaption></figure>

## Archive Chat

Chat threats cannot be deleted. However, you can archive both individual and group chats, and bring them back from the archive if needed.

To archive a chat, open the chat you want to archive. Then click the three-dot icon at the top of the chat and select **Archive**.

<figure><img src="/files/w7KWmXEosMuW7mtUUQWl" alt="" width="308"><figcaption><p>Archieve chat</p></figcaption></figure>

When you want to restore the chat thread from the archive or access the chat thread, you can access the chat thread by selecting **Go to Archive** from three dot near the Messages.

![Restore the Chat](/files/zK8T8fQ81rHfnx81SNLR)

## Hiding Conversations/ Chats

If there is no active messaging in a project’s chat group, or if team members you aren't communicating with are appearing in your message list and you prefer a cleaner messaging area, you can click the three-dot icon next to the Messages menu and activate the Hide Chats without Messages option.

<figure><img src="/files/4wAINw2ES8CHd8Tyjxvf" alt="" width="194"><figcaption></figcaption></figure>

## Features

### Chat Members

You can see the chat members listed under the group chat name.

<figure><img src="/files/23ZP6Hhtt6bkZiVfLGlE" alt="" width="305"><figcaption></figcaption></figure>

### Reply

You can select the specific message that you want to reply by clicking the arrow in the message box.

### Minimize the Chat Window

You can minimize the chat window by clicking on the name of the person or chat group. The chat will be seen with an icon of the person or the project.

<img src="/files/-Mb2V0n5e2sUqqw0ZCM_" alt="Minimizing and Files Sharing" width="375">

### “Typing…” Indicator

In both the message list and the message input area, you’ll see a “typing…” indicator whenever someone is actively writing a message.

<figure><img src="/files/7gZWXNpWkjmwOkT95W0S" alt="" width="257"><figcaption></figcaption></figure>

### Chat Media

You can share files and images through Messages, regardless of file type or extension.

To view all shared media, click the three-dot icon next to the chat thread and select **Details**.

<figure><img src="/files/IaPzqx2mssDx8beKS3Rq" alt="" width="314"><figcaption></figcaption></figure>

There, you’ll find access to all files shared in the chat.

<figure><img src="/files/4DYaYuxLn87SYs74kYuZ" alt="" width="563"><figcaption><p>Chat Media</p></figcaption></figure>

### Message Pinning

You can pin important messages and/or announcements to the top of the chatbox so that the message will be seen by everyone.

<img src="/files/-MTkDcTDdDr_EOkleD9B" alt="Pinned Message" width="375">

### Search in Messages

You can search keywords in messages to find important messages or files quickly. When you click the message you are searched at the openned window near the message window, you can see previous and next messages of it.

<figure><img src="/files/DnQj6kp2OygYmVMxLgYs" alt="" width="563"><figcaption></figcaption></figure>

### Message Reactions / Vote

Messages can be rated with “agree” or “disagree.” To react to a message or view existing reactions, simply hover your mouse over it. If you’d like to see who reacted, click the “Reactions” section to view the list of users.

<figure><img src="/files/8sQvICgCYx2Ev4FOiPjN" alt="" width="307"><figcaption></figcaption></figure>

### Tagging People in Messages

In group chat, you can tag specific people using @ or notify everyone using #. Tagged users will receive an in-app notification.

<figure><img src="/files/523yE0eRR8omGEPfEc3l" alt="" width="311"><figcaption></figcaption></figure>

### Edit Messages

You can edit messages within the first 5 minutes after sending. After selecting the Edit option of the message, you can save the changes. A notice will be displayed that the message has been edited.

<figure><img src="/files/4S8rNWwxjeeN2q8Y2kVy" alt="" width="266"><figcaption><p>Edit Messages</p></figcaption></figure>

### Delete Message

You can delete messages by clicking the arrow next to the message you sent.

![Delete Message](/files/fDgccIzD6fAEDOG0K5Id)


# E-mail to Task

You can convert incoming emails from your email accounts into tasks in Cubicl, or start an email conversation by sending a task activity as an email. All incoming and outgoing emails can be tracked directly within Cubicl. For this, visit [the Email Boxes page](https://cubicl.io/email).&#x20;

## Activate Email Boxes

To use this feature at Cubicl, add **Email Boxes** to Navigation Menu. For this click **Organization > Organization Details > Active Pages**. Only the account manager can do it.

![Active Pages](/files/-Mfccq4HQjTidux5kWeY)

## Connecting an E-mail Account

You can connect your e-mail account at Email Boxes page and view connected accounts.

![E-mail Boxes](/files/-MfceESG6JaLayyxH0xO)

Click **Add Email Account** and choose one of them: IMAP/SMTP Google, Microsoft and Exhange Server (Outlook) and enter the e-mail info.

<img src="/files/WXWDF8QV0scjGwFJxTXW" alt="Adding New E-mail Account" width="563">

The Settings form will open. Here, you can configure the email inbox name, choose which project incoming emails will be converted into tasks for, specify which users the tasks will be assigned to, define who is allowed to send emails, and set the email signature that will be included in replies sent from Cubicl.

<figure><img src="/files/KGt61wMAkKfQGCPuDHqI" alt="" width="563"><figcaption></figcaption></figure>

You can **edit** and **delete** previously connected e-mails or **change the password** of them.

<img src="/files/-MfcfA8EHl4p1OImYBj-" alt="Settings" width="375">

### E-mail Service Provider Settings

To connect your e-mail account to Cubicl, you need to give necessary permissions. Permission settings may be different for each email service provider. We add some email service provider settings below. If you cannot connect your email with this info, you can search on the internet to find another solution or contact us via **<support@cubicl.io>**.

#### **Outlook**

For SMTP Settings Host: smtp-mail.outlook.com Port: 587 Encryption: TLS

#### **YandexMail**

Yandex Account> Password and authorization> App passwords> Create a new password> Mail> Name of password for access to Mail. After this a password will be created. Copy that and use it while adding the mail to Cubicl.

#### Gmail Account

To receive emails sent to your Gmail account as tasks, make the following settings:

* Log in to your Gmail account and go to the "[Forwarding and POP/IMAP](https://mail.google.com/mail/u/0/#settings/fwdandpop)" tab.
* In the "Forwarding" section on this tab, click on the "Add a forwarding address" button. In the new window that opens, you can enter the address “<email-to-task@cubicl.io>” to which e-mails will be forwarded to our system, and click the Next button. You can confirm the process from the new window.

<figure><img src="/files/3nPmu9SQQMC564PhJg6S" alt=""><figcaption><p>Adding a Forwarding Address</p></figcaption></figure>

* Your e-mail forwarding request will be sent to us for approval and approved by us within a few minutes. After a few minutes, you can check whether the redirect is approved by refreshing the redirect settings page. If the forwarding process is still not approved after a few minutes, please contact us at **<support@cubicl.io>**.
* After we approve your forwarding request, check the boxes for "Forward a copy of the incoming mail to <email-to-task@cubicl.io>" and "keep Gmail's copy in the Inbox" option. This will also keep a copy of the forwarded emails in your Gmail account. Finally, you can save your settings by clicking the "Save Changes" button at the bottom of the page.

<figure><img src="/files/7YTtMqwL7JyfcUFxabVu" alt=""><figcaption></figcaption></figure>

* After saving the settings, a notification text will appear at the top of the page that your emails have been forwarded. To ensure that your e-mails are received accurately and completely by our system, *please do not change your forwarding settings.*

## Email Box Settings

Click on the three dots icon next to the email box to adjust email settings.

<figure><img src="/files/9ALlmphHWfDnnWabWIPr" alt="" width="348"><figcaption><p>Settings</p></figcaption></figure>

<figure><img src="/files/YpzFdpkWM45xx9W1Ttc5" alt="" width="563"><figcaption><p>Email Box Settings</p></figcaption></figure>

### Email Box Name&#x20;

You can give the e-mail box a different name than the e-mail, such as "Recruitment", "Support Mails". To do this, click on **Settings** from the three dots next to the email.

### Mark Emails as Read&#x20;

When an email created as a task in Cubicl, it is also marked as read in your email box. If this setting is turned off, emails coming in the email box will appear as unread. To do this, click on **Settings** from the three dots next to the email.

### Project of Email Tasks&#x20;

Emails are created as tasks under the selected project. The project is selected while connecting email. However, this project can be changed later. To do this, click on **Settings** from the three dots next to the email.

### Assignees of Email Tasks

For email tasks, an assignee must be selected. These assignees will receive email notifications.

To select assignees, click on the three dots next to the email and choose the **Settings** option.

**Assign Client Managers as Assignees:**&#x20;

You can assign managers for each customer individually from the Clients > Client Details page. These client managers are assigned as assignees for tasks from incoming emails and portal requests. Enabling this option in the mailbox ensures that client managers, if assigned to the client, will be assigned as the assignees for the tasks instead of the mailbox assignees. If this option is not enabled or no manager is assigned to the client, the mailbox assignees will be assigned to the task.

### Email Signature&#x20;

You can add the email signature as text or HTML. When you reply to an email from Cubicl, the signature is visible to the recipient. To do this, click on **Settings** from the three dots next to the email.

### Sender Name&#x20;

If the sender name is entered in the email box, the sender name appears when an email is sent. If the sender name is not entered, the name of the person sending the e-mail will be shown to the recipient in the e-mail. To do this, click on **Settings** from the three dots next to the email.

### Password Change&#x20;

If the password of the e-mail box has changed, you must also change the password from the E-mail boxes page. Otherwise, a connection error occurs and emails will not be created as tasks. To do this, click on the three dots icon next to the email box.

### Black List for Emails and Words

You can prevent emails containing certain words from creating a task in Cubicl. To use this feature, open the menu of an email on the Email boxes page and click on the Black List option. The **Black List** page has two tabs.&#x20;

On the **Emails** tab, the email addresses that you have blocked are listed.&#x20;

On the **Words** tab, the words that you have blocked are listed. To block a new word/phrase, type a word, click the **Add+** button and save it.

The words you have added will be searched in e-mails regardless of uppercase or lowercase letters. From now on, no task will be created in Cubicl for e-mails containing these words in their subject or content. To delete the words you have blocked, you can click the **Delete** button that appears when you hover your mouse over the word.

<figure><img src="/files/oUYDrmXt7GTCmPjYUXK7" alt=""><figcaption><p>Black List</p></figcaption></figure>

## Mailing via Cubicl

When an e-mail drops your inbox, a **task** is created at Cubicl for it. You get a **notification**.

![Email Notification](/files/-MfchISUtlL8NNPs8JuE)

The **Subject** line of e-mail is the name of the task. **Incoming Email** button shows under the name of the task to seperate incoming mails from created tasks at the Cubicl by you or your teammates. At the activities, name and e-mail of the **sender**, **receivers**, e-mail **context** and **file/s** are shown. The sender is added as a **Client** automatically.

![Details of an Incoming Mail](/files/-MiuVEfVlItzgogRjZx4)

There are two buttons at the bottom of the incoming mails. If the content of the e-mail is higher than the maximum height of the activity box, **Expand Content** button is shown, you can view the entire content by clicking this button.

**Show Quote** button is displayed in the quoted e-mail contents. By clicking this button, you can view both the quote and the entire content.

<figure><img src="/files/0cTBTVmSCaMO1IPqbAg8" alt=""><figcaption><p>Show Quote Button</p></figcaption></figure>

You can send the selected task activity as an email to the recipient.

![Task Activities](/files/-Mius6LIsUUh-h2kL-3J)

### Starting a New Email Conversation from a Task

You can start a brand-new email conversation directly from any task without waiting for an incoming email.

To do this, click the Actions button next to the task activity you created and select Send As Email.

<figure><img src="/files/mv1RwISH1xl9Rix6h6l4" alt="" width="563"><figcaption></figcaption></figure>

Enter the email details, including the subject, sender, recipient(s), and CC, then send your email.

<figure><img src="/files/1o7ju6IjUtRTXXKahSec" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="info" %}
**Automatic Recipient Matching:** If the task is associated with a client (and the task is not an email or support request task), the **Recipient** field is automatically populated with the client's saved contact information.

**Automatic Client Creation:** If no client is assigned to the task, Cubicl automatically creates a new client record using the information entered for the **first recipient** when you send the email.
{% endhint %}

### Ignore Sender

You can ignore senders by selecting the "Ignore Sender" option from the action menu of the task activity. You can also view and edit ignored senders from the action menu of the relevant e-mail box.

<figure><img src="/files/SzhEmKrb3isKTyRUxjis" alt=""><figcaption><p>Ignore Sender</p></figcaption></figure>

### Editing the Sender and Receiver of an E-Mail

Before sending an e-mail, you can edit sender and To and CC. For this, before clicking send the e-mail, click on the "Edit" button that appears when you hover over the e-mail you write. The e-mail accounts that appear in the From section are only e-mails that you have integrated into Cubicl. You can change the e-mail account (From) and recipients (TO and CC fields) to which the mail will be sent. After making the changes, you can send the e-mail by clicking "Send e-mail".

![E-mail: From, To and CC](/files/mHwVbBIeu8WC2uc9sBzO)

You can reply to the incoming e-mails from the activities of the task. Your reply is first shown as **Not Sent** at the corner of your comment. When you hover the mouse over that, the **Send as an e-mail** button emerges. When you click it, the e-mail will be sent.

![Sent E-mail](/files/-MiuzNqcfSc7GJ6Ol0PP)

In the sent e-mail, the name of the assignee who created the activity log in the task will be shown. And added e-mail signature will be at the end of the e-mail.

![An Email Sent via Cubicl](/files/-Miuzq7eeGbnRUzJ7bsc)

* Emails sent via Cubicl are also added to the Sent box of the email box.&#x20;
* Emails created to tasks in Cubicl are marked as read in the email box at your email provider.
* When you connect your email account to Cubicl, replies to old emails are added to the existing task.
* A new task is created  for every meeting invitation you receive.

## Disconnect the E-mail

If you want to disconnect your e-mail account from Cubicl, you can delete it by clicking three dots at the connected e-mail card on E-mail Boxes page. To delete or update the email box, you must either have linked the e-mail yourself or have permission on the page.

<img src="/files/-Mfckk3Amd7bNz7uOnNd" alt="Delete Email" width="375">

You cannot reply to mails via Cubicl after deleting the e-mail account. If you try to send a comment as an e-mail via Cubicl, an error warning will pop up.

![E-mail Box Error](/files/-Miv-UI_6_Sa-bpIZSpy)

## Usage Examples

Here, you can find some examples how E-mail Boxes could be used for teams and departments.

### Support and Info E-mails

Connect your info, contact or support email accounts. Support team receives those mails as a task and take action easily.

You can answers e-mails from your clients for their requests, or technical problems, or product that they buy. Support team can assign the task to another department, if it is necessary.

![Example for Support Team](/files/-MiuYKd0KKRV8kAcRaYg)

So, you take action easily and answer emails quickly. Your customers will be pleased with your service.

### For Departments

Connect the e-mail addresses of your company such as <humanresources@companyname.com>, which are used for departments such as human resources, accounting, sales. Imcoming mails related with those department drop related projects in Cubicl.

E-mail senders may not always send emails to the right email accounts. In such cases, you can drag and drop the task to the relevant project. As can be seen in the example below, "Application for React Native Developer" mail is sent to Customer Services department. However, the task is related with Human Resources department, so we drag and drop the task to that team.

![Change the Project of Incoming Mail](/files/-MiuaGNcYKEPtthFjcDA)

### Human Resources

Connect your career and human resources email accounts to Cubicl. Manage job applications in Cubicl. You can create projects such as Recruitment, Career, Job Applications etc. for incoming mails. In the project where CVs come, you can create task states for interview process. To customize task states in the project, visit the[ Project Settings page](/task-and-project-management/projects/project-settings#task-states).

![Task States for HR Team](/files/-MiuaBGstJbKH9ZfkQsM)

You can talk about the applicant with your teammates on task. The activities under the task will not be shown to the email sender unless you click the "send as a email."

Instead of reaching the applicant by phone call or email, you can contact her via Cubicl and follow activities on the task.

![Task Activities](/files/-Mius6LIsUUh-h2kL-3J)

You do not have to follow all recruitment process under one task. For example, if pre-interview or team meetings are conducted by different assignees, you can add sub-steps or sub-tasks under the task.

![Example Sub-Task](/files/-MiuvPRD-qnqJeVbL4AY)

You can manage all recruitment process.

![Change the Task States](/files/-Miuvb1OPL3xGy5Ps8AV)

### Internal Requests

Follow up on request from different units, departments or offices of your company. Cubicl is a team communication and task management application for companies, but you do not have to add all departments or employees to your Cubicl account. For short-term tasks, an employee or a deparment can reach you via e-mail and you can manage their requests via Cubicl.

![Internal Mailing](/files/-MiuyNMUXFs11baUFBk-)

## Adding Emails with Meeting Links as Tasks

You can create tasks in Cubicl from meeting invitations or calendar events sent to you by connecting your personal or work email accounts at **Profile page > Email Box Settings** tab. Cubicl shows you a notification when you receive an email with a meeting invitation or calendar attachment. From this notification, you can create a task with one click on Cubicl. Emails with a meeting invitation/calendar event and emails with a meeting link for Zoom, Skype, Microsoft Teams and Google Meet are defined as meeting/event emails. For other e-mails, no action is taken.

![From Meeting Link to Task](/files/kVgKrJTsvBLspYcNWBMM)

You can add as many e-mail as you like using your profile page.&#x20;

<figure><img src="/files/zJVoZBvSrHxpw7myFoOw" alt=""><figcaption><p>Added e-mail account</p></figcaption></figure>

Cubicl sends you a notification when you receive an e-mail with a meeting invitation/calendar event.&#x20;

<figure><img src="/files/WdXzPLeoNVOYv3PskMjn" alt=""><figcaption><p>Meeting Notification</p></figcaption></figure>

You can create a task with only one click on this notification and add the invitation to any project you choose. You can set a time and a date, assign users to these tasks.

<figure><img src="/files/il2rgc64paXW3y2pNOT2" alt=""><figcaption><p>Converting an Event Invitation to a Task</p></figcaption></figure>


# Workflows

Visit the [Workflows page](https://cubicl.io/workflows) to create workflows.

## What is Workflow?

A workflow consists of a sequence of tasks. The workflow feature lets you create custom workflows. It prevents you from re-creating interconnected and continuous tasks, so saves your time.

For example, the following image shows a workflow. A workflow named "Sale Process" has been created. Later, stages related to each other are added. The names of these stages were "Sale", "Prepare a Contract", "Assembly and Installation" and "Invoice", respectively. Each stage was created under the related project and with related assignees.

<figure><img src="/files/FWuG4qInQWyNBNGjL0ID" alt=""><figcaption></figcaption></figure>

### How to Create a Workflow?

You can access the workflows you have created on the **Workflows** page.

To add a new workflow, enter a title in the **New Workflow Name** field and click the **Add** button. Then, you can add **stages** to the workflow. Stages are the name of the tasks in the workflow.

### How to Add a New Stage?

Click the **New Stage** button on the Workflow page. You will see a form like this:

<img src="/files/xPZLl4i3MdQalx3uYNOL" alt="Add Workflow Form" width="563">

From here, add a name, description, project and assignees to the stage. Projects with the Completed status are listed in the project list. When the stage is brought to Completed status or any status refer to Completed, the next task in the workflow will be created automatically.

You can edit or delete the stage you created. To do this, use the three dots on the stage card:

![Edit Workflow](/files/-Mb2W0hPOecztaiW4X1F)

### Delete Workflow

To delete the workflow, you can press the cross button next to the workflow.

{% hint style="warning" %}
**NOTE:** When you press the cross button, the tasks in the workflow **are not deleted**, only the workflow is deleted which means they will not be in flow anymore.
{% endhint %}

### Adding a Workflow to a Task

To add a workflow to a task, use the **other** tab in **create task form**. If the user is not authorized to view the workflows, they cannot add workflows to tasks.

![Adding a Workflow](/files/-Mb2fwki_ebchIaGkpIF)

Stages in the workflow are created under the main task like sub-tasks. After you complete a stage, the next stage occurs.

![Workflow on a Task](/files/-Mb73rJykZbHnj0SGRp-)


# Automation

{% hint style="info" %}
If you need help setting up or customizing your automations, our support team is ready to assist you. Contact us at [support@monkedo.com](mailto:support@monkedo.com?subject=Automation%20Request) for expert guidance and support.
{% endhint %}

Automation within Cubicl is designed to streamline task management and reduce manual intervention, ensuring greater efficiency and accuracy. Cubicl offers several automation features that significantly enhance user experience:

* **Recurring Tasks**: Cubicl automatically generates new tasks at set intervals (daily, weekly, monthly) based on predefined recurrence rules, ensuring tasks are consistently tracked and completed on time.
* **Workflow Creation**: Users can create workflows with multiple steps, where the first step becomes a subtask of the main task. As the main task is completed, the next step in the workflow is triggered, automating the entire process.
* **Email to Task**: Incoming emails are automatically converted into tasks, saving time by directly adding important emails (e.g., client requests) to the task list with their content used as the task description.
* **Automatic Task Status Updates:** For support tickets and email-based tasks, Cubicl can automatically update the task status based on activity. For example, when a new task is created, or when a message is added to a completed or archived task, the task’s status can be updated automatically. This helps ensure that important client activity doesn’t get overlooked.
* **Archiving**: Completed tasks are automatically archived after one month of inactivity, keeping the task list organized while remaining accessible for future reference.
* **Task Dates**: Cubicl automatically sets task start and end times based on standard working hours (e.g., 09:00 AM to 06:00 PM), ensuring proper time-blocking without manual input.
* **Gantt Chart Suggestions**: If a team member's time-off is added, Cubicl automatically suggests task date adjustments on the Gantt chart to accommodate their absence.

These automation features significantly reduce the need for manual input and improve workflow efficiency. Cubicl handles routine tasks automatically, allowing teams to focus on more strategic and value-added activities.

## Monkedo No-Code Automation Tool

For users with more complex automation needs, [**Monkedo**](https://monkedo.com/) offers even greater functionality, providing advanced automation capabilities that can be tailored to specific business requirements.

{% embed url="<https://youtu.be/lbDRLd_zI8c?si=rIXHvfkG7vpF7DTg>" %}
Monkedo No-Code Automation Tool
{% endembed %}

Monkedo is an advanced [no-code automation platform](https://monkedo.com/) that empowers users to create workflows effortlessly without the need to write code. Through its intuitive drag-and-drop interface, Monkedo enables you to automate both personal and business processes, while offering seamless integration with [over 400 apps](https://monkedo.com/integrations).

For Cubicl users, Monkedo credits are automatically allocated on a monthly basis according to the credit allowance specified in their subscription plan. By connecting your Monkedo account, you can fully utilize these credits to enhance your automation workflows.

### How to Connect Monkedo and Cubicl?

**Create a Monkedo Account:** Visit [monkedo.com](https://monkedo.com/) and sign up for a new account. If you already have an existing account, you can simply log in.

**Obtain Your Team ID:** After logging into **Monkedo**, navigate to the [**Profile > Team**](https://app.monkedo.com/profile/team) page, and copy the value labeled as **Team ID**.

<figure><img src="/files/B6tL8T70WTzv0WGBYOe4" alt=""><figcaption><p>Team ID in Monkedo</p></figcaption></figure>

**Connect Your Account:** Paste the copied Team ID into the designated input field in [**Organization > Organization Details**](https://cubicl.io/org/details) page in **Cubicl** and click the **Connect** button to link your Monkedo account to Cubicl.

<figure><img src="/files/xV1WAE0hCrrlafWiwxFo" alt=""><figcaption><p>Monkedo connection in Cubicl</p></figcaption></figure>

### Free Automation Credits for Cubicl Users

* **Starter Plan**: 100 Monkedo Credits per Cubicl user per month
* **Professional Plan**: 200 Monkedo Credits per Cubicl user per month
* **Enterprise Plan**: 300 Monkedo Credits per Cubicl user per month

For example, if you have enterprise plan with 5 users, you will have 1500 Monkedo credits that are renewed every month.

#### What Are Monkedo Credits?

Monkedo Credits are used to track automation actions within your workflows. Each time a component in an automation runs, it counts as one credit. Components can be categorized as either **paid** or **free**.

* **Paid Components**: Each execution of a paid component consumes 1 credit.
* **Free Components**: Free components do not consume automation actions unless there is abuse or error. In such cases, 1 credit will be deducted randomly for every 100 executions to maintain system integrity. You can see "Free" tag on them.
* **Dynamic Components:** Some components use 1 or more credits depending on the processing performed, and the credits used are calculated based on the result of the process. Additionally, the component uses credits during testing in the editor. You can see "Dynamic Pricing" tag on them.

By understanding the allocation and usage of Monkedo credits, you can effectively manage your automation tasks and ensure seamless integration with Cubicl.

### More Monkedo Automation Credits

If you require additional Monkedo Credits to enhance your automation workflows, you can easily upgrade to a higher subscription plan within Monkedo. Visit the [**Monkedo Pricing**](https://monkedo.com/pricing) page to explore available plans and select the one that best suits your needs. By subscribing to a new plan, you’ll receive a higher allocation of Monkedo Credits, allowing you to automate more tasks seamlessly and scale your integrations with Cubicl.

## Automation Scenarios and Ideas

With Monkedo, you can streamline your workflows by automating repetitive tasks, reducing the potential for human error, and freeing up valuable time for more meaningful and high-quality work. By minimizing manual interventions, Monkedo ensures that your processes are more efficient, accurate, and reliable.

Here are some examples of automations you can create with Monkedo to optimize your work:

#### **Automatically Move Tasks Between Task States Based on Due Date**:

When a task's due date is approaching, it can automatically move to a "Active" state in your Cubicl kanban. This ensures that high-priority tasks are highlighted without manual intervention.

#### Set Task Status Based on Completion of Related Subtasks

Once all subtasks under a main task are marked as complete, the main task’s state will automatically change to “Completed.” This ensures consistency and reduces the need for manual updates.

#### Sync Completed Tasks to Google Sheets

When a task is marked as "Completed" in Cubicl, the task’s information is automatically added to a Google Sheet for reporting purposes. This creates a live log of completed tasks, including task name, assignee, completion date, etc.

#### Send SMS Notifications via Twilio Based on Webform Submission

When a user fills out a contact form on your website (using Google Forms or another form tool), an automated action can trigger Twilio to send a confirmation SMS to the user with a thank you message or additional details.

#### Sync Email Subscribers to Mailchimp

When a user subscribes to your newsletter via a contact form on your website (using a tool like Typeform), their email address is automatically added to your Mailchimp list, ensuring your email marketing list is always up to date.


# Integrations

Click Others on the Navigation Menu> [Integration](https://cubicl.io/integrations) button for integrations.

<figure><img src="/files/vfcrTEXAhzNSIqZmWYSt" alt=""><figcaption><p>Integrations</p></figcaption></figure>

## Google Calendar

Google Calendar is a time management and calendar planning application developed by Google.

Google Calendar and Cubicl are integrated. If you want to transfer your events from Google Calendar to Cubicl and follow your tasks both in Cubicl and Google Calendar, you can share them by clicking the **Link** button on the Integration page.

You can also transfer a task in Cubicl to Google Calendar from the **settings button** on the task.

<img src="/files/-Mb2hckphYQ5drvgjYe4" alt="Export to Google Calendar" width="375">

## Google Drive

Google Drive is a service developed by Google that provides file backup on the cloud.

Google Drive and Cubicl are integrated. If you want to share your files in Google Drive with Cubicl, you can do it by clicking the **Link** button on the integrations page. After that, you will be able to share files from Google Drive to the project files page, tasks, and messages in Cubicl.

Files at Google Drive are updated immediately, thus, it is good to use for teams. You do not need to check which file is updated and which file is current; so, if you share your files in Google Drive with Cubicl, your tasks are done easily and quickly.

## E-mail Accounts

You can connect your e-mail addresses to Cubicl in two different ways and create tasks from incoming e-mails.

1. **Company Email Accounts:** Connect your company's general e-mail accounts such as info, support, sales, career to Cubicl. Tasks are created automatically from incoming e-mails and assigned to your team. Reply to e-mails in Cubicl. Visit Others> [Email Boxes](/task-and-project-management/e-mail-to-task#activate-email-boxes) to find more detailed info.
2. **Meeting Emails:** Receive notifications for meeting and event e-mails sent to your e-mail addresses (such as <name@mycompany.com> or <name@gmail.com>), view the detail, and quickly create a task and add it to your calendar. Visit Profile> [E-Mail Box Settings](/task-and-project-management/e-mail-to-task#adding-emails-with-meeting-links-as-tasks) for detailed information.

## Slack

Slack is a messaging application where you can share messages within the company.

Cubicl and Slack are integrated. If your team is using Slack, you can receive notifications on Slack for activities in Cubicl.

You'll be notified, when

* A task is created,
* A task is updated,
* A task is deleted,
* A support request is created by your client,
* Your client responds to the support request.

To integrate Slack app with Cubicl, go to the relevant [project's settings](/task-and-project-management/projects/project-settings#slack-integration) page.

## Dropbox

Dropbox is a cloud storage service. You can attach files from Dropbox to tasks. You can attach your files to Cubicl by selecting the Dropbox option from the Upload File button on the task form or task detail.

When you attach your files from Dropbox, these files are accessed from Dropbox. Only if the relevant data is a image or video, the thumbnail is saved to Cubicl.

## Trello

You can import your Trello cards to Cubicl.

Click the "Import Cards" button. Bring your cards by selecting the board. Choose the project where cards should be added as tasks in Cubicl and click the "Import" button. Thus, your Trello cards will be created as tasks in the relevant project.

## Webhook

Webhooks allows you to integrate Cubicl with other applications. Cubicl notifies the webhook URL you added each time the type of action you chose happens.

The URL you added will be notified,

* When client is created,&#x20;
* When client is deleted,&#x20;
* When task is created,&#x20;
* When task is updated,&#x20;
* When task is deleted,&#x20;
* When post is created in task,&#x20;
* When task state is changed,&#x20;
* When task is archived,&#x20;
* When the task is restored,
* When a notification is received,
* When a chat message is received.

<figure><img src="/files/xiiEIDZ1e0hi12sIOIBo" alt=""><figcaption><p>Webhook Settings</p></figcaption></figure>

You need to select the action type from the list, if you have selected an action type related to the tasks category, you must also select the project. Then you can copy and paste the webhook URL provided from the app or platform you are using into the URL field and save it. This will create a record of the webhook for the action type you selected, and Cubicl will notify this URL every time the action you select happens.

## Increase Integration Capacity with Monkedo

Monkedo is a powerful no-code automation platform designed to streamline workflows and boost productivity. Monkedo enables users to create automations between various apps without the need for coding expertise.&#x20;

By leveraging Monkedo, Cubicl users can significantly enhance their task management experience by integrating Cubicl with a wide range of applications. This integration capability allows for seamless data flow and automated actions, reducing manual effort and ensuring that all your tools work harmoniously together.

Some integration examples:

### Project Management Integration:

Automatically create tasks in Cubicl from new issues or updates in Jira. This ensures that your development and project management teams are always in sync, with all critical issues tracked and managed efficiently in both systems.&#x20;

### Lead Generation Integration:

When a new lead is captured in Snov.io, an associated task is automatically generated in Cubicl. This keeps your sales team on top of potential opportunities, ensuring timely follow-up and improved conversion rates.&#x20;

### Communication Integration:

Automatically create tasks in Cubicl from messages received in WhatsApp. Important communications can be tracked and managed as actionable tasks, ensuring no critical messages are overlooked.&#x20;

### Customer Relationship Management (CRM) Integration:

When a new deal is created or updated in Salesforce, an associated task is automatically generated in Cubicl. This ensures that your team stays on top of important sales activities and follow-ups without missing a beat.&#x20;

By integrating Cubicl with these and many other applications through Monkedo, you can create a unified and automated workflow that enhances productivity, reduces manual data entry, and ensures that your team stays organized and focused on what matters most.

**Monkedo provides support and credits for Cubicl users.**

{% embed url="<https://www.youtube.com/watch?v=lbDRLd_zI8c>" %}
What is Monkedo?
{% endembed %}


# Custom Actions

The Custom Actions feature in Cubicl allows users to add custom action menu options to task cards and task details pages. This enables users to perform customized actions on selected tasks, making workflows more efficient and improving the user experience.

## How Custom Actions Helps You?

With Custom Actions, you can:

* Export task data
* Synchronize tasks with other applications
* Import data or files
* Automate various processes with external tools like [Monkedo](https://monkedo.com/)

### Sample Use Cases

#### Performing an Action in Another Application

* **Closing a GitHub Issue:** Based on task details, the corresponding issue in GitHub can be automatically closed.
* **Sending Notifications:** A task completion email, SMS, or chat message can be sent to a customer. For instance, send a Slack or Microsoft Teams message with task updates.
* **Adding to Outlook Calendar:** A calendar event can be created for the task using Microsoft's Create Calendar Event component.
* **Transferring a task to another application:** Create a corresponding record in a CRM, calendar, or sales platform when a new task is added or updated. Sync task details with Asana, Trello, or Monday.com for cross-platform task management.

#### Retrieving Information from Another Application

* **Fetching Customer Data:** Customer information can be retrieved from a CRM and displayed within a task.
* **Accessing Contract Documents:** Contract documents from sales platforms can be pulled for quick access.
* **Generating Detailed Task Reports:** Create detailed reports including task progress, comments, and attachments. Reports can be automatically shared in PDF or Excel format via Google Drive, Dropbox, or email.

#### Downloading a File

* **Generating a Task Report:** Task-related data, including comments under task, can be converted into a PDF file and downloaded.

#### Opening a Browser Tab

* **Opening a Related Record in Another App:** If a task is linked to a record in another application (e.g., Salesforce), clicking the menu option will open the corresponding record in a new tab.

## How to Add a Custom Action?

Go to [**Organization > Organization Details**](https://cubicl.io/org/details) and find the **Custom Actions** section.

<figure><img src="/files/hmnAAwJAZzD2c7LCy95Z" alt=""><figcaption><p>Custom actions in Organization Details page</p></figcaption></figure>

Click **Add Action+** button and a pop-up window will appear with fields to configure your custom action.

<figure><img src="/files/60HNOTNvTtkS3aQQruJv" alt="" width="544"><figcaption><p>Create a custom action</p></figcaption></figure>

Fill in the required details:

#### **Name (Required)**

The text shown in the task actions menu. (Max 16 characters)

#### **Icon (Optional)**

The icon shown next to the action name in the menu. You can enter an emoji (🎉, 🚀, etc.), a symbol (+, -, etc.), or an icon URL.

#### **Action URL (Required)**

When the menu action is clicked, a POST request is sent to this URL with task and user details to trigger the desired action.

#### **Type (Required)**

Defines the type of action performed when the menu action is clicked. Action Types are:

* **Simple Action:** Performs the action and displays either a success or error message.
* **Download File:** Starts downloading the file returned from the Action URL.
* **Preview File:** Opens the file returned by the Action URL for preview. Supports PDF and image files; all other file types will be downloaded automatically.
* **Open Browser Tab:** Opens the URL returned by the Action URL in a new browser tab.

#### Form Fields (Optional):

Fields defined to obtain extra data from the user when using an action. The table becomes visible when the "add form fields" option is selected.

## How to Perform an Action in a Task?

Go to the task's details page and click the **Actions** button. Under **Custom Actions**, select the action you want to perform.

<figure><img src="/files/S969FKVdu40FAEuAky5S" alt="" width="563"><figcaption><p>A task's details page</p></figcaption></figure>

### A Custom Action Scenario

Custom actions are not automated processes applied to every task but predefined actions that you can use selectively to improve efficiency.

Imagine you receive a support request through the client portal. However, you are unable to review it immediately, or you have checked it but require additional time to make the necessary corrections. At the same time, you need to provide a quick response to the client.

Instead of manually writing a reply each time, you can use a **custom action**. Simply add the desired response as a custom action and select it when needed. To do this:

* Click on the **Actions** button within the task.

<figure><img src="/files/ZlApOwgmRaQmiIrG3Hpf" alt="" width="563"><figcaption><p>Bot Message action is selected.</p></figcaption></figure>

* Choose the predefined **custom action** you created earlier.
* The system will generate a predefined response, allowing you to send it instantly.

<figure><img src="/files/b8jtAQ3zCSpZmHmAs6a4" alt=""><figcaption><p>A custom action</p></figcaption></figure>

This way, you avoid repetitive typing and speed up your workflow.

## Processing Data

### Sending an HTTP Request

When a user triggers an action, the system sends an **HTTP POST** request to the "Action URL" specified in the settings. This request includes the following data in **JSON** format:

```json
{
    // User who clicked the action
    "user": User,
    // Task where the action was clicked
    "task": Task,
    // Defined form fields
    // For date type fields, time information in seconds is sent.
    "formValues": Record<string, string | number>
}
```

{% hint style="info" %}
You can access the data types here: [Task](https://docs.cubicl.io/api-integration/tasks#task) and [User](https://docs.cubicl.io/api-integration/users#users)
{% endhint %}

### Returning a Response

The system at the URL should return an **HTTP** response in **JSON** format after processing the incoming request. This response may vary depending on the type of action. Here are the responses that should be returned according to the types:

#### **Simple Action**

{% hint style="info" %}
If you don't want to display a custom message, you can return an empty response.
{% endhint %}

```json
{
    "message": "CUSTOM MESSAGE"
}
```

#### **Download File / Preview File**

```json
{
    "url": "FILE URL",
    "name": "FILE NAME"
}
```

#### **Open Browser Tab**

```json
{
    "url": "URL",
}
```

### Displaying an Error

If you want to display an error message when an error is returned from the Action URL, you should return a **JSON** data like the following. This data format is valid for all types:

```json
{
    "message": "ERROR MESSAGE"
}
```

## Need a Custom Solution?

If you need to perform specialized operations or display custom information on different Cubicl screens, our support team is happy to assist you. Feel free to [reach out to us](https://portal.cubicl.io/form)!


# Forms

To collect info for tasks and for surveys.

You can use [the Forms page](https://cubicl.io/forms/all) to collect information about tasks, create operation forms, or conduct internal surveys.

For this, you must first activate the form feature via the [organization page](/organization-and-user-settings/organization-settings#active-pages-on-the-navigation-menu).

![Organization Details](/files/-Mb2htAzsEqM9DibtP6g)

### Creating a Form

You can create new forms by clicking the **Add Form** button on the Forms page. While creating the form, it is possible to choose which fields will be in this form, their type (such as short text, long text, date, multiple options, etc.), their order, whether they are required or not. All forms you create appear on this page.

<figure><img src="/files/fOCXmKafSYYKmSt3i6rf" alt="" width="563"><figcaption><p>Create a form</p></figcaption></figure>

### Adding a Form to a Task

A previously created form can be added through the **actions button** on the task's details page. The assignees on the task can give more than one reply to the form. The replies by whom and when are recorded.

<img src="/files/MtGHlVIjYKijWV3PGGGp" alt="Add Form to the Task" width="355">

### Adding a Reply to the Form

Forms added to the task appear on the task's detail page with its name, creation date, and count of responses. From the settings button on to the form, you can create a response, view the responses, or delete the replies if you are authorized.

![](/files/-Mb2iz3pbT-VPUgoJGnP)

You can reply to the questions in the form by clicking on the form. Your reply will be recorded.

<img src="/files/-Mb7AIvMkB0KkY0_94G6" alt="Reply Form" width="563">

### Using Forms as Surveys

You can use the forms to conduct surveys within your team.

<img src="/files/-Mb2khBEnXdlZMQfwysm" alt="Survey Form" width="563">

### Form Permissions

* Users who are authorized to create forms in the organization can create forms.
* Authorized users and account manager can edit or delete forms.
* Forms can be added to a tasks by task creators and users who create and contribute permission.
* Anyone who views the form can fill the form.
* Answers on the form can be viewed by users with view permissions.
* Anyone can edit their own replies.
* Users who reply to the form, or create the task or have the authority to edit the task can delete the given replies.

## Saving and Printing Forms as PDF

The form creation, form editing, and form response viewing pages can be saved in PDF format or printed using the CTRL + P shortcut. This method allows you to quickly archive the current view of the screen or obtain a physical printout.

## Exporting Form Responses

Form responses can be exported in Excel format from two different locations:

* Via the Form card located in the task details.
* Via the detail screen of the relevant form on the Forms page.

By using the Export to Excel button available on both screens, form responses can be downloaded and used for reporting or analysis purposes.

<figure><img src="/files/7Xtw6yCdQ5vye0nl0GyB" alt=""><figcaption></figcaption></figure>


# Search Across

The search button in the navigation menu allows you to search through all your tasks in Cubicl.

To make a task search, click on the Search button in the navigation menu.&#x20;

If the search field is empty on the page that opens, your last viewed tasks will be listed here. Type your text in the search field with a minimum of 3 characters. Tasks with this text in the task name, description and post text will be listed in the search results. You can also view the tasks in the archive by clicking the Search in Archive tab.

You can open the task in the new tab by clicking on the name of the task or clicking on the Go to Task button that appears when you hover over the task with the mouse.

{% hint style="warning" %}
**NOTE:** There is a limit of 20 tasks for task name and description and 20 tasks for task activities in the search results. For this reason, a maximum of 40 tasks matching this text will be listed.
{% endhint %}

<figure><img src="/files/hrxQpl7pNBqXCPD9SyKP" alt=""><figcaption><p>Search Button</p></figcaption></figure>


# Clients

Save clients and manage tasks related to clients.

On [the Clients page](https://cubicl.io/clients), you can&#x20;

* add your company's clients,
* add tasks, deals, and files related to them,
* add notes for clients,
* view tasks and activities.

All clients of the organization are listed on the Client page. From this page, you can **add new clients** to your organization and view them. You can use the **search** button to search your clients with their name, contact name, phone number, or e-mail.

When you mouse-over the client, on the right side of the screen, you can see tasks, deals, and recent activities on the client. You can click on the client's name and go to the **client details page**.

You can **download** the client list in **Excel** format.&#x20;

![Clients Page](/files/-Mb7XN-XHlQc7fIVX-cV)

## Add a Client

Click the **Add Client** button to create a client. If you wish, you can import your clients from an excel file to Cubicl, or you can add them one by one.

<img src="/files/-Mb7XUAX4GK7TBqiesP1" alt="Adding a Client" width="375">

When you click on the Add Client button, the **create client form** will appear:

<img src="/files/ztxZ823yDw5YzO0Mq1gH" alt="Create a Client" width="563">

Add your clients’ company information. In Cubicl, the **short name**, **full name**, **phone**, and **email** fields are available by default. Add the contacts you communicate with—these can be other people within that company. You can also add your client’s billing information.

### Adding a New Field to a Client

If there is information you want to include that is not available in the client creation form, click the **Add New Field** button.

Create the fields you want to add. For example, invoice number or registration document number.

To delete a field you added, go to the **Add New Field** page, hover over the field, and delete it. This will remove the field from the client form.

![Adding New Fields](/files/-Mb7YcU2dDqhK9NHjvRs)

### Assigning a Portal Client Manager to a Client

Assign Portal Client Managers to your client. This way, when a support request comes from that client and the responsible party for the request is set as Client Managers, only the assigned client manager will receive notifications about the support request and any files uploaded by the client to the portal.

For more detailed information, visit [Client Portal> Managers on Support Topics](/crm/client-portal#managers-on-support-topics).

### Importing Clients / Bulk Client Upload

You can upload your clients to Cubicl in bulk using an Excel file. To do this, click the arrow next to the **Add Client** button and then click **Import Clients**.

<img src="/files/-Mb7XUAX4GK7TBqiesP1" alt="Adding a Client" width="375">

{% hint style="warning" %}
**NOTE:** When importing clients, you can add only one contact detail per client. Two or more contact entries are not supported.
{% endhint %}

<figure><img src="/files/o3BWrOxcdzbywhzC7Gqm" alt=""><figcaption></figcaption></figure>

## Merge Clients

Sometimes you may have created customer records in Cubicl for people from an organization, team or company. Or, when your customers create a support request, a new client is recorded. In such cases, your list of clients may become longer. However, if you wish, you can merge different client records under a single client record. Thus, your client list do not be crowded and you can do your tasks easier and faster.&#x20;

You can merge your clients belonging to the same organization from the **Actions > Merge** option on the relevant client's detail page.

![Merge Clients](/files/JnqCJAoQPLnQJw90OdBV)

In the blue info box of the merge clients modal, Cubicl suggests accounts that may belong to the same organization. You can also search by name, email, or phone number to find the target customer.

<figure><img src="/files/UjH1MpEvA2n8JkeV1NDX" alt="" width="563"><figcaption><p>2 clients can be merged.</p></figcaption></figure>

When you merge your clients, the current client is combined with the target client record. The current client's links are added to the target client's links. Details that are not in the target client but in the current client are transferred to the target client. All records of the current client (tasks, offers, portal datas, activities, bookkeeping entries, etc.) are transferred to the target client. Finally, the current client is **permanently** deleted.

<img src="/files/3dLyag5RoDt0k11fJtXu" alt="Merged Clients" width="489">

If you want to view your client suggestions that may belong to the same organization, click the yellow light bulb button on the Clients page.

![Suggestion for Merging Clients](/files/iWM839RZaiZ8iWgbnQh3)

{% hint style="warning" %}
To merge clients, you need to have Manage permission on the Clients page.
{% endhint %}

## User Permissions

You can edit user permissions from Actions menu in Clients page.

<figure><img src="/files/zBzCNf5SUrfXvW4ba9pL" alt="" width="177"><figcaption><p>Actions menu</p></figcaption></figure>

Users can have authority on clients page. The permission levels are listed as follows: None, View, Contribute, Edit, and Manage.

* **None**: Nobody can view or change the clients.
* **View**: Users can only view client's information and activities.
* **Contribute**: They can create clients and add notes.
* **Edit**: They can change clients' information.
* **Delete:** They can delete a client completely.
* **Manage**: They can view, contribute, edit, and delete clients. They can dowload clients in Excel form. Additionally,  they can set user permissions for clients page. **First** **account manager** always has the manage permission.

{% hint style="warning" %}
**NOTE:** Even if a person does not have permission to view all clients, they can still access the clients they are assigned to as responsible. By clicking on the client’s name tagged in the task or using the client’s page link, they can view details and related activities for those clients.
{% endhint %}

<img src="/files/-Mb7ZTSJ9IDoFah6JN5I" alt="Edit User Permissions" width="563">

**By default**, users' permission level is the **view** and account managers' permission level is the **manage,** but you can give permissions to users individually.

## Delete All Clients

You can delete all clients from Actions menu in Clients page.

<figure><img src="/files/zBzCNf5SUrfXvW4ba9pL" alt="" width="177"><figcaption><p>Delete all clients</p></figcaption></figure>

## Download All Clients

You can download all clients and their associated contacts directly from the Actions menu on the Clients page.&#x20;

<figure><img src="/files/zBzCNf5SUrfXvW4ba9pL" alt="" width="177"><figcaption><p>Export all clients</p></figcaption></figure>

The exported Excel file includes two sheets: Clients and Contacts.&#x20;

The Clients sheet provides information about each client, including client name, phone, email, full name, client manager, address, tax administration, tax number, number of contacts, and any additional fields you've added.&#x20;

The Contacts sheet contains records of the contacts associated with your clients, including client name, contact name, contact position, contact phone, and contact email.

## Client Details

On this page, you can see the client's info, tasks, deals, notes, activities, and files of the client. On the right side of the page, the tagged deals to the client and the client-related tasks are listed. Tasks are grouped as Overdue Tasks, Pending Tasks, and Completed Tasks. Each task the client is tagged in is shown here. From this page, you can do all the client-related activities.

![Client Details](/files/-Mb7Ze9HnLr_DfNXtiL3)

### Actions Menu

The client can be edited by clicking the **Actions** button in the client details.

You can **delete** the client from the edit page. Deleting the client will delete all related client activities and remove client information from all client tasks. However, the tasks will not be deleted.

Via actions button, you can also invite the client to the Client Portal. The Client Portal provides collecting support requests from your clients and sharing the task you done for your clients and the files related to them. For more detailed information, visit the [Client Portal](/crm/client-portal) page.

You can create a task for a client by clicking the **Create Task** button.

![Actions Menu](/files/-Mb7Zq0w1QUtYEW497Gd)

### Adding Notes to the Client

The notes you add are shown on the client's activities page. These notes are not attached to tasks, they are just notes on the client.

![Adding Note](/files/-Mb7_DH-B1TYCnbMhTok)

### Client Activities

Under the client's details, you can see the latest activities related to the client. When you create a new client, add a task to the client, update its details, and so on, an activity record is created for the relevant client. In this way, you can see the latest changes on her.

<img src="/files/-Mb7_LJzvMm75wDSpysW" alt="Activities on the Client" width="563">

### Client Tasks

Tasks in which clients are tagged listed here. The priority of the tasks, their states, the project they are in, their creation and completion date, their assignees, and task creator are shown.

![Tasks on the Client](/files/-Mb7_TTFO5UdQR64x4vF)

### Client Deals

Deals on the client are listed here. Name of the creator of the deal, deal name, value, creation date, and stage are shown. Users must have permission to view the Deals page to view this page.

![Deals on the Client](/files/-Mb7_ZjJOfB_6QbcZgrD)

### Client Files

You can upload files related to the client or create a folder about them.

{% hint style="warning" %}
**NOTE:** **Files in tasks** that the client is added **are not uploaded** here.
{% endhint %}

![Files on the Client](/files/-Mb7_oRpZyZCfyCY3I8G)

In order for the uploaded files and folders to be visible to the client in the client's portal, the files you add to this area must be shared with the client. You can unshare later.

<figure><img src="/files/g5ar3gWyqHw9AzDsaR7f" alt="" width="204"><figcaption><p>Shared folder with a client</p></figcaption></figure>

Files shared by the client with the organization through the client portal also appear here.

<figure><img src="/files/Lc7MQg1CiJwUvv4wON7l" alt=""><figcaption><p>Files page from a client's portal account</p></figcaption></figure>

To download multiple files or folders, click the **Select** option for each item you want to download. Then, click the **Actions> Download** button at the top. The selected files will be downloaded in **ZIP** format.

<figure><img src="/files/5kApYUFrS2wRIHasHlwc" alt=""><figcaption><p>Bulk download of client files</p></figcaption></figure>

### Client Bookkeeping&#x20;

Payment records of the client are displayed in this field. You can view the client's receivables and payables here. Users must have permission to view the Bookkeeping page to view this page.

<figure><img src="/files/BKuNXC2kEyLQS526cXcb" alt="" width="563"><figcaption><p>Client Bookkeeping </p></figcaption></figure>

## Activities Page

On the activities page, the activities on **all** the clients of the organization and the notes of the users were shown.

<img src="/files/-Mb7_vnzbRvC3WPNV7BC" alt="All Activities" width="563">

## Adding Client to a Task

You can add clients to the tasks you create. If you are creating a task related to a client, you can add the client by typing the client name in **the client box** in the **task form**. You can see the client of the task on the task detail page, and the client's tasks on the client detail page. Changes you make to the task will be reflected as activities on the clients' activities page.

<img src="/files/-Mb7a8DpBRpvOsP8Aqky" alt="Adding the Client Already Added" width="563">

If you have not created the client you will add to the task before, you can create it through the task.

<img src="/files/-Mb7aMNuzvmatJqX_Kyu" alt="Creating New Client on Task Page" width="563">

### Sharing the Task with the Client&#x20;

After adding a client to the task and creating the task, you can share it with the client from the Actions button on the details page of the task.

<figure><img src="/files/AU4kex3GBeHmYMbrRMmM" alt="" width="239"><figcaption><p>Share with client</p></figcaption></figure>

An email for the shared task sent to the client and the task appears in the client's portal account.

<figure><img src="/files/ZozelNSXA7TaxO0VRxol" alt=""><figcaption><p>Tasks page from client's portal account</p></figcaption></figure>

## Adding a Client to a Deal

You can add clients to deals from **the create offer form**. If you are not added the client before, you can create a new customer by selecting **the new client** option.

<img src="/files/-Mb7acSE3jK-3VBj38_S" alt="Adding the Client to a Deal" width="563">

Deals cannot be shared with clients.


# Deals

To track deals for your clients.

You can create deals that you offer to clients on [the Deals page](https://cubicl.io/deals). The deals are listed according to their stages, like kanban view. You can drag and drop the deal card to change its stage.

You can **archive** your deals that you will not work on.

![Deals Page](/files/-Mb7b2pceB-w00QCy6SY)

## User Permissions

Users can have authority on the deals page. The permission levels are listed as follows: None, View, Contribute, Edit, and Manage.

* **None**: Nobody can view or change the deals.
* **View**: Users can only view a deal's information and activities.
* **Contribute**: They can create deals.
* **Edit**: They change deals information.
* **Manage**: They can view, contribute, edit, and delete deals. Additionally,  they can set user permissions for deals page. **First account manager** always has the manage permission.

<img src="/files/-Mb7bA8nJeDyGwTuKmnM" alt="Edit User Permissions for Deals" width="563">

By default, users' permission level is **view** and account managers' permission level is **manage** but you can give permissions to users individually.

## Stage Settings

You can add new stages or edit default stages via **stage settings**.

<img src="/files/-Mb7bIojY-2N9GoasGt0" alt="Edit Deal Stages" width="375">

## Create and Edit a Deal

Giving a name to the deal and tagging a client are required when creating a deal. You can select the client from the existing ones or you can create a new client at **create deal form**. Click for more detailed information about [the Clients page](/crm/clients#add-a-client).

After adding the value and currency type of the deal, you decide the state of it. For example, was the offer submitted, negotiated, or accepted?

<figure><img src="/files/XkqBkc8vHmj8GUhU59LG" alt="" width="563"><figcaption><p>Create a deal</p></figcaption></figure>

Use the **three dots** at the deal's card to edit, make deal/order, archive, or delete it:

<img src="/files/-Mb7bfXHsqKAwN5_t5aD" alt="Deal Setting" width="375">


# Client Portal

To collect support request and communicate with the client.

[The Client Portal](https://cubicl.io/portal) allows you to automatically collect and track complaints, problems, requests, and suggestions from your clients. Requests created by your clients are called **Support Requests**. You can assign users to Support Requests, follow the process with your clients, and communicate with them.

With this feature, you provide a portal specific to your organization where your clients can contact you. Your clients can create their own user accounts in the portal. In this way:

* You do not have to deal with creating tasks for support requests one by one.
* All support requests are saved, so they cannot be forgotten.
* You can find past records about the support request.
* Who has responsibility for support requests is clear.
* It is seen at what stage the support requests are and how long they have been waiting.
* You interact with clients without leaving the app.
* The most importantly, client satisfaction increases.

![Client Portal Page](/files/-Mb7j3Ql19y9eOpsT5cr)

## Links

To communicate with your clients, you can share two different links with them: Support Form Link and Portal Link.

![Links](/files/-Mb_lgJNVd31S8mc7PhV)

### Support Form Link

Cubicl provides you a **Support Form Link** to give to your clients. Support Form Link directs your clients to the public support form. By filling out this form, your clients can create a support request without creating an account or registering. The support form is like that:

<img src="/files/-Mb_m682-gMG6JGQfGoe" alt="Support Form" width="563">

Your clients send the form with information such as name, surname, e-mail, subject, title, description, and file. This support request is created as a task in the related project. Assignees or project admins are notified when a support form is sent by a client:

![Support Request Notification from a Client](/files/-Mb7rSXrovyZCyCV1W2n)

Clicking on this notification will take you to the relevant task. An **ID number** is added to this task:

<figure><img src="/files/Y8o6yARvX7Zz5IysdCe2" alt="" width="181"><figcaption><p>ID number</p></figcaption></figure>

You can write a reply and communicate with each other. Only the answers you make visible to the client will be seen by her.

![A Support Task](/files/-Mb7sqiGH5vI5KZECW-G)

When you reply to a support request, an e-mail goes to the client. By clicking the link in the e-mail, the client can see the support request and answers given by assignees. The client can reply to you.

![A Support](/files/-Mb7ukM5RRCKH7Y4Yne3)

So, within Cubicl, you can connect with the client. Support requests are recorded as a task and you can track them. Client's requests are not forgotten or your work is not interrupted by a phone call from the client.

It is recommended that you should share the Support Form link with clients to collect support requests. Also, you can add that link as a button to your website.

### Portal Link

Portal link allows clients to create a user account on the Client Portal so they can view tasks and files shared by your organization. If you want to conduct long-term projects or works with your clients, you can share the portal link to them so they can have an account.

![Portal Login Page](/files/-Mb7uvPoo7Ipr358ldjT)

The portal page shows notifications, support requests, tasks, and files shared between you and your client. Your client can see the states of tasks you shared with them and can follow or unfollow tasks if they want.

![Support Page of a Client](/files/-Mb7v03NBUuMcznDQSxw)

Notifications about the client's activities on the portal drop your Cubicl account. So, you can answer the client quickly. A project is completed in time. You and the client conduct a transparent communication. Tasks are not forgotten.

## Portal Settings

### Enable or Disable the Support Request Feature

The Public Support feature is disabled by default. If you want to communicate with your customers through Cubicl, you need to activate Public Support. Once enabled, the public support form will become available.

<figure><img src="/files/P744YXgy8OjWCns31nU4" alt=""><figcaption></figcaption></figure>

To allow your portal users to submit support requests, set the Portal status to **Active**.

If you want users to be able to view their existing support requests and the tasks shared with them, but prevent them from creating new support requests, select **Read-Only**.

If you do not want portal users to access the portal or submit support requests, select **Inactive**.

<figure><img src="/files/XKj7ClJq6upD5g4OLlaP" alt=""><figcaption><p>A client's portal page in read-only status</p></figcaption></figure>

### Support Topics

The clients must choose a topic when creating a support request. You can select the project and assignees for topics. For example, the Sales team in the organization can deal with the "Sales" topic, and the Account team can deal with the "Invoices" topic. Or two assignees in the same project deal with all of those topics. If there are questions you want to ask clients while they are creating support requests, you can add Forms which are created earlier on the [Forms](/task-and-project-management/forms) page.

![Support Topics](/files/gQ8TGe7sTJP7rFzP1pFi)

By default, there is only one support topic named "Other". Notifications about all support requests are sent to the selected project and assignees. While there is only one support topic, the list of topics is not shown in the create a support request form.&#x20;

![Add a New Support Topic](/files/-Mb7vf8g4dvlhNazmKZ7)

To **add a new support topic**, add the name of the support topic and the project to create support request tasks and add assignees. Assignees are automatically assigned to the support request task and receive notifications. If an assignee is not added, the notifications go to the **project admin**. Then, project admin can add assignees later. Yet, click the **Add** button to save your changes.

To edit support topics, click the **pen icon,** and to delete them, click the **trash can**.

### Managers on Support Topics

There are 3 types of Managers for support topics:&#x20;

![Managers](/files/M8F8sBF5rjmzcohV3joe)

* **Assignees:** You can assign any users to the support topic.&#x20;
* **Project Admins:** You can assign Project Admins to the Support topic. Project Admins are the managers of the project selected for any support topic. You can find detailed information about the Project Admins [here](/organization-and-user-settings/user-permissions#project-admins).&#x20;
* **Client Managers:** You can assign Client Managers to the Support topic. Client Managers are responsible that have been specifically added to clients. To add a Manager to a client, visit;&#x20;

a. Clients> Create or Edit Clients page, or&#x20;

<img src="/files/kygfSriXS9VmeddqZIa9" alt="Portal Client Manager" width="563">

b. Client Portal> Portal page.&#x20;

<img src="/files/hBCgo4ZUpQdBZHIiQnto" alt="Assign Client Manager" width="563">

If you have designated a Client Manager for a support topic in the portal, but you have not assigned a Portal Client Manager to the client/s who contacted you for this topic, the notifications of the support topics and the notifications of the files that the client uploaded to the portal will send to the General Client Managers.

<img src="/files/ZHQDGvqudpXqLB4EJuWy" alt="General Client Managers" width="563">

### Adding Forms to the Support Topics

To add a form to a support topic, you must first create it from the [Forms](/task-and-project-management/forms) page. For example, you can create different forms such as Bug Tracking Form for software issues, Career Form to collect job applications, Visual Media Request Form for your agency.

<img src="/files/efr7QZZkth5Y7fVi8QmO" alt="A Form Example" width="563">

Add the form you created to the relevant support topic from the [Client Portal> Settings](/crm/client-portal#settings) page.

![Form at Support Topic](/files/qlnFMyqN6UuQ1BtP6CN3)

Questions in the form you create are displayed in the "Additional Informations" field when a client is creating a support request.

![Additional Informations](/files/AKaSh5ve4QjsxNjlsmde)

You can view the client's answers both from the support request created as a task and from the relevant form on the Forms page.

<img src="/files/o3Ia2NFpdQdMfn0fKGU7" alt="Form at the Task" width="552">

### Language of Support Page

This area allows you to add support for different languages. If there are settings defined for a language, those settings will be used in the support form. Otherwise, default settings will be used. In this way, your customers will see the appropriate settings for their language.

![Language of Support Page](/files/7RTElFVpduSgNatPKtFg)

### Portal Account Settings

Add the organization name that appears to clients on the portal, the support page details -which is name of the form- and the note that will appear above the support form.

![Portal Settings](/files/-Mb7voYuxcccS-5nFcYf)

### Custom Domain

Custom domains allow you to serve your client portal and support form under your own domain name. You can only use subdomains.&#x20;

To do this, create a new DNS record (a record indicating which server a web address is on) in the panel where you manage the DNS records of your own domain name. According to DNS standards, CNAME records cannot be added to main domain names. Therefore, the portal application cannot be served directly under the domain name. You must create a CNAME record for a subdomain under this domain. As soon as you add the CNAME record, subdomain will also be created.&#x20;

For example: you can create a subdomain such as portal.my-company.com.

<figure><img src="/files/chICZMheqNlzzjIYtSih" alt="" width="550"><figcaption><p>Custom Domain</p></figcaption></figure>

After adding a custom domain name in the Client Portal, a data is shown, you need to send the values written here to your IT team and add a DNS record in the domain service.

After setting up, in the "Verified" state, your portal links will now be updated with the domain name you added.

### Customization Settings

This field allows you to customize your portal page. From this field, you can make 4 different customizations for your portal page.

You can use the Customize button to customize the **Login page**. When you click on this button, you will be redirected to the Client Portal page and you can make your customizations.

You can use the Customize button to customize the **Register page**. When you click on this button, you will be redirected to the Client Portal page and you can make your customizations.

<figure><img src="/files/mT1mT9CdVcPKbG1tF84N" alt=""><figcaption><p>Login and Register Page Buttons</p></figcaption></figure>

With the customization interface, you can customize the background, left panel, buttons and fonts. This page can be customized using the settings in the customization menu at the top right. If the menu is hidden, you can click the button in the upper right corner to open it.

<figure><img src="/files/lcPMtcQO54X2OFnBlN1Y" alt=""><figcaption><p>Customization Interface</p></figcaption></figure>

**Favicon** is an field that allows you to change the browser tab icon that represents your application. Click the Update button and select the file, this icon will be displayed in the browser tab of your portal app. If you click on the reset link at the bottom, it will return to the default settings.<br>

<figure><img src="/files/GfaoKQA0b65z7Hq3wmmA" alt=""><figcaption><p>Favicon</p></figcaption></figure>

You can specify the title of the application in the browser tab by changing the text you type in the **Page Title** field. Type the new page title and save it. If you click on the reset link at the bottom, it will return to the default settings.

<figure><img src="/files/ea3DsB8eniCU6DRTzE6R" alt=""><figcaption><p>Page title</p></figcaption></figure>

From **Page Links** field, you can add the links you want your clients to see when they open your client portal. You can also provide information about your company with these links. In this field, add the URL you want and the name of this link. These added links will be displayed at the bottom of the login and register pages in the Client portal web application.

<figure><img src="/files/KVAbnhUbYZwjJ9SsVrQF" alt=""><figcaption><p>Page Links</p></figcaption></figure>

## Client's Portal Account&#x20;

Through the client portal the client sees:

* notifications,
* support requests created by the client,
* tasks shared with her,
* files shared with her and files she shared,
* bookkeeping records.

<figure><img src="/files/PYxnmEj5JLvdDv7rDyBB" alt=""><figcaption><p>Client portal page</p></figcaption></figure>

For more detailed information, you can visit the website of Client Portal: <https://cubicl.io/client-portal>

You can watch Youtube videos: <https://www.youtube.com/watch?v=mTAcJjgD1FM&list=PLVC2E6Si8ML6bYCeERYWFb-OEXw6Rba6k>


# Bookkeeping

Bookkeeping allows you to keep records of receivables and payables. In this way, you can see from whom how much payment you should receive, when the payment will be due, which payments are late and how much you owe to whom.&#x20;

To use [the Bookkeeping page](https://cubicl.io/bookkeeping), add it to the Navigation Menu from **Organization> Organization Details> Active Pages**.

![Active Pages](/files/DCXZa2TnCH3wtCPayTld)

You can access Bookkeeping page by clicking **Navigation Menu>Other>Bookkeeping** buttons.

![Bookkeeping Page](/files/g1xrV3WGcuUbVObeKFmC)

In the upper menu of the page, **Total Receivable, Outstanding Receivable, Overdue Receivable and Total Payable** values are displayed respectively.

![Entries](/files/uPA0CjPWYwRaz3pObbqn)

**Outstanding, Overdue and Paid Receivables and Payables** are listed below, respectively.

### Creating Receivable and Payable

Click **Create** button to create a new Receivable or Payable.

<img src="/files/vzXDUaqkbcbwhtrnzVAp" alt="Create Entry" width="563">

On the **Create Entry** page, select the **Client**. Select the **type** of entry. **Receivable** is what your client owes you. **Payable** is your debt to the client. Enter the total cost and currency. Fill in the entry name and description. Enter the due date. If some or all of the amount you entered has been paid before, enter this information in **Amount Paid** section. And click **Save** button.

### Adding and Editing Payments

You can add payments to the entries you create or edit them by clicking on the entry.

<img src="/files/MG5k01eEeZgnFfT4NdWr" alt="A Payment" width="205">

When you click **Add Payment**, you can enter both the all amount and partial.

![Add Payment](/files/0sa90NCVQsShLBBXET8f)

### Activity Logs

All activities related to payables, receivables and payments that you add are recorded.

<img src="/files/ZyFPmsftXt0PJrgNRw0m" alt="Activities" width="563">

### User Permissions

You can give the permission to users from **Clients Page>**[**User Permissions**](/crm/clients#user-permissions) field.&#x20;

* "View" to view,&#x20;
* "Create and Contribute" for adding and updating current accounts and delete receivables and payables,&#x20;
* "Create, Edit and Delete" for adding, updating and delete current accounts.

### Bookkeeping on the Client's Portal Page

In the Client Portal of your customers, their payables and receivables are listed under the Invoices heading. Your receivables are on their page as a payables, your payables are on their page as a receivables. The following image shows a customer's client portal page.

![A Client's Portal Page](/files/xfm0e1zhCkSpYsGutaa0)


# Home Page

To view all tasks you need to do.

[The home page](https://cubicl.io/dashboard/overview) shows you a list of the tasks you need to do. Tasks are shown here in timeline, so that, they are neither unnoticed nor forgotten.

<figure><img src="/files/tH8PWrpiaSX6mgk8K8xM" alt=""><figcaption><p>Homepage</p></figcaption></figure>

## Customizing the Homepage

You can customize your homepage using the **Customize** button to select which sections appear.

* From the panel on the right, choose a layout.

<figure><img src="/files/uscUxML7Ute0Cvjhqtcr" alt="" width="268"><figcaption></figcaption></figure>

* Add the widgets you want to see on your homepage.

<figure><img src="/files/saUlPnWQnYd86Lp7O0c4" alt="" width="276"><figcaption></figcaption></figure>

* From additional settings, you can add a **Create Task** button directly to the homepage.

<figure><img src="/files/f2eqqhYFwc7FTGIPvSFR" alt="" width="279"><figcaption></figcaption></figure>

### Widgets (Custom Sections on the Homepage)

<figure><img src="/files/SNDaimMYpj0IPZjKq83E" alt=""><figcaption></figcaption></figure>

In a customized homepage, you can display items such as the calendar, exchange rates, or weather. These elements are called widgets, and you can select them from the right-hand menu.

You can remove, move, or adjust a widget using the buttons on it.

<figure><img src="/files/OSjcA5JiAEdVW9Bf9YXK" alt="" width="375"><figcaption></figcaption></figure>

Available widgets include:

#### **Timeline**

Tasks with a deadline within the next 30 days are displayed in chronological order, starting with the nearest due date. If a task has both a start date and a deadline, it is along with its duration. Tasks without a specific time are not shown on the timeline.

<figure><img src="/files/4X10pqGBmeMPWG2S1Y7R" alt="" width="375"><figcaption><p>Timeline</p></figcaption></figure>

On the cards of the tasks on the home page, task name, name of the main task -if the task is a sub-task-,  task's project, client -if tagged-, state, dates, and assignees are shown. Colors at the top of the tasks illustrate the priority of the task.

You can go to the task detail page by clicking on the task card.&#x20;

<img src="/files/-Mb7c_uZPKCGdJxls07K" alt="A Task on the Timeline" width="563">

**Hiding Tasks on the Timeline and Undo It**

Only tasks waiting to be done are shown on the timeline. Completed or archived tasks are not shown here. However, if you want to hide a task, click on the cross symbol that appears when you mouse over to the task card. This action does not delete the task but hides it from the timeline.

<figure><img src="/files/VRKUKuSgDjdVqKQyKFmV" alt="" width="375"><figcaption><p>Hiding Task</p></figcaption></figure>

To undo this action, scroll to the buttom of the page and click "**My Hidden Tasks**" and choose tasks that you want to list in the Timeline and click the "**Make visible**" button.

![My Hidden Tasks](/files/4IvBuI8JnW6QMye2qro6)

#### Reports

You can view how many tasks each user has or have a rough idea about tasks on a project in a time period you choose. If your team members are tracking time, here you can see who is working on which project and on which task, live:  &#x20;

<img src="/files/yiFRpX6Xf0kdPak2LrZq" alt="Member Activity on a Task" width="472">

For more comprehensive reports, you can go to the [Reports page](/task-and-project-management/projects/reports) of the project.

{% hint style="warning" %}
**NOTE:** You can only see the reports of projects that you are an admin of.
{% endhint %}

#### My Calendar (Week, Day, and List views)

A widget version of the Calendar page from the left navigation menu.

#### Assigned Tasks

Lists tasks assigned to you. Filters and display options available.

#### Followed Tasks

Lists tasks you are following. Filters and display options available.

#### Recent Tasks

Shows the tasks you recently interacted with (viewed, updated, changed stage, etc.). Filters and display options available.

#### Recent Support Requests

Displays the 10 most recent support and email tasks.

#### Recent Created Tasks

Shows the last 10 tasks you created. Filters and display options available.

#### Exchange Rates

Displays exchange rates, updated once daily. You can choose a base currency and compare against others.

#### Sticky Notes

Displays your personal notes.

#### Recent Projects

Lists the 10 most recently visited projects.

#### Weather

Shows the hourly updated weather for your location.


# My Calendar

To see your tasks in calendar view.

On [Calendar page](https://cubicl.io/calendar), you can view the tasks that are assigned to you, or those created or followed by you in different projects in **Month, Week, Day, and List views**. You **cannot view** tasks that you are not in.

From the **Display Type** field, you can list tasks only by deadlines, only by start date, or by task duration.

From the **Legend** field, you can select the project you want to display.

![My Calendar Page](/files/-Mb7dV3bM0ZBrCEO2Tq2)

### Creating a Task on Calendar

You can use the **Create** button or click on an empty day on the calendar to create a new event. When you click it, a form will appear to create an event:

<img src="/files/-Mb7dbGbg_I_s1awyHqG" alt="Create Task Form" width="563">

To create an event or a task, select the project you want to add that task to and add the task name. You can add other details if you want.

### Editing Task on Calendar

Click the event or task you want to edit in the calendar. The edit form will open. Additionally, you can drag and drop a task on the calendar to another day to change its date.


# Sticky Notes

To create little notes.

### Sticky Notes

Sticky notes are small notes that are find-to-easy. You can also access them from the right menu on the Home Page. You can use this field to keep track of your personal notes. This page is private to you, so no one else can see it other than you.

<img src="/files/-Mb7epIu9K1ysabahkHZ" alt="Sticky Notes on the Right Menu" width="375">

To create a sticky note, click the **plus** button.

To delete a sticky note, click the **trash** can.

![Create a Note](/files/-Mb7ezkozak_zQ4aDm2y)

{% hint style="warning" %}
**NOTE:** Sticky notes **are not archived**. For this reason, think twice before deleting them.
{% endhint %}


# Account, E-mail and Notification Settings

For activity notifications.

Click [**the profile page**](https://cubicl.io/profile) to change the account and notification settings.

When you create your account, you will have a random photo in Cubicl. But you can update your name, photo, language, and time zone options from **the profile details** section.

![Profile Page](/files/Xcx2JsfV53YpltJWt3TR)

## Account Settings

Use this field to change your email address and password.

![Account Settings](/files/6fdqXsDJL6byzEUz3uxg)

### Date and Time Settings

Edit the **date** and **time formats** and **time zone** for tasks and reports.

![Date and Time Settings](/files/-MkfHyvY6BVrJovw4a8q)

### Account Customization

You can customize your Cubicl experience—such as choosing light or dark mode or adjusting interface colors—through the Customization section on your Profile page.

<figure><img src="/files/OlHxrI4hAuq3jVCB8Abm" alt=""><figcaption></figcaption></figure>

### User Status <a href="#user-status" id="user-status"></a>

**By right-clicking** your profile picture in the right-hand menu, you can set status updates such as Busy, In a Meeting, or On Leave. You can also activate Do Not Disturb mode to stay focused.

<figure><img src="/files/AhZ3x6VAjs3Kt2JyXpvX" alt="" width="362"><figcaption></figcaption></figure>

Your teammates will see your current status right next to your name under the Messages tab.

<figure><img src="/files/riZcHelLmVwuOpkvIXKc" alt="" width="258"><figcaption></figcaption></figure>

## In-App Notifications <a href="#in-app-notifications" id="in-app-notifications"></a>

All in-app notifications in Cubicl are listed under the Notifications tab in the top menu. You can switch between All Notifications and Unread. Unread tasks can be marked as read by clicking the checkmark next to them or by selecting “Mark All as Read.”

<figure><img src="/files/bxVlHp9Va9s2DQShI5gY" alt="" width="346"><figcaption></figcaption></figure>

In-app notifications cannot be disabled or limited. Examples of notifications include:

* … accepted your organization invitation.
* … removed you from the organization.
* … left the organization.
* … made you an admin of the project.
* … removed your admin permission from the project.
* … added you to the project / added someone to the project.
* … removed you from the project.
* … archived the project along with its subprojects.
* … restored the project and its subprojects from the archive.
* Created a task in the project: …
* Completed a task in the project: …
* … added you as a follower to a task.
* Assigned you a task: …
* … removed you from a task.
* … deleted a task.
* … updated task details.
* … completed a step.
* Posted an update in the task: …
* … archived the task.
* … restored the task from the archive.
* Changed the task status to: …
* A recurring task copy has been created.
* ... has started.
* ... is overdue.
* Sent an email: …
* Created a support ticket: …
* Sent you an event invitation.
* ...left ... on your post.
* Mentioned you in a task.
* Mentioned you in the task description.
* Mentioned you in a step.
* Mentioned you in a message thread.
* Mentioned you in a client note.
* Uploaded a file. (Files added by the client through the Client Portal appear here.)
* Approved your time-off request. (See: [Time-Offs](/organization-and-user-settings/time-offs))
* Submitted a time-off request. (See: [Time-Offs](/organization-and-user-settings/time-offs))
* Rejected your time-off request. (See: [Time-Offs](/organization-and-user-settings/time-offs))

## E-mail Notification Settings

Notifications are sent as e-mail when you are not signed in Cubicl. You can choose which email notifications you want to receive from the Email tab on your [Profile page](https://cubicl.io/profile).

E-mail notifications are sent for;&#x20;

* Chat notifications,
* Activity notifications in projects and tasks,
* Reminder for upcoming tasks,
* Important notifications from projects you manage.

![E-mail Notifications Settings](/files/gTebP7kTzJILd0TzVdmV)

{% hint style="warning" %}
**NOTE:** If your e-mail notifications are turned on and you are not active on the web or mobile application, notifications will be sent to your e-mail account. Notifications are sent within 3 minutes after you offline. Subsequent notifications are sent in batches with increasing time intervals until you online. So you don't get a lot of e-mails.
{% endhint %}

## Web Browser Notification Settings

Desktop notifications are pop up in the corner of your screen while Cubicl page is in the background. Notification settings can be adjusted from the Notifications section on your [Profile page](https://cubicl.io/profile).

![Web Browser Notifications Settings ](/files/1E3b6N1ehsDluiPWXfur)

Click on the lock icon on the browser to activate browser notifications.

<img src="/files/Nn8dHdkHkntpudGiEBSE" alt="The Lock Icon" width="273">


# Account Security

## 2-Step Verification&#x20;

2-Factor Authentication (2FA) improves your account security by prompting to enter a 6-digit code each time you log in. You can use Google Authenticator or similar applications which will be listed when you enable 2FA here.

To do this, visit the [**Profile**](https://cubicl.io/profile) **> Account** tab in Cubicl. Turn the feature on. You will see the QR code screen.&#x20;

<figure><img src="/files/sD5oMAf0iO9bBDjwpTSl" alt="" width="188"><figcaption><p>Qr code</p></figcaption></figure>

Enter the 6-digit authentication code generated in the authenticator app you are using. You can use one of the applications below.&#x20;

* Google Authenticator&#x20;
* Microsoft Authenticator&#x20;
* LastPass Authenticator&#x20;

## Sessions&#x20;

When you log in to the web or mobile, you will receive a notification to your e-mail account and your sessions will be shown in the **Profile > Sessions** tab. You can log out your sessions on the device by clicking **Log Out Session**.

<figure><img src="/files/mzqO3ENd1bm6JJDBgySV" alt=""><figcaption><p>Sesssions</p></figcaption></figure>


# Organization Settings

To manage your organization and team.

From [Organization page](https://cubicl.io/org/overview), you can add or remove members of the organization, edit permissions for members, edit the details of the organization, and manage your subscription.

## Account Manager

The user who creates a Cubicl account becomes the First Account Manager. The First Account Manager can invite new users to the organization, remove users, and manage subscriptions and billing. In addition, the First Account Manager has Manage permission for all pages, such as Clients, Deals, and Forms.

The First Account Manager can also grant Account Manager privileges to other users. An Account Manager can invite new users to the organization, remove users, and manage subscriptions and billing.

### Account Manager vs. Project Admin

* The Account Manager can add new users to the organization, remove users, and manage subscriptions and payments. Project admin is the person with all the authorities in a project.
* Being an account manager does not mean being a project admin in all created projects. Members who are not account managers can be an admin in any project.

## Invite Users

You can add people to the institution by sharing the link, or by adding e-mails and sending them an invitation.

{% hint style="warning" %}
If you invite people via e-mail, do not forget to press the **Invite** button after adding e-mail/s.
{% endhint %}

![](/files/-Mb7g92lApK8Lrat3Uxs)

Email addresses of people who have been invited but haven’t accepted the invitation yet are shown on the Organization page. You can delete an invitation by clicking the **Trash** icon next to the invited email.

<figure><img src="/files/CX2HUBvZJUNmPCttW9Vq" alt="" width="361"><figcaption><p>Waiting invitations</p></figcaption></figure>

### User List

Users are invited people to the organization account. Among users, account managers have a star near their names.

Click on the **Show Email Addresses** to access the e-mails of all members.

![Members](/files/-Mb7gF4kg2k88IxeMi1G)

### Delete/ Remove Users

To delete a user, simply click three dots near the user and click "remove employee".

<figure><img src="/files/WV65ZeVvSzFMiY06GfM4" alt="" width="272"><figcaption><p>Remove Employee</p></figcaption></figure>

After this action, the user's activities, messages, and records within your account will not be deleted. However, the user will be removed from the organization and from all projects they are a member of. The user will no longer be able to sign in to the Cubicl account.

### Teams and Projects

You can view all projects, you have created, with their members.

<figure><img src="/files/HCxVIbZTe0wXkga2NEb8" alt=""><figcaption><p>Projects</p></figcaption></figure>

## Organization Name Update

You can select your country and update your organization name by going to **Organization > Organization Details**.

{% hint style="warning" %}
The selected country may affect Cubicl's pricing policy.
{% endhint %}

## Active Pages on the Navigation Menu

If you don't want unused pages to clutter the Navigation Menu > Other section, you can hide them by going to **Organization > Organization Details > Active Pages** and deselecting the pages you don't want to appear in the menu.

![Active Pages](/files/s433sgyr4iehQEnTUb18)


# Subscription and Payment

Go to **Others>** [**Organization** Page](https://cubicl.io/org/overview) from Navigation Menu and click **Subscription and Payment** tab.

<figure><img src="/files/yO0Z9K5S0wGebbvJbvms" alt=""><figcaption><p>Cubicl Subscription and Payment</p></figcaption></figure>

## Free Trial

When you start a demo, you receive a 14-day free trial without needing to provide credit card information. During this period, you'll have access to the **Enterprise** plan, allowing you to explore all the features in Cubicl. You can also invite as many teammates as you like.

When your free demo ends, your account and the information you’ve entered will not be deleted. If you decide to start a subscription, you can pick up right where you left off.

## Subscription

To start a monthly or yearly subscription, you must add your **credit card info and billing information**. To ensure uninterrupted service and to receive accurate invoices, please be sure your credit card and billing information are correct.

### Plans

There are 3 plans: Starter, Professional and Enterprise.

<figure><img src="/files/ql33XzOFLdcE6BT5ZPKq" alt="" width="563"><figcaption><p>The features in the image may not be up-to-date.</p></figcaption></figure>

As you move from the Starter plan to the Enterprise plan, the features available to you increase. A detailed list of features is available under [each plan](https://cubicl.io/org/payment). If you're unsure whether a particular feature is included in your selected plan, please contact us at **<support@cubicl.io>**.

### Monthly Payment

To start a monthly subscription, click the **Subscribe** button under the plan you want. On the next page, select **Monthly** for the Subscription Type. Set the **User Count**—note that you can increase this number as needed, but the selected user count must be at least equal to the number of users currently added to your organization account. If you wish to subscribe for fewer users, you’ll need to remove some users from your organization account before starting the subscription.

1. When you subscribe to monthly plan, you will pay the plan fee for each user in a single payment at the start of each 30-day billing cycle. Partial days will be counted as full days.
2. Payments are accepted **only** via credit card.
3. During your usage, you can add or remove users. If you reach your user limit, you can increase the number of users within the billing cycle. Charges for user increases will be based on the remaining time in the cycle.
4. Your plan will **automatically renew** unless you cancel your subscription. Upon renewal, you will be charged according to the number of users in your organization.

### Yearly Payment

To start a yearly subscription, click the **Subscribe** button under the plan you want. On the next page, select **Yearly** for the Subscription Type. Set the **User Count**—note that you can increase this number as needed, but the selected user count must be at least equal to the number of users currently added to your organization account. If you wish to subscribe for fewer users, you’ll need to remove some users from your organization account before starting the subscription.

1. You get a **20% discount** for yearly subscription.
2. If you have **25 or more users**, you will get more **discount**. To learn discount rate, at click **Subscribe** button under the plan you want and select user count more than 25 users.
3. Payments are accepted via credit card.
4. When you subscribe to yearly plan, you will pay the plan fee for each user in a single yearly payment. Your payment will be taken when your subscription begins. Partial days are considered as full days.
5. During your usage, you can add or remove users. However, **no discount will be applied for additional users** added during a user increase. Charges for user increases will be based on the monthly fee for the remaining time in the cycle.
6. The subscription will **automatically renew** for the same number of users you selected during the initial subscription.

## Increase User Count

After the monthly or yearly subscription starts, you can invite and remove users from your organization as long as you do not exceed your user limit. If adding a user would exceed the limit, the user cannot be added. In this case, you'll need to increase the user limit.

To adjust the user count, go to the **Current Usage** table at Organization Page> Subscription and Payment tab. Click the **Change** button under the **User Count** column to update the number of users.&#x20;

When increasing the user count, payment will be processed immediately. If the payment is successful, the user limit will be updated. If the payment fails, the limit will remain unchanged.

**No discount** is applied for additional users. Charges for user increases will be based on the remaining time in the cycle.

Payments are accepted **only** via credit card.

After increase your user count, go to **Organization> General tab** and invite your teammates.

<figure><img src="/files/Fyp26G22G7N9TbZAx24b" alt="" width="563"><figcaption><p>Invite team</p></figcaption></figure>

## Changing Plan

You can change your plan for both monthly and annual subscriptions. To do this, click the **Subscribe** button under the plan you want to switch to and follow the on-screen instructions. Your new subscription will begin once your current subscription ends.&#x20;

However, if you have a yearly subscription and wish to change your plan before the subscription period ends, please contact our team at **<support@cubicl.io>**.

## Downgrading Plans&#x20;

When you start a trial in Cubicl, you gain access to the Enterprise plan, which allows you to explore all features. If you switch to the Starter or Professional plan after the trial, or if you downgrade from a higher plan to a lower one after starting a subscription, some features will no longer be accessible. In such cases, a **warning screen** will appear, detailing the actions you need to take. Here’s a summary of these actions:

### Deleting Projects&#x20;

Starter plan allows up to 10 projects, while the Professional and Enterprise plans offer unlimited projects.&#x20;

If you downgrade from a higher plan to the Starter plan, you must reduce your project count to 10 or fewer by deleting unnecessary projects.

### Deleting Files&#x20;

Storage capacity per user varies by plan:

* Starter Plan: 5 GB per user&#x20;
* Professional Plan: 15 GB per user&#x20;
* Enterprise Plan: 50 GB per user&#x20;

The total storage capacity is calculated as Number of Users × Storage per User.

Files can be in various locations, such as project files, task files (including archived tasks), task activity files, or files shared in chats. Bulk export and bulk deletion are not available. To free up storage, you must delete files **one by one**.

### **Deleting Clients**

Client record limits:

* Starter Plan: 500 clients
* Professional Plan: 10,000 clients
* Enterprise Plan: Unlimited

If your client count exceeds these limits, you’ll need to delete some clients.

### **Reverting to Default Settings**

Features vary by plan. You can review which features are included in each plan [in the link](https://docs.google.com/spreadsheets/d/1r2uAG9ry7yaDHuirVMPnBkOw1Z0NaLWu1JINQqZbLOc/edit?usp=sharing).

If a feature is not included in your new plan, you will no longer be able to use it.

#### **Default Task Stages**

Default task stages are: **Pending, Active, Completed, Suspended**. If your project includes custom stages such as "Cancelled," tasks in these stages will be moved to "Suspended."

Custom stage names will revert to defaults. Tasks will be reassigned to the corresponding default stages based on the descriptions of your customized stages.

<figure><img src="/files/wM0EF53QDvIHJnU7omkl" alt="" width="563"><figcaption><p>Description in Task States</p></figcaption></figure>

**Example:** If the "Technical Interview" stage in your HR project was described as "Active/in-progress tasks," it will revert to "Active" when downgrading.

#### Default Permissions in Projects&#x20;

Project permissions can be adjusted on the project settings page. Team-based permissions are available in the Professional Plan, while user-specific permissions start in the Enterprise Plan.

Project admins have all permissions. Project members and non-members have default permissions for each page:

<figure><img src="/files/Y8kK4h5KK3hucrl5M2xY" alt=""><figcaption><p>Default Project Permissions</p></figcaption></figure>

#### Default Permissions on Other Pages&#x20;

Pages such as Clients, Bookkeeping, Deals, Email Inboxes, Forms, Client Portal, Time-Offs, and Workflows have default permissions: **Manage** for Account Manager, **Create and Edit** for Users.

#### Making Private Projects and Tasks Visible&#x20;

Private projects are visible only to their project admins and members. Private tasks are visible only to the assignees and the owner. These features are exclusive to the Enterprise Plan. When downgrading, private projects and tasks will become visible.

## Cancel Subscription

If you wish to cancel your monthly or annual subscription for the **next period**, you can do so by following these steps:

* Go to the **Organization** page and click on **Subscription and Payment** at the top left.
* Hover over the **Current Usage** box to reveal the **Cancel Subscription** button.
* Click **Cancel Subscription** to complete the process.

## Refund

There are no refunds for monthly subscriptions.

For yearly subscriptions, refunds are available within 30 days of the subscription start date. To request a refund, please contact our team at **<support@cubicl.io>**.

## Invoice

Invoices are generated based on the **Billing Info** provided under the **Subscription and Payment** tab. They are sent via email to the Account Manager(s).


# User Permissions

## Account Manager

In Cubicl, an organization account is created by a person. The person who creates the account and starts the trial becomes the **First Account Manager**. The first Account Manager has the following permissions:

* Add or remove members from the organization
* Grant or remove Account Manager permissions for other members
* Manage subscription and payment operations
* Manage pages such as clients, deals, and bookkeeping
* Create projects and add members to projects

People added by the first account manager as account managers also have the same permissions, except for "Manage pages such as clients, deals, and bookkeeping".

Every organization must have at least one Account Manager. If the first Account Manager grants another member the Account Manager role, the first Account Manager can then be removed from the organization. In this case, the Account Manager permissions transfers to the member who was granted the role.

Account Managers can perform the necessary actions from the **Organization** page.

<figure><img src="/files/vSSpShsNi7iZIx5J3veo" alt="" width="563"><figcaption></figcaption></figure>

### Organization Members / Users

People who are invited to the organization by an Account Manager and create a user account—but are not granted Account Manager permissions—are defined as **“users.”**

A person cannot access projects, tasks, messages, or any other content within Cubicl unless they are invited to the organization. In other words, they cannot sign in to the organization’s Cubicl account.

Account manager and user permissions can be viewed on the [Organization page](https://cubicl.io/org/overview).

## Project Permissions

Project permissions can be configured while creating a project or afterward through **Settings > Members**.

Permissions can be assigned for:

* Project admins
* Project members
* Non-members
* And individually per user

Permission levels are structured progressively as **None, View, Create, Edit, and Delete**. For example, a user with **Edit** permission can view, create, and edit content.

![Project Permissions](/files/PQv0FA9E5WFuCXMwg4dq)

### Project Admins

Project Admins have full authority within a project. They can:

* Add or remove project members
* Grant or revoke project admin permissions
* View, create, edit, and delete all project content

Since projects follow a hierarchical structure, a project admin also has manager permissions for all subprojects linked to that project. For example, if a person is an admin in a parent project, they can access, view, or edit subprojects unless those subprojects are marked as private.

#### Project Admin vs. Account Manager

The **Account Manager** and **Project Admin** roles are completely independent from each other. This means a user may:

* Be both an Account Manager and a Project Admin,
* Be only one of them, or
* Have neither role and simply remain a regular user.

These roles do not interfere with each other; each provides its own permissions within its own scope.

### Project Members

Project members are users who have been added to the relevant project as a member. By default, they have permission to view and contribute content. You can change permissions for each page in the project later.

### Non-Project Members

These are people who are users in the organization but are not members of the relevant project. By default, they have permission to view the contents. Therefore, if you do not want non-project members to see the content, you should change the permissions to None later. You can change permissions for each page in the project.

### User-Based

You can set different permission levels for users in your projects. You need to select a user in the project permissions field to set permissions for that user. You can set user-based permissions to increase or decrease their permission levels.&#x20;

If permissions are not set for a user, project permissions set for "Members" or "Non-Project Members" are used.

### Exceptions

Some users may have some exceptions depending on the situation. Even if a user does not have permission in a project:

* She can see the tasks assigned to her or created by her, post in these tasks, update the state and progress of the task, upload files.
* She can archive, edit, and delete tasks created by herself.
* She can delete activity posts created by herself.

## Page Permissions

You can set user permissions for all pages separately in Cubicl. You can make different authorizations for the Clients, Bookkeeping, Deals, Email Boxes, Forms, Workflows, Client Portal, Time Offs and Workflows pages. On these pages, permissions can be set for all users or specifically for each user.

To set up the same level of permission for all users, use the **Default Permission** field. But if you add different level permission to each member, use **User Permissions**.&#x20;

The first account manager in the organization has full permissions. Other account managers will have the Default permission level unless a different setting is selected.

<img src="/files/-Mb7iRymi-T8WIuWbLhS" alt="User Permissions" width="563">

You can click the **User Permissions** button and edit the default and user-based permission levels, and then save them. The permission levels you save will only apply to that page.

## Permission List

To perform these actions, users must have the following minimum permissions:

| PROJECT PAGE                                                                     | MINIMUM PERMISSION LEVEL |
| -------------------------------------------------------------------------------- | ------------------------ |
| <mark style="color:blue;">**TASKS PAGE**</mark>                                  |                          |
| Creating a new Task                                                              | Create and Contribute    |
| Copying a Task                                                                   | Create and Contribute    |
| Archiving Task                                                                   | Create and Contribute    |
| Removing a Task from Archive                                                     | Create and Contribute    |
| Exporting Task to Google Calendar                                                | Create and Contribute    |
| Changing the State of a Task                                                     | Create and Contribute    |
| Deleting Task                                                                    | Create, Edit and Delete  |
| Moving a Task to Another Project                                                 | Create and Edit          |
| Switching Task View Between Kanban and List                                      | View                     |
| Changing Task Order by Priority and Due Date                                     | View                     |
| Displaying Images on Tasks                                                       | View                     |
| Viewing Tasks by Assignee                                                        | View                     |
| Viewing Archived Tasks                                                           | View                     |
| <mark style="color:blue;">**TASK FORM**</mark>                                   |                          |
| Editing a Post Created by Someone Else (Task Name, Assignee, Date, Client, etc.) | Create and Edit          |
| Adding a Workflow to a Task Someone Else Created                                 | Create and Edit          |
| Making a Task Created by Someone Else a Private Task                             | Create and Edit          |
| Attaching Files to a Task Someone Else Created                                   | Create and Contribute    |
| Creating a Post to a Task Someone Else Created                                   | Create and Contribute    |
| Complete Substeps of a Task Someone Else Created                                 | Create and Contribute    |
| Adding a Subtask to a Task Someone Else Created                                  | Create and Contribute    |
| Sharing Task Someone Else Created with a Client                                  | Create and Contribute    |
| Adding a Form to a Task Created by Someone Else                                  | Create and Contribute    |
| Exporting a Task Created by Someone Else                                         | Create and Contribute    |
| Follow a Task Created by Someone Else                                            | View                     |
| Tracking Time on a Task Someone Else Created                                     | View                     |
| Deleting Someone Else's Activity Logs                                            | Create, Edit and Delete  |
| Deleting Files Uploaded by Someone Else                                          | Create, Edit and Delete  |
| <mark style="color:blue;">**FILES PAGE**</mark>                                  |                          |
| Viewing Files                                                                    | View                     |
| Viewing the Total Size of Files                                                  | View                     |
| File Download                                                                    | View                     |
| File Upload                                                                      | Create and Edit          |
| Creating Folders                                                                 | Create and Edit          |
| Rename All Files                                                                 | Create and Edit          |
| Moving File to Another Folder                                                    | Create and Edit          |
| Deleting Files                                                                   | Create, Edit and Delete  |
| Deleting Folders                                                                 | Create, Edit and Delete  |
| <mark style="color:blue;">**GANTT CHART**</mark>                                 |                          |
| Viewing the Gantt Chart                                                          | View                     |
| All Changes on the Gantt Chart                                                   | Create and Edit          |
| <mark style="color:blue;">**TIMELINE CHART**</mark>                              |                          |
| Viewing the Timeline Chart                                                       | Everbody                 |
| <mark style="color:blue;">**PROJECT CALENDAR**</mark>                            |                          |
| Viewing the Project Calendar                                                     | Everbody                 |
| <mark style="color:blue;">**REPORTS**</mark>                                     |                          |
| Viewing Reports                                                                  | View                     |
| <mark style="color:blue;">**SETTINGS PAGE**</mark>                               |                          |
| Viewing Project Admins and Members                                               | Everybody                |
| Adding and Removing Members from the Project                                     | Project Admins           |
| Making a Member a Project Admin or Making a Project Admin a Member               | Project Admins           |
| Changing the Project Name                                                        | Project Admins           |
| Editing Project Permissions                                                      | Project Admins           |
| Selecting Project Pages                                                          | Project Admins           |
| Editing Task Stages                                                              | Project Admins           |
| Creating Additional Task Form Fields                                             | Project Admins           |
| Adding the Estimated Duration Field to the Task Form                             | Project Admins           |
| Enabling the Automatically Adding Working Hours on Task Forms Setting            | Project Admins           |
| Integrating the Project with Slack                                               | Project Admins           |
| Viewing Deleted Tasks in a Project                                               | Project Admins           |
| Exporting Project Tasks                                                          | Project Admins           |
| Archiving a Project                                                              | Project Admins           |
| Deleting Project                                                                 | Project Admins           |
| Creating, Editing, and Deleting Tags                                             | Project Admins           |

| NOTES:                                                                                                                                                                                                                                                                                                              |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| In projects, the permission levels are "None, View, Create and Contribute, Create and Edit with Create, Edit and Delete" for project members, non-members and users individually.                                                                                                                                   |
| Exceptions:                                                                                                                                                                                                                                                                                                         |
| 1. Even if users do not have required permission level in the relevant project, they can see tasks assigned to them, create posts in these tasks, update the states and progress of the task and upload files. They can archive, edit and delete tasks created by them and they can delete their posts under tasks. |
| 2. The Project Admin has all the permission on projects they are admin.                                                                                                                                                                                                                                             |
| 3. If a Project is created as a Private Project, Non-Project Members will not be able to access any data. They can't even see the project name in the project list.                                                                                                                                                 |

| CLIENTS, DEAL AND BOOKKEEPING                    | MINIMUM PERMISSION LEVEL |
| ------------------------------------------------ | ------------------------ |
| <mark style="color:blue;">**CLIENTS**</mark>     |                          |
| Viewing Client Details                           | View                     |
| Viewing Activities on Clients                    | View                     |
| Inviting the Client to the Client Portal         | Create and Edit          |
| Uploading File to Client                         | Create and Edit          |
| Adding Client                                    | Create and Edit          |
| Editing Client Information                       | Create and Edit          |
| Importing Clients                                | Create and Edit          |
| Adding a New Field to a Client                   | Create and Edit          |
| Adding a Note to the Client                      | Create and Edit          |
| Adding a New Task to a Client                    | Create and Edit          |
| Adding a Portal Client Manager to a Client       | Create and Edit          |
| Deleting Client                                  | Create, Edit and Delete  |
| Merge Client                                     | Manage                   |
| Editing User Permissions                         | Manage                   |
| Downloading/ Exporting Client List               | Manage                   |
| <mark style="color:blue;">**DEALS**</mark>       |                          |
| Viewing Deals                                    | View                     |
| Viewing the Deals Archive                        | View                     |
| Creating a Deal                                  | Create and Edit          |
| Changing the State of the Deal                   | Create and Edit          |
| Archiving Deals                                  | Create and Edit          |
| Convert a Deal to Order                          | Create and Edit          |
| Deleting Deal                                    | Create, Edit and Delete  |
| Changing Stage Settings                          | Manage                   |
| Editing User Permissions                         | Manage                   |
| <mark style="color:blue;">**BOOKKEEPING**</mark> |                          |
| Viewing Bookkeeping                              | View                     |
| Creating Bookkeeping                             | Create and Edit          |
| Editing Bookkeeping                              | Create and Edit          |
| Adding and Deleting Payments                     | Create and Edit          |
| Deleting Bookkeeping Entries                     | Create, Edit and Delete  |

| NOTES:                                                                                                             |
| ------------------------------------------------------------------------------------------------------------------ |
| The permission levels on these pages are "None; View; Create and Contribute; Create, Edit and Delete; and Manage." |
| These are the minimum required permission levels for the actions mentioned above.                                  |

| OTHER PAGES                                           | MINIMUM PERMISSION LEVEL |                                                            |
| ----------------------------------------------------- | ------------------------ | ---------------------------------------------------------- |
| <mark style="color:blue;">**ORGANITAZION**</mark>     |                          |                                                            |
| Adding and Removing Members                           | Account Manager          |                                                            |
| Making a User Account Manager                         | Account Manager          |                                                            |
| Buy or Cancel Subscription                            | Account Manager          |                                                            |
| <mark style="color:blue;">**FORMS**</mark>            |                          |                                                            |
| Creating a Form                                       | Create and Edit          |                                                            |
| Deleting a Form                                       | Create, Edit and Delete  | Owner                                                      |
| <mark style="color:blue;">**WORKFLOWS**</mark>        |                          |                                                            |
| Creating a Workflow                                   | Create and Edit          |                                                            |
| Deleting a Workflow                                   | Create, Edit and Delete  |                                                            |
| <mark style="color:blue;">**PROJECTS**</mark>         |                          |                                                            |
| Creating a New Project                                | Everybody                | Must have Project Admin authority on at least one project. |
| Editing Project Settings                              | Admin                    |                                                            |
| Adding and Removing Members from the Project          | Admin                    |                                                            |
| Making a User Project Admin                           | Admin                    |                                                            |
| Deleting a Project                                    | Admin                    |                                                            |
| <mark style="color:blue;">**TIME OFFS**</mark>        |                          |                                                            |
| Adding Time Offs                                      | Create and Edit          |                                                            |
| Deleting Time Offs                                    | Create, Edit and Delete  |                                                            |
| <mark style="color:blue;">**CLIENT PORTAL**</mark>    |                          |                                                            |
| Inviting a Client to the Client Portal                | Create and Edit          | This permission is granted on the Clients page.            |
| Updating the Client in the Table                      | Create and Edit          | This permission is granted on the Clients page.            |
| Assigning a Client Manager to the Client in the Table | Create and Edit          | This permission is granted on the Clients page.            |
| Deleting a Client in a Table                          | Create, Edit and Delete  | This permission is granted on the Clients page.            |
| Logo Change                                           | Account Manager          |                                                            |
| Creating, Updating and Deleting Support Topics        | Account Manager          |                                                            |
| Updating Support Page Information                     | Account Manager          |                                                            |
| Assigning General Client Managers                     | Account Manager          |                                                            |
| Announcements > Creating a New Announcement           | Account Manager          |                                                            |
| <mark style="color:blue;">**INTEGRATIONS**</mark>     |                          |                                                            |
| Linking an Email Account to an Email Box              | Everybody                | The user's actions do not affect others' integrations.     |
| Linking Individual Email Boxes                        | Everybody                | The user's actions do not affect others' integrations.     |
| Google Drive Integration                              | Everybody                | The user's actions do not affect others' integrations.     |
| Google Calendar Integration                           | Everybody                | The user's actions do not affect others' integrations.     |
| Slack Integration                                     | Admin                    |                                                            |
| Webhook                                               | Everybody                | The user's actions do not affect others' integrations.     |
| API                                                   | Everybody                | The user's actions do not affect others' integrations.     |


# Time-Offs

To view and add time-offs and holidays, visit [Time-offs page](https://cubicl.io/timeoffs).

## Adding Time-Offs

Time-offs can be added both for organization and members via the Time-Offs page on the Navigation Menu. Only **account managers** have the authority to add them.

### Organization Time Offs

Organization Time Offs are shown on the Gantt Chart, Timeline Chart, and Calendar of the project. In this way, while assigning tasks, you can check who is available.

![Organization Time Offs](/files/-Mb2lPV9pYFI74bsrjUZ)

### Member Time Offs

Member time offs are shown on the Timeline Chart.

![Member Time Offs](/files/-Mb2lXeO0GUhvnP81DC_)

### Time Off Requests

From this field, users can submit their time offs for the approval of their admins. To add a time off, select the reason, the date and which project admin you want to submit it for approval from the **Member Time Offs** field on the **Time Offs** page and create the time off.

<figure><img src="/files/sGs89ZaFCbkW0MKmeIJy" alt=""><figcaption><p>Time Off Request</p></figcaption></figure>

A notification will be sent to the project admin you have selected regarding your time off request. The admin can access the request by clicking the notification or the "**Incoming Time Off Requests**" field at the top right of the **Member Time Offs** field. If the related setting is activated from the profile page, an e-mail will be sent to the admin about the time off request.

<figure><img src="/files/PVA37xo0t8BqjcJgjxmE" alt="" width="563"><figcaption><p>Incoming Time Off Requests</p></figcaption></figure>

When the admins clicks on the notification, they will be directed to the Time Offs page and the "Incoming Time Off Requests" button will be displayed at the top right of the Member Time Offs field. Clicking this button opens the request detail window and the admin can approve or reject requests from this field. After the admin approves or rejects the request, a notification will be sent to the user who created the time off request.&#x20;

**NOTE:** You cannot delete pending time off requests after creating them, only the admin can approve or reject them.

## View of Time Offs

### On the Timeline Chart:

Time offs for the organization and the members are shown on the timeline chart of a project:

![Time Offs on Timeline Chart](/files/-Mb2lx3udeppXbOImhHe)

### On the Gantt Chart:

If the dates of the time-off and tasks in the Gantt Chart overlap, updating the task is recommended. Here you can change the date of the task or the assignee of it. For more detailed information, visit the [Gantt Chart](/task-and-project-management/projects/gantt-chart/features#recommendation-to-update-gantt-chart-according-to-time-offs) page.

![Recommendation to Update](/files/-Mb2mLhAbdJTHp-dLw_A)

### On Chats:

Next to the name of the person on leave, the date until which they are on leave is displayed.

<figure><img src="/files/O1Uh4KZM5GyitIeHzzm7" alt="" width="200"><figcaption><p>On leave tag on the chat</p></figcaption></figure>

## Public Holidays View

Public holidays are shown on the Gantt Chart, Timeline, and Calendar pages. Public holidays are available on Cubicl by default.

<img src="/files/-Mb2l6Hq9Iw3V0e_lkEp" alt="National Holidays on Calendar" width="563">


# Introduction

Cubicl API integration documentation

API integration allows you to integrate Cubicl with your own software or other software you are using. You can send HTTP requests to get, create, edit and delete tasks, clients, files, and other records. This is a technical document. If you don't have a technical background, it is best to direct this document to a developer.

## Protocol

Cubicl uses a RESTful API. JSON is used for request body and responses. API URLs start with `https://cubicl.io/api/v1/`. For example, you need to send a request to the following URL to create a task:

```
https://cubicl.io/api/v1/tasks
```

Successful requests will return 200 or other HTTP status codes starting with 2. Following HTTP status codes are returned in case of error.

<table><thead><tr><th width="101.33333333333331">Status</th><th width="141">Name</th><th>Description</th></tr></thead><tbody><tr><td>400</td><td>Bad Request</td><td>Request parameters are missing or incorrectly formatted.</td></tr><tr><td>401</td><td>Unauthorized</td><td>Access token is invalid or missing.</td></tr><tr><td>403</td><td>Not Permitted</td><td>You don't have necessary permissions to do the operation.</td></tr><tr><td>404</td><td>Not Found</td><td>Resource does not exist.</td></tr><tr><td>405</td><td>Wrong Method</td><td>You have used the wrong HTTP method (GET, POST etc.). Check the API documentation to see which method is used for the request.</td></tr><tr><td>418</td><td>No Coffee</td><td>You are attempting to brew coffee but this request cannot be fulfilled since the server is a teapot.</td></tr><tr><td>422</td><td>Invalid Request</td><td>You are trying to do something which is not possible or does not make sense. Check the data you are working on.</td></tr><tr><td>429</td><td>Too Many Requests</td><td>You have sent too much requests in a short interval. You cannot send more than 120 requests per minute. Wait a bit and try again.</td></tr><tr><td>5xx</td><td>Server Error</td><td>An error occured in the server.</td></tr></tbody></table>

{% hint style="info" %}
You cannot send more than 60 requests per minute. Put a delay between requests if you plan to send them in a loop.
{% endhint %}

## Access Tokens

Cubicl uses `Bearer authentication scheme` for API access. In order to send requests to our API, you need to create an `access token` in the [Integrations Page](https://cubicl.io/integrations). When sending requests, send the access token in a header named Authorization as follows:

```
Authorization: Bearer YOUR_TOKEN_HERE
```

{% hint style="danger" %}
Access tokens allow you to send requests (access data or do operations) on behalf of a user. Because of that, they are sensitive data and must be treated as passwords. Do **NOT share** them with others. Do **NOT put them into shared or public code** repositories.

You can always remove access tokens in Cubicl interface to cut their access.
{% endhint %}

#### Permissions

Since access tokens allow access on behalf of a user, the corresponding user must have the necessary permissions to perform that action. User permissions are set in the Cubicl interface. Access tokens are created for each user separately. Because of that, you need to create the token in the account of the user on whose behalf you will be sending requests.

#### Separate Account

Actions done through API requests, such as creating a task, will look like as if they are done by the owner of the access token. If you need to separate automated API actions from the user's own actions, you may consider creating a new user account just for API access. This should also be considered when your API integration implementation requires a broad range of permissions that you don't want to give a user. Monthly or yearly subscription fees apply to these accounts as well since they are no different than a regular user account.

## Data and Representation

In the following pages, you will see the API endpoint details. The properties and format of the data sent in a request and returned from the server is explained here.

#### Representation

Data is represented in Typescript type definition format in this documentation. An example is given below with comments.

```typescript
type Task = {
    // Names and types of properties are shown as key-type pairs
    name: string,
    activityCount: number,
    completed: boolean,
    // Object types define type of each of their properties
    progress: {
        totalSteps: number,
        completed: number,
    },
    // Array types have square brackets next to the type name. Be aware that
    // properties can hold an array of objects or an array of arrays too.
    assigneeIds: string[],
    // If a field can be missing, it will have a "?" next to the property name. If
    // the field type can have different types or if it can be null, it will be
    // shown as a union of types with a "|" symbol.
    archivedAt?: Date | null,
}
```

#### IDs

IDs of the records are `string`s stored in `_id` the property. Example:

```
627fd586f8b23768c7261a63
```

#### Date Values

Dates in the requests and responses are sent as `Unix Timestamps` in **seconds**. Because of that, their types are shown as `number` in the API documentation.

#### Sparse Data

Unless specified otherwise, create and update requests only need the **required** fields. Other fields don't need to be set in the requests.

Records returned from the server may not contain all the fields if they are not set or unset before. Your code should be able to handle missing fields. In this case, accept them as null or a falsy value.

## Help

If you face any issues with the API documentation, access token generation or want a missing endpoint to be added, please contact us.


# Users

## Endpoints

## Get All Users

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/organization/users`

Gets all users who are currently a member of the organization.

Tasks and other records may refer to users who are removed from the organization or who are client portal users. Use [#get-users-by-id](#get-users-by-id "mention") endpoint to get their details.

{% tabs %}
{% tab title="200: OK User list" %}

```javascript
User[]
```

{% endtab %}
{% endtabs %}

## Get Users By Id

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/users`

Returns multiple users whose ids are given.

Cubicl keeps data created by (sent chat messages, task comments, etc.) and related (tasks assigned, etc.) to users even after they are removed from the organization account. In order to access their details, you can use this endpoint.

User ids in the records can belong to not only Cubicl users but also Client Portal users or email senders. This endpoint will return them too.

The email address is not included in the response.

#### Query Parameters

| Name                                  | Type   | Description                 |
| ------------------------------------- | ------ | --------------------------- |
| ids<mark style="color:red;">\*</mark> | string | Comma-separated list of ids |

{% tabs %}
{% tab title="200: OK User list" %}

```javascript
{
    _id : string;
    firstname: string;
    lastname: string;
    profile: string; // URL for profile photo
}[]
```

{% endtab %}
{% endtabs %}

## Get Me

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/app/me`

Returns information related to the currently authenticated user.

{% tabs %}
{% tab title="200: OK User Info" %}

```javascript
{
    _id : string;
    firstname: string;
    lastname: string;
    profile: string; // URL for profile photo
    jobTitle: string | null;
    language: string;
    localization: {
        dateFormat: string;
        timeFormat: string;
        timezone: number;
    };
    org: {
        name: string;
        countryCode: string;
        // Admin user ids
        admins: string[];
        isAdmin: boolean;
    }
}
```

{% endtab %}
{% endtabs %}

## Data

#### Users

```typescript
type User = {
    _id : string;
    firstname: string;
    lastname: string;
    email: string;
    profile: string; // URL for profile photo
}
```


# Projects

Projects are created as a group of users. Because of that the word and `group` and the `project` are the same thing in the API.

## Endpoints

## Get Projects

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/groups`

#### Query Parameters

| Name      | Type    | Description                                                                                                                                         |
| --------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| parent    | string  | <p>Parent project id.</p><p>If not set, gets all projects in the organization.</p>                                                                  |
| recursive | boolean | <p>Set <code>false</code> to get only direct children.</p><p>Set <code>true</code> to get all descendants.</p><p>Default is <code>false</code>.</p> |

{% tabs %}
{% tab title="200: OK Project list" %}

```typescript
Project[]
```

{% endtab %}
{% endtabs %}

## Data

#### Projects

```typescript
type Project = {
    _id: string;
    name: string;
    // Projects can have multiple parents. The root project has no parents.
    parents: string[] | null;
    // Admin user ids
    admins: string[];
    // Member user ids
    members: string[];
    // Child group ids
    groups: string[];
    // Task state definitions. Exists only when states are customized. Read
    // Task States section for more info.
    taskStates?: TaskState[];
    // Permissions set in the project. Only exists when project permissions
    // are customized. Read the Permissions section for more info.
    perms?: {
        members: PermissionLevels,
        everybody: PermissionLevels,
        // An object where keys are userIds and values are permission levels object
        users?: {
            [userId: string]: PermissionLevels,
        }
    }
}
```

#### Task States

```typescript
type TaskState = {
    name: string;
    type: 'waiting' | 'active' | 'completed' | 'suspended';
    color: string; // Hex color code
    textColor: string; // Hex color code
    // Shows whether this is the state tasks will be created in when the task
    // state is not specified in Create Task endpoint.
    isDefault?: boolean;
}
```

If task states are customized in the project, taskStates property will hold the list of task state definition objects. Otherwise, default values below are used.

<pre class="language-typescript"><code class="lang-typescript"><strong>[
</strong>	{
		name : 'cb_waiting',
		type : 'waiting',
		color : '#f39c12',
		textColor : '#fff',
		isDefault : true
	},
	{
		name : 'cb_active',
		type : 'active',
		color : '#2ecc71',
		textColor : '#fff'
	},
	{
		name : 'cb_completed',
		type : 'completed',
		color : '#d8d8d8',
		textColor : '#333'
	},
	{
		name : 'cb_suspended',
		type : 'suspended',
		color : '#7d5fff',
		textColor : '#fff'
	}
]
</code></pre>

#### Permissions

Permissions are set and checked in 4 steps in the following order:

1. Admins: Admins can perform all actions on the project. An admin has admin privilege in all descendant projects as well even if they are not a member of those projects.
2. User Permissions: If permissions are customized for a user, they will be used without checking the following steps. User permissions are available under `perms.users` property.
3. Project Members: General permissions are set for project members and other users. If the user is a project member, these permissions will be used without checking the following step.
4. Non-Project Members: These permission levels are defined in the `perms.everybody` property.

Permission levels are set for each main feature in the project, separately.

```typescript
type FeaturePermLevels = {
    // Used in Tasks, Calendar and Time Chart pages
    tasks: 'none' | 'view' | 'contribute' | 'edit' | 'manage',
    files: 'none' | 'view' | 'edit' | 'manage',
    gantt: 'none' | 'view' | 'edit',
    reports: 'none' | 'view',
}
```


# Tasks

Definitions of the types and formats of the data used in the endpoints can be found at the bottom of the page.

## Endpoints

## Get Tasks

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/tasks`

Gets tasks matching the given search criteria. Some details won't be returned in the response. Use Get Task By Id request to get all details.

#### Query Parameters

| Name       | Type   | Description                                                                                                                      |
| ---------- | ------ | -------------------------------------------------------------------------------------------------------------------------------- |
| group      | string | Project id                                                                                                                       |
| assignee   | string | Task assignee id                                                                                                                 |
| limit      | number |                                                                                                                                  |
| skip       | number |                                                                                                                                  |
| tag        | string | Tag name                                                                                                                         |
| customer   | string | Client id                                                                                                                        |
| assignedBy | string | Task owner id                                                                                                                    |
| startDate  | number | Start of time interval the task's start date or deadline falls into. Must be used with "endDate" parameter.                      |
| endDate    | number | Read "startDate"                                                                                                                 |
| archived   | string | <p>'true' to get archived tasks</p><p>'false' to get unarchived tasks</p><p>'all' to get all tasks</p><p>Default is 'false'</p>  |
| recursive  | string | <p>'true' to get tasks in descended projects too</p><p>Leave empty to get tasks only in given project</p><p>Default is empty</p> |
| search     | string | Text to search in task name                                                                                                      |
| include    | string | Comma separated list of properties to be included in the response                                                                |
| exclude    | string | Comma separated list of properties to be excluded in the response. Cannot be used together with include.                         |

{% tabs %}
{% tab title="200: OK List of tasks" %}

<pre class="language-typescript"><code class="lang-typescript"><strong>Task[]
</strong></code></pre>

{% endtab %}

{% tab title="403: Forbidden You don't have the permission to get tasks." %}

```javascript
{ code: 4 }
```

{% endtab %}
{% endtabs %}

## Get Task By Id

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/tasks/:id`

#### Path Parameters

| Name                                 | Type   | Description |
| ------------------------------------ | ------ | ----------- |
| id<mark style="color:red;">\*</mark> | string | Task id     |

{% tabs %}
{% tab title="200: OK Task details" %}

```javascript
Task
```

{% endtab %}

{% tab title="403: Forbidden You don't have the permission to get the task." %}

```javascript
{ code: 4 }
```

{% endtab %}
{% endtabs %}

## Create Task

<mark style="color:green;">`POST`</mark> `https://cubicl.io/api/v1/tasks`

#### Request Body

| Name                                    | Type                     | Description                                                                                                                                                                                                                                        |
| --------------------------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| group<mark style="color:red;">\*</mark> | string                   | Project id                                                                                                                                                                                                                                         |
| workFlowId                              | string                   | Set when task is being created with a workflow.                                                                                                                                                                                                    |
| parent                                  | string                   | Parent task id. Set when task is being created a subtask of another task.                                                                                                                                                                          |
| private                                 | boolean                  | Default is false                                                                                                                                                                                                                                   |
| recurrence                              | Recurrence               | If 'recurrent' is true, this should be set. Check below for recurrence details.                                                                                                                                                                    |
| recurrent                               | boolean                  | Default is false.                                                                                                                                                                                                                                  |
| steps                                   | CheckList \| ProgressBar | <p>If 'stepType' is 'steps', provide steps in CheckList format. Id field is not required. It will be set in the server.</p><p>If 'stepType' is 'progress', provide steps in ProgressBar format.</p><p>If 'stepType' is 'none', don't set this.</p> |
| stepType                                | string                   | <p>'none' for no task steps</p><p>'steps' for checklist</p><p>'progress' for progress bar</p><p>Default is 'none'</p>                                                                                                                              |
| files                                   | string\[]                | List of file ids. In order to create a file with files, you need to upload files before creating the task and set their ids here.                                                                                                                  |
| customer                                | string                   | Client id                                                                                                                                                                                                                                          |
| tags                                    | string\[]                | Tag ids                                                                                                                                                                                                                                            |
| priority                                | number                   | 1 to 5. 5 is highest. Default is 3.                                                                                                                                                                                                                |
| assignees                               | string\[]                | List of assignee ids                                                                                                                                                                                                                               |
| deadline                                | number                   |                                                                                                                                                                                                                                                    |
| start                                   | number                   | Start date                                                                                                                                                                                                                                         |
| desc                                    | string                   | Task description                                                                                                                                                                                                                                   |
| name<mark style="color:red;">\*</mark>  | string                   | Task name                                                                                                                                                                                                                                          |
| state                                   | string                   | State name. If not given, default state set in the project details will be used.                                                                                                                                                                   |
| estimatedTime                           | number                   | Estimated time of the task in seconds. Shown in the UI only when enabled in the project settings.                                                                                                                                                  |
| customFields                            | object                   | An object where keys are the custom field names and values are the values of those fields.                                                                                                                                                         |
| followers                               | string\[]                | Ids of task followers. If not set, task owner and assignees will be followers.                                                                                                                                                                     |

{% tabs %}
{% tab title="200: OK New task details" %}

```javascript
Task
```

{% endtab %}

{% tab title="422: Unprocessable Entity Invalid operation" %}

<pre class="language-javascript"><code class="lang-javascript"><strong>// Empty response
</strong><strong>// Potential causes:
</strong><strong>// - Invalid project
</strong><strong>// - Invalid parent task
</strong></code></pre>

{% endtab %}

{% tab title="403: Forbidden You don't have the permission" %}

```javascript
{ code: 4 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Task state does not exists" %}

```javascript
{ code: 503 }
```

{% endtab %}
{% endtabs %}

## Update Task

<mark style="color:orange;">`PUT`</mark> `https://cubicl.io/api/v1/tasks/:id`

Updates a task with given details. All details are optional. Only given fields are updated. If you need to unset a field, set its values to null or appropriate falsy value. For example, an empty string for strings.

#### Path Parameters

| Name                                 | Type   | Description |
| ------------------------------------ | ------ | ----------- |
| id<mark style="color:red;">\*</mark> | string | Task id     |

#### Request Body

| Name           | Type                     | Description                                                                                                                                      |
| -------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| assignees      | string\[]                | Assignee id list                                                                                                                                 |
| followers      | string\[]                | Follower id list                                                                                                                                 |
| customer       | string                   | Client id                                                                                                                                        |
| deadline       | number                   | Deadline                                                                                                                                         |
| desc           | string                   | Description                                                                                                                                      |
| group          | string                   | The project id to which the task is to be moved                                                                                                  |
| files          | string\[]                | File id list                                                                                                                                     |
| recurrent      | boolean                  | Boolean                                                                                                                                          |
| recurrence     | Recurrence               | Task recurrence details                                                                                                                          |
| name           | string                   | Task name                                                                                                                                        |
| workflowId     | string                   | Workflow id                                                                                                                                      |
| start          | number                   | Start date                                                                                                                                       |
| steps          | Checklist \| ProgressBar | Required when 'stepType' is 'steps' or 'progress'                                                                                                |
| stepType       | string                   | 'none', 'steps' or 'progress'                                                                                                                    |
| private        | boolean                  |                                                                                                                                                  |
| state          | string                   | Task state name. Required when moving the task to a different project and changing to a different state within that project.                     |
| subtasks       | string\[]                | Subtask id list                                                                                                                                  |
| estimatedTime  | number                   | Estimated task duration in seconds                                                                                                               |
| customFields   | object                   | An object where keys are field names and values are field values.                                                                                |
| updateTemplate | boolean                  | If task is recurrent this field will determine whether to update the details only on the task itself or including the future copies of the task. |

{% tabs %}
{% tab title="200: OK Updated task details and task update activity" %}

```javascript
{
    activity: TaskActivity,
    task: Task
}
```

{% endtab %}

{% tab title="403: Forbidden You don't have the permission" %}

```javascript
{
    // 4: No permission to update task details
    // 804: No permission to move the task out of the project
    // 805: No permission to move the task into the project
    code: number
}
```

{% endtab %}

{% tab title="422: Unprocessable Entity Invalid operation" %}

```javascript
// Following object or empty response for unknown error
{
    // 403: This update changes the Gantt Chart and you have no permission for that
    // 406: Task in the Gantt Chart must have dates.
    // 503: Task state does not exist
    // 604: Archived tasks cannot be updated
    code: number
}
```

{% endtab %}
{% endtabs %}

## Delete Task

<mark style="color:red;">`DELETE`</mark> `https://cubicl.io/api/v1/tasks/:id`

Deletes the task with given id.

#### Path Parameters

| Name                                 | Type   | Description |
| ------------------------------------ | ------ | ----------- |
| id<mark style="color:red;">\*</mark> | string | Task id     |

{% tabs %}
{% tab title="200: OK Empty response" %}

```javascript
```

{% endtab %}

{% tab title="403: Forbidden You don't have the permission." %}

```javascript
{ code: 4 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Invalid operation" %}

```javascript
// Following object or empty response for unknown error
{
    // 4: This operation requires to delete subtasks but you have no permission for that
    // 403: This update changes the Gantt Chart and you have no permission for that
    code: number
}
```

{% endtab %}
{% endtabs %}

## Add Subtask to Task

<mark style="color:green;">`POST`</mark> `https://cubicl.io/api/v1/tasks/:id/subtasks`

#### Path Parameters

| Name                                 | Type   | Description |
| ------------------------------------ | ------ | ----------- |
| id<mark style="color:red;">\*</mark> | string | Task ID     |

#### Request Body

| Name                                      | Type   | Description                                  |
| ----------------------------------------- | ------ | -------------------------------------------- |
| subtask<mark style="color:red;">\*</mark> | string | The ID of the task to be added as a subtask. |

{% tabs %}
{% tab title="200: OK Empty response" %}

```javascript
```

{% endtab %}

{% tab title="403: Forbidden You don't have the permission." %}

```javascript
{ code: 4 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity A task higher in the hierarchy cannot be added as a subtask." %}

```javascript
{ code: 802 }
```

{% endtab %}
{% endtabs %}

## Update Task State

<mark style="color:orange;">`PUT`</mark> `https://cubicl.io/api/v1/tasks/:id/state`

Changes the state of a task to the given state. The default states for a project are Pending, Active, Completed, and Suspended. These states are recorded in the system as `cb_waiting`, `cb_active`, `cb_completed`, and `cb_suspended`, respectively. When using default states, the recorded values must be sent.

#### Path Parameters

| Name                                 | Type   | Description |
| ------------------------------------ | ------ | ----------- |
| id<mark style="color:red;">\*</mark> | string | Task id     |

#### Request Body

| Name                                    | Type   | Description          |
| --------------------------------------- | ------ | -------------------- |
| value<mark style="color:red;">\*</mark> | string | New task state name. |

{% tabs %}
{% tab title="200: OK Task State Activity" %}

```javascript
TaskStateActivity
```

{% endtab %}

{% tab title="403: Forbidden You don't have the permission" %}

```javascript
{ code: 4 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Task state does not exists" %}

```javascript
{ code: 503 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Invalid operation" %}

```javascript
// Error message
// Potential causes:
// - Archived tasks cannot have their state updated.
// - The task is already in the desired state.
```

{% endtab %}
{% endtabs %}

## Create Task Comment

<mark style="color:green;">`POST`</mark> `https://cubicl.io/api/v1/tasks/:id/activities`

Creates a comment on a task.

#### Path Parameters

| Name                                 | Type   | Description |
| ------------------------------------ | ------ | ----------- |
| id<mark style="color:red;">\*</mark> | string | Task ID     |

#### Request Body

| Name      | Type       | Description                                                                                                                                                                                 |
| --------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| content   | string     | The content of the comment. Either 'content' or 'fileIds' must be provided.                                                                                                                 |
| fileIds   | string\[]  | List of file IDs. In order to create a comment with files, you need to upload the files before creating the comment and set their IDs here. Either 'fileIds' or 'content' must be provided. |
| mentions  | Mention\[] | List of users mentioned in the comment.                                                                                                                                                     |
| replyToId | string     | The ID of the comment you want to reply to.                                                                                                                                                 |

{% tabs %}
{% tab title="200: OK Task Activity" %}

```javascript
TaskActivity
```

{% endtab %}

{% tab title="403: Forbidden You don't have the permission." %}

```javascript
{ code: 4 }
```

{% endtab %}
{% endtabs %}

## Change Task Comment Visibility

<mark style="color:orange;">`PUT`</mark> `https://cubicl.io/api/v1/tasks/:taskId/activities/:activityId`

In support requests and tasks shared with your client, you can change the visibility of your comment for your portal client. When comments in email tasks are made visible, the comment is sent as an email.

#### Path Parameters

| Name                                         | Type   | Description                                               |
| -------------------------------------------- | ------ | --------------------------------------------------------- |
| taskId<mark style="color:red;">\*</mark>     | string | Task ID                                                   |
| activityId<mark style="color:red;">\*</mark> | string | The ID of the activity whose visibility is to be changed. |

#### Request Body

| Name                                    | Type    | Description                                                                                        |
| --------------------------------------- | ------- | -------------------------------------------------------------------------------------------------- |
| value<mark style="color:red;">\*</mark> | boolean | Determines the visibility of the comment. `true` makes it visible, `false` removes the visibility. |

{% tabs %}
{% tab title="200: OK Empty response" %}

```javascript
```

{% endtab %}

{% tab title="403: Forbidden You don't have the permission." %}

```javascript
{ code: 4 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Invalid operation" %}

```javascript
// Error message
// Potential causes:
// - Only activities of type "post" can have their visibility changed.
// - Visibility can only be changed for support requests, tasks shared with customers, or email tasks.
// - The visibility of comments created by portal or email users cannot be changed.
// - The visibility of comments made visible in email tasks cannot be removed.
```

{% endtab %}
{% endtabs %}

## Get Task Activities

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/tasks/:id/activities`

#### Path Parameters

| Name                                 | Type   | Description |
| ------------------------------------ | ------ | ----------- |
| id<mark style="color:red;">\*</mark> | string | Task id     |

{% tabs %}
{% tab title="200: OK Task Activities" %}

```javascript
TaskActivity[]
```

{% endtab %}

{% tab title="403: Forbidden You don't have the permission" %}

```javascript
{ code: 4 }
```

{% endtab %}
{% endtabs %}

## Data

#### Task

Details of a task.

```typescript
{
    _id: string;
    name: string;
    desc: string;
    state: string;
    start: number | null; // Start date
    deadline: number | null;
    assignees: string[]; // Assignee ids
    assignedBy: string; // Owner id
    followers: string[];
    // Ids of the portal users who follow this task if task is shared in
    // the client portal
    portalFollowers?: string[];
    // From 1 to 5. 5 is the highest.
    priority: number;
    // A score to sort same-priority tasks among themselves. 
    // Lowest score is shown at the top.
    priorityScore: number;
    // Project id
    group: string;
    completedAt: number;
    archivedAt?: number | null;
    /* none: Task has no steps
     * steps: Task has a checklist
     * progress: Task has a progress bar
     */
    stepType: 'none' | 'steps' | 'progress';
    // Check below for definitions of these types
    steps?: CheckList | ProgressBar;
    customer: {
        _id: string,
        name: string,
    } | null,
    createdAt: number;
    files: { _id: string }[];
    tags: string[];
    subtasks: string[];
    parent: string | null;
    // This property exists if task is created for an incoming mail
    // An id is created for the email sender
    email?: {
        emailUserId: string,
    };
    // This property exists if task is created for a support request
    // through the Client Portal feature
    support?: {
        portalUser: string, // Id of the client portal user
    };
    private: boolean;
    sharedWithCustomer?: boolean;
    // Exists if task belongs to a workflow
    workflow?: {
        id: string,
        templateId: string,
        isCompleted: boolean,
        taskflowId: string
    };
    estimatedTime?: number; // Duration in seconds
    // If task has custom fields, holds the name and value for each field
    customFields?: {[fieldName: string]: string};
    // If task is recurrent, shows if this is the newest copy
    lastCopy?: boolean;
}
```

#### Task Steps

Tasks can have a checklist or a progress bar to indicate the steps / overall progress.

```typescript
type ProgressBar = {
    completed: number;
    total: number;
}

type CheckList = TaskStep[];

type TaskStep = {
    id: string;
    name: string;
    desc?: string;
    assignees: string[]; // Ids of the step assignees
    /* Task steps are recursive. They can have sub-steps too.
     * If not set, the step has no sub-steps.
     * If 'steps', a property named 'steps' holds sub-steps.
     * If 'progress', this step object has a property named 'total'.
     */
    stepType?: 'steps' | 'progress';
    steps?: CheckList;
    // If 'stepType' is 'progress', this is a number and indicates the total number
    // of steps in the bar. Otherwise, a boolean to indicate completion.
    completed: boolean | number;
    // Set when 'stepType' is 'progress'
    total?: number;
}
    
```

#### Recurrence

```typescript
type Recurrence = {
    type: 'daily' | 'weekly' | 'monthly';
    // Example: Set 3 for task to be copied every 3 days/weeks/months.
    period: number;
    // New copy is created after task deadline or when task is completed
    createWhen: 'after-deadline' | 'completed';
    // If true, recurrence continues. Otherwise, it will pause.
    active: boolean;
    /* 'none': Continues indefinitely
     * 'date': Continues until given date in the 'end' parameter.
     * 'count': Continues until amount of copies set in 'maxCount' parameter
     * are created. The task itself is the first copy. So if, maxCount is 1,
     * no copies will be created.
     */
    stopCondition: 'none' | 'date' | 'count';
    end?: number;
    maxCount?: number;
    // If 'type' is 'weekly' you can set in which days of the week a copy should
    // be created. The list is the days of the week indicating whether that day
    // a copy should be created. Starts with Monday.
    days?: boolean[];
}
```

#### Task Activity

Update and progress actions and messages on tasks create task activities.

```typescript
type TaskActivity = {
    _id: string;
    // Id of the user who did the activity
    user: string;
    // Id of the portal user who created the activity. Exists only when
    // activity is created in the Client Portal by a portal user.
    portalUser?: string;
    // Id of the email sender. Exists when the activity is created due to
    // an incoming mail.
    emailUser?: string;
    type:
        | 'post' // A post (comment) on the task
        | 'update' // Task is updated
        | 'progress' // Task step completed/uncompleted, progress changed
        | 'archive' // Task is archived
        | 'restore' // Task is restored from the archive
        | 'state-change' // Task state is changed
        | 'delete'; // Task is deleted
    // Holds the info about the update. The shape depends on the 'type'
    data?: object;
    // If 'type' is 'post', holds the comment content
    content?: string;
    // If 'type' is 'post', holds the file details
    files?: File[] = [];
    createdAt: number;
    // If activity is a reply to a previous post, keeps the referenced activity id
    replyToId?: string;
    // Whether the activity (post) is shared with a Client Portal user.
    customerCanSee: boolean;
    // List of users mentioned in the post
    mentions: Mention[];
    customFields?: {
        fieldName: string;
        value: string;
    }[];
    // If a task is created from an incoming email
    emailDetails?: EmailDetails;
    // If task is created for an incoming email, posts on the task can be sent
    // as email. This holds the state of the mail.
    mailStatus?: 'not-sent' | 'sending' | 'sent' | 'mail-box-error' | 'error';
}

type Mention = {
    id: string;  // User id
    name: string; // Text used to mention user in the post
}

type EmailDetails = {
    to: EmailPerson[];
    cc: EmailPerson[];
    from: EmailPerson;
}

type EmailPerson = {
    name: string;
    emailAddress: string;
}
```

#### Task State

```typescript
type TaskState = {
    name: string;
    type: 'waiting' | 'active' | 'completed' | 'suspended' | 'cancelled';
    color: string;
    textColor: string;
    isDefault?: boolean;
}

type TaskStateActivity = {
    _id: string;
    // Id of the user who did the activity
    user: string;
    task: string;
    type: 'state-change';
    data: {
        oldState: TaskState;
        newState: TaskState;
    };
}  
```

#### Default Task States

If task states are not customized for the project, default states are used. These values are translated into the user's language when shown in the UI. These values are:

| State Value   | Translation in UI |
| ------------- | ----------------- |
| cb\_waiting   | Pending           |
| cb\_active    | Active            |
| cb\_completed | Completed         |
| cb\_suspended | Suspended         |

You can check the project object to see whether task states are customized or defaults are being used.


# Files

This document contains endpoints for

1. Uploading files to different parts of the app
2. Files feature in the projects

## Uploading and Downloading

Files can be uploaded to tasks, task activities, chat messages, clients, and the files page. For all of these operations, first, you need to send a request to upload the file. After the upload completes, the server will return the id of the file. Then, you can use this id in other API endpoints.

## Upload File

<mark style="color:green;">`POST`</mark> `https://cubicl.io/api/v1/files/upload`

Uploads a file to use later. Returns the details of the saved file.

Unlike other API endpoints, this endpoint accepts a `multipart/form-data` request. The `Content-Length` header must be set to the size of the form data.

Files up to 4GB (4 million KB) in size are supported.

#### Request Body

| Name | Type | Description                 |
| ---- | ---- | --------------------------- |
| file | blob | File content and file name. |

{% tabs %}
{% tab title="200: OK File Details" %}

```javascript
File
```

{% endtab %}

{% tab title="400: Bad Request Invalid parameters" %}

```javascript
// Error details
```

{% endtab %}

{% tab title="403: Forbidden Storage space is full" %}

```javascript
{
    code: 204,
    // Size in bytes
    totalCapacity: number,
    totalSize: number,
}
```

{% endtab %}
{% endtabs %}

## Get Download Link

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/files/:id/url`

Files uploaded to Cubicl cannot be accessed without authorization. In order to download a file, you need to request a download link. Then, you can send an HTTP request to the returned link to download the file. Links have a 5-minute lifetime. After that, you need to get another link.

#### Path Parameters

| Name                                 | Type   | Description |
| ------------------------------------ | ------ | ----------- |
| id<mark style="color:red;">\*</mark> | string | File id     |

{% tabs %}
{% tab title="200: OK Download URL in JSON format" %}

```javascript
string
```

{% endtab %}
{% endtabs %}

## Files Page Endpoints

These endpoints allow you to view, create, edit and delete files and folders in the Files page of a project and a client.

Cubicl allows you to organize files and directories for both projects and also clients.

The structure of the Files page is similar to the file system in a computer or other file storage services such as Google Drive. It consists of nested file and directory nodes. At the top, a root directory node exists. Directories hold child file and directory nodes. File nodes are not same as the file record returned from [#upload-file](#upload-file "mention") endpoint. File node records point to file records.

## Get Nodes

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/file-system-nodes`

Gets file and directory nodes in a directory. The request should be sent with either 'group' or 'customer' parameters.

#### Query Parameters

| Name     | Type   | Description                                                                                                                    |
| -------- | ------ | ------------------------------------------------------------------------------------------------------------------------------ |
| group    | string | Project id                                                                                                                     |
| customer | string | Client id                                                                                                                      |
| parent   | string | <p>Id of the directory to search.</p><p>Use 'null' for root directory.</p><p>If not given, will search in all directories.</p> |
| search   | string | Will be searched in file and directory names                                                                                   |

{% tabs %}
{% tab title="200: OK List of file system nodes" %}

```javascript
FileSystemNode[]
```

{% endtab %}
{% endtabs %}

## Create Files

<mark style="color:green;">`POST`</mark> `https://cubicl.io/api/v1/file-system-nodes/files`

Creates file nodes for uploaded files.

Files can be create in either a project's or client's files page. Either `group` or `customer` parameter must be set.

#### Request Body

| Name                                     | Type           | Description                                                           |
| ---------------------------------------- | -------------- | --------------------------------------------------------------------- |
| group                                    | string         | Project id if file is being created in a project's files page         |
| customer                                 | string         | Client id if file is being created in a client's files page           |
| parent<mark style="color:red;">\*</mark> | string \| null | <p>Parent directory id</p><p>null if parent is the root directory</p> |
| files<mark style="color:red;">\*</mark>  | string\[]      | File id list                                                          |

{% tabs %}
{% tab title="200: OK File system node list" %}

```javascript
FileSystemNode[]
```

{% endtab %}
{% endtabs %}

## Create Directory

<mark style="color:green;">`POST`</mark> `https://cubicl.io/api/v1/file-system-nodes/directories`

Creates a directory node.

Files can be created on either a project's or a client's files page. Either `group` or `customer` parameters must be set.

#### Request Body

| Name                                     | Type           | Description                                                           |
| ---------------------------------------- | -------------- | --------------------------------------------------------------------- |
| group                                    | string         | Project id if directory is being created in a project's files page    |
| customer                                 | string         | Client id if directory is being created in a client's files page      |
| parent<mark style="color:red;">\*</mark> | string \| null | <p>Parent directory id</p><p>null if parent is the root directory</p> |
| name<mark style="color:red;">\*</mark>   | string         | Directory name                                                        |

{% tabs %}
{% tab title="200: OK File system node" %}

```javascript
FileSystemNode
```

{% endtab %}
{% endtabs %}

## Delete Nodes

<mark style="color:red;">`DELETE`</mark> `https://cubicl.io/api/v1/file-system-nodes`

Deletes file and directory nodes from a project or a client.

File nodes are deleted together with the file records and the uploaded file. Multiple nodes from different projects or clients cannot be deleted in a single request.

#### Request Body

| Name                                    | Type      | Description  |
| --------------------------------------- | --------- | ------------ |
| nodes<mark style="color:red;">\*</mark> | string\[] | Node id list |

{% tabs %}
{% tab title="204: No Content No content" %}

```javascript
```

{% endtab %}
{% endtabs %}

## Data

#### File

```typescript
type File = {
    _id: string;
    name: string;
    thumbnail?: string; // Link to thumbnail URL if file is a supported image
    // If file is attached from Google Drive
    google?: {
        id: string;
        extension: string;
        webViewLink: string;
        mimeType: string;
    },
    // If file is attached from Dropbox
    dropbox?: {
        id: string;
        webViewLink: string;
    }
}
```

#### File System Node

```typescript
type FileSystemNode = {
    _id : string;
    // Parent directory id. null when parent is the root directory
    parent: string | null;
    group?: string; // Project id
    customer?: string; // Cliend id
    type: 'f' | 'd'; // f for file, d for directory
    file: File | null; // File when type is 'f', null when type is 'd'
    // Set when type is 'd'. If type is 'f', get name from 'file' property.
    name?: string;
    createdAt: number;
}
```


# Clients

Definitions of the types and format of the data used in the endpoints can be found at the bottom of the page.

## Endpoints

## Get Clients

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/crm/customers`

Gets clients matching the search criteria.

#### Query Parameters

| Name             | Type   | Description                                                                                                                                                                                                  |
| ---------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| name             | string | <p>Text to be searched in client name.</p><p>A match will occur only if a word in the client name <strong>starts with</strong> the given search text.</p><p>Search is <strong>case insensitive</strong>.</p> |
| email            | string | <p>Text to be searched in client or contact mail addresses.</p><p>Search is <strong>case insensitive.</strong></p>                                                                                           |
| includeAllFields | string | <p><code>true</code> to get all client fields.</p><p><code>false</code> to get only <code>name</code>.</p><p>Default is <code>false</code>.</p>                                                              |
| skip             | number | Default is 0.                                                                                                                                                                                                |
| limit            | number | Default is 10.                                                                                                                                                                                               |

{% tabs %}
{% tab title="200: OK List of clients" %}

```javascript
Client[]
```

{% endtab %}
{% endtabs %}

## Get Client By Id

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/crm/customers/:id`

**Path Parameters**

| Name                                 | Type   | Description |
| ------------------------------------ | ------ | ----------- |
| id<mark style="color:red;">\*</mark> | string | Client ID   |

{% tabs %}
{% tab title="200: OK Client details" %}

```javascript
Client
```

{% endtab %}

{% tab title="403: Forbidden You don't have the permission to view clients." %}

```javascript
{ code: 4 }
```

{% endtab %}
{% endtabs %}

## Create Client

<mark style="color:green;">`POST`</mark> `https://cubicl.io/api/v1/crm/customers`

Check the Client type definition below for field descriptions.

#### Request Body

| Name                                   | Type       | Description |
| -------------------------------------- | ---------- | ----------- |
| name<mark style="color:red;">\*</mark> | string     |             |
| fullname                               | string     |             |
| email                                  | string     |             |
| phone                                  | string     |             |
| contacts                               | Contact\[] |             |
| customFields                           | object     |             |
| portalCustomerManagerIds               | string\[]  |             |

{% tabs %}
{% tab title="200: OK Client details" %}

```javascript
Client
```

{% endtab %}
{% endtabs %}

## Update Client

<mark style="color:orange;">`PUT`</mark> `https://cubicl.io/api/v1/crm/customers/:id`

Check the Client type definition below for field descriptions.

#### Request Body

| Name                                   | Type       | Description |
| -------------------------------------- | ---------- | ----------- |
| name<mark style="color:red;">\*</mark> | string     |             |
| fullname                               | string     |             |
| email                                  | string     |             |
| phone                                  | string     |             |
| contacts                               | Contact\[] |             |
| customFields                           | object     |             |
| portalCustomerManagerIds               | string\[]  |             |

{% tabs %}
{% tab title="200: OK Client details" %}

```javascript
Client
```

{% endtab %}
{% endtabs %}

## Delete Client

<mark style="color:red;">`DELETE`</mark> `https://cubicl.io/api/v1/crm/customers/:id`

{% tabs %}
{% tab title="200: OK No content" %}

{% endtab %}
{% endtabs %}

## Data

#### Clients

```typescript
type Client = {
    _id: string;
    name: string; // A short name shown in UI and used for search
    phone: string;
    email: string;
    fullname: string;
    // People working at this client you are in contact with
    contacts: Contact[];
    // An object where keys are custom field ids and values are field values
    // customFields can be null
    customFields: {
        [fieldId: string]: string | null
    } | null;
    // List of user ids who get notifications for activities from portal users
    // of this client
    portalCustomerManagerIds: string[];
    createdAt: number;
}
```

#### Contacts

```typescript
type Contact = {
    name: string;
    position: string;
    phone: string;
    email: string;
}
```


# Chat

The chat feature is organized by chat threads and messages in the chat threads.

## Endpoints

## Get Chat Threads

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/chat/threads`

{% tabs %}
{% tab title="200: OK Chat thread list" %}

```javascript
ChatThread[]
```

{% endtab %}
{% endtabs %}

## Get Messages

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/chat/threads/:threadId/messages`

Gets messages in a chat thread.

#### Path Parameters

| Name                                       | Type   | Description                                                            |
| ------------------------------------------ | ------ | ---------------------------------------------------------------------- |
| threadId<mark style="color:red;">\*</mark> | string | Chat thread id                                                         |
| after                                      | string | Message id. Messages sent after this message will be returned.         |
| before                                     | string | Message id. Latest messages sent before this message will be returned. |
| search                                     | string | A text to be searched in message content.                              |
| limit                                      | number |                                                                        |

{% tabs %}
{% tab title="200: OK Message list" %}

```javascript
ChatMessage[]
```

{% endtab %}
{% endtabs %}

## Send Message

<mark style="color:green;">`POST`</mark> `https://cubicl.io/api/v1/chat/messages`

Messages are sent to threads or users. When there is not a thread between two users yet, you need to set `to` parameter with the receiver user's id. After the first message, a thread will be created. You should set `thread` parameter for existing threads.

Either `thread` or `to` parameter must be set.

Either `content` or `files` parameter must be set.

#### Request Body

| Name    | Type      | Description                                          |
| ------- | --------- | ---------------------------------------------------- |
| thread  | string    | Thread id                                            |
| to      | string    | User id                                              |
| content | string    | Message content                                      |
| files   | string\[] | File id list                                         |
| replyTo | string    | Message id. If message is a reply to another message |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    //  Newly created message ID
    message: string,
    // This exists if a new thread is created with this request.
    // New thread is created when a user sends a message to another user
    // for the first time.
    thread?: ChatThread
}
```

{% endtab %}
{% endtabs %}

## Data

#### Chat Threads

Chat messages are sent in a thread. Threads have 3 types:

1. personal: Between 2 users. Created when a user sends a message to another user.
2. group: Created for each project. All project members are members of these threads.
3. custom: Created among a group of users by users themselves. This is a private chat group.

```typescript
type ChatThread = {
    _id: string;
    type: 'personal' | 'group' | 'custom';
    // Project id. Exists when type is 'group'
    group?: string;
    // Name of the thread. Exists when type is 'custom'
    name?: string;
    // Ids of users in the chat thread. Exists when type is 'personal' or 'custom'
    users: string[];
    // Date of last activity (message) in the thread
    activity: number;
    // Date at which current user viewed the thread. 0 if not accessed before.
    access: number;
    lastMessage: ChatMessage | null;
    // Number of new messages since last access.
    newActivityCount: number;
    createdAt: number;
}
```

#### Chat Messages

```typescript
type ChatMessage = {
    _id: string;
    // Thread id
    thread: string;
    // Id of the user who sent the message
    from: string;
    content: string;
    // File attachments in the message. Check Files page for data format.
    files: File[];
    // Ids of the users who liked the message
    likes: string[];
    dislikes: string[];
    // If a message is a reply to another message, this will be the referenced
    // message id
    replyTo: string | null;
    createdAt: number;
}
```


# Bookkeeping

Definitions of the types and formats of the data used in the endpoints can be found at the bottom of the page.

## Endpoints

## Get Page

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/bookkeeping/page`

Fetches current account, activities and statistics required for bookkeeping.

{% tabs %}
{% tab title="200: OK Page data. It contains activities, entries, payables and receivables." %}

```typescript
{
    activities : BookkeepingActivity[],
    entries : BookkeepingEntry[],
    payables : {
        total : number,
        outstanding : number,
        overdue : number,
        currency : string
    },
    receivables : {
        total : number,
        outstanding : number,
        overdue : number,
        currency : string
    }
}
```

{% endtab %}

{% tab title="403: Forbidden You don't have the permission." %}

```javascript
{ code : 4 }
```

{% endtab %}
{% endtabs %}

## Fetch Entry Activities

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/bookkeeping/activities`

#### Query Parameters

| Name                                    | Type   | Description |
| --------------------------------------- | ------ | ----------- |
| entry<mark style="color:red;">\*</mark> | String | Entry id    |

{% tabs %}
{% tab title="200: OK Entry's activities" %}

```javascript
BookkeepingActivity[]
```

{% endtab %}

{% tab title="403: Forbidden You don't have the permission." %}

```javascript
{ code : 4 }
```

{% endtab %}

{% tab title="404: Not Found Entry not found" %}

```javascript
{ code : 1501 }
```

{% endtab %}
{% endtabs %}

## Fetch Entry Details

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/bookkeeping/entries/{entry}`

#### Path Parameters

| Name                                    | Type   | Description |
| --------------------------------------- | ------ | ----------- |
| entry<mark style="color:red;">\*</mark> | String | Entry id    |

{% tabs %}
{% tab title="200: OK Entry's detail" %}

```javascript
BookkeepingEntry
```

{% endtab %}

{% tab title="403: Forbidden You don't have the permission." %}

```javascript
{ code : 4 }
```

{% endtab %}

{% tab title="404: Not Found Entry not found" %}

```javascript
{ code : 1501 }
```

{% endtab %}
{% endtabs %}

## Add Entry

<mark style="color:green;">`POST`</mark> `https://cubicl.io/api/v1/bookkeeping/entries`

Adds a receivable or payable entry for a client.

#### Request Body

| Name                                       | Type   | Description                                                                                                                                                                                                                                         |   |                                                                                                                                          |
| ------------------------------------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | ---------------------------------------------------------------------------------------------------------------------------------------- |
| customer<mark style="color:red;">\*</mark> | String | Client id                                                                                                                                                                                                                                           |   |                                                                                                                                          |
| dueAt                                      | Number | Due date. Payment is expected to be made before this date.                                                                                                                                                                                          |   |                                                                                                                                          |
| paidAmount                                 | Number | How much of the total is paid? It must be greater than 0 and less than the total amount.                                                                                                                                                            |   |                                                                                                                                          |
| desc                                       | String | Receivable or payable entry description.                                                                                                                                                                                                            |   |                                                                                                                                          |
| name<mark style="color:red;">\*</mark>     | String | Receivable or payable entry name.                                                                                                                                                                                                                   |   |                                                                                                                                          |
| currency<mark style="color:red;">\*</mark> | String | <p>Currency. It must contain one of the following values:</p><p></p><p>TRY, USD, EUR, GBP, AUD, CAD, CHF, CNY, HKD, NZD, SEK, KRW, SGD, NOK, MXN, INR, ZAR, RUB, BRL, JPY, TWD, DKK, PLN, THB, IDR, HUF, CZK, ILS, PHP, AED, COP, SAR, MYR, RON</p> |   |                                                                                                                                          |
| amount<mark style="color:red;">\*</mark>   | Number | Current account balance. It must be greater than 0.                                                                                                                                                                                                 |   |                                                                                                                                          |
| type<mark style="color:red;">\*</mark>     | String | <p>receivable                                                                                                                                                                                                                                       |   | payable<br><br>receivable: The payment you will receive from your clients.<br><br>payable: The payment you will pay to your clients.</p> |

{% tabs %}
{% tab title="200: OK New entry with activity, payment and payment activity" %}

```javascript
{
    entry : BookkeepingEntry
    entryActivity : BookkeepingActivity,
    payment? : BookkeepingPayment // Exists if paidAmount is given
    paymentActivity? : BookkeepingActivity // Exists if paidAmount is given
}
```

{% endtab %}

{% tab title="403: Forbidden You don't have the permission." %}

```javascript
{ code : 4 }
```

{% endtab %}

{% tab title="404: Not Found Client not found" %}

```javascript
{ code : 303 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Your organization's current plan has insufficient. You can upgrade it." %}

```javascript
{ code : 1201 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Currency not supported" %}

```javascript
{ code : 1504 }
```

{% endtab %}
{% endtabs %}

## Update Entry Details

<mark style="color:orange;">`PUT`</mark> `https://cubicl.io/api/v1/bookkeeping/entries/{entry}`

#### Path Parameters

| Name                                    | Type   | Description |
| --------------------------------------- | ------ | ----------- |
| entry<mark style="color:red;">\*</mark> | String | Entry id    |

#### Request Body

| Name                                       | Type   | Description                                                                                                                                                                                                                                         |   |                                                                                                                                          |
| ------------------------------------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | ---------------------------------------------------------------------------------------------------------------------------------------- |
| type<mark style="color:red;">\*</mark>     | String | <p>receivable                                                                                                                                                                                                                                       |   | payable<br><br>receivable: The payment you will receive from your clients.<br><br>payable: The payment you will pay to your clients.</p> |
| currency<mark style="color:red;">\*</mark> | String | <p>Currency. It must contain one of the following values:</p><p></p><p>TRY, USD, EUR, GBP, AUD, CAD, CHF, CNY, HKD, NZD, SEK, KRW, SGD, NOK, MXN, INR, ZAR, RUB, BRL, JPY, TWD, DKK, PLN, THB, IDR, HUF, CZK, ILS, PHP, AED, COP, SAR, MYR, RON</p> |   |                                                                                                                                          |
| name<mark style="color:red;">\*</mark>     | String | Receivable or payable entry name.                                                                                                                                                                                                                   |   |                                                                                                                                          |
| desc                                       | String | Receivable or payable entry description.                                                                                                                                                                                                            |   |                                                                                                                                          |
| dueAt                                      | Number | Due date. Payment is expected to be made before this date.                                                                                                                                                                                          |   |                                                                                                                                          |

{% tabs %}
{% tab title="200: OK Updated entry" %}

```javascript
BookkeepingEntry
```

{% endtab %}

{% tab title="403: Forbidden You don't have the permission." %}

```javascript
{ code : 4 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Paid amount cannot be greater than entry amount" %}

```javascript
{ code : 1503 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Your organization's current plan has insufficient. You can upgrade it." %}

```javascript
{ code : 1201 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Currency not supported" %}

```javascript
{ code: 1504 }
```

{% endtab %}

{% tab title="404: Not Found Entry not found" %}

```javascript
{ code: 1501 }
```

{% endtab %}
{% endtabs %}

## Delete Entry

<mark style="color:red;">`DELETE`</mark> `https://cubicl.io/api/v1/bookkeeping/entries/{entry}`

All activity and payment records related to this entry is deleted.

#### Path Parameters

| Name                                    | Type   | Description |
| --------------------------------------- | ------ | ----------- |
| entry<mark style="color:red;">\*</mark> | String | Entry id    |

{% tabs %}
{% tab title="200: OK Empty response" %}

```javascript
```

{% endtab %}

{% tab title="403: Forbidden You don't have the permission." %}

```javascript
{ code : 4 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Your organization's current plan has insufficient. You can upgrade it." %}

```javascript
{ code : 1201 }
```

{% endtab %}

{% tab title="404: Not Found Entry not found" %}

```javascript
{ code: 1501 }
```

{% endtab %}
{% endtabs %}

## Add Payment

<mark style="color:green;">`POST`</mark> `https://cubicl.io/api/v1/bookkeeping/payment/{entry}`

#### Path Parameters

| Name                                    | Type   | Description |
| --------------------------------------- | ------ | ----------- |
| entry<mark style="color:red;">\*</mark> | String | Entry id    |

#### Request Body

| Name                                         | Type   | Description                                                                              |
| -------------------------------------------- | ------ | ---------------------------------------------------------------------------------------- |
| paidAmount<mark style="color:red;">\*</mark> | Number | How much of the total is paid? It must be greater than 0 and less than the total amount. |
| note                                         | String |                                                                                          |

{% tabs %}
{% tab title="200: OK New payment and activity" %}

```javascript
{
    payment : BookkeepingPayment,
    activity : BookkeepingActivity
}
```

{% endtab %}

{% tab title="403: Forbidden You don't have the permission." %}

```javascript
{ code : 4 }
```

{% endtab %}

{% tab title="404: Not Found Entry not found" %}

```javascript
{ code : 1501 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Paid amount cannot be greater than entry amount" %}

```javascript
{ code: 1503 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Your organization's current plan has insufficient. You can upgrade it." %}

```javascript
{ code : 1201 }
```

{% endtab %}
{% endtabs %}

## Delete Payment

<mark style="color:red;">`DELETE`</mark> `https://cubicl.io/api/v1/bookkeeping/payments/{payment}`

#### Path Parameters

| Name                                      | Type   | Description |
| ----------------------------------------- | ------ | ----------- |
| payment<mark style="color:red;">\*</mark> | String | Payment id  |

{% tabs %}
{% tab title="200: OK Bookkeeping Activity" %}

```javascript
BookkeepingActivity
```

{% endtab %}

{% tab title="403: Forbidden You don't have the permission." %}

```javascript
{ code : 4 }
```

{% endtab %}

{% tab title="404: Not Found Payment not found" %}

```javascript
{ code : 1502 }
```

{% endtab %}

{% tab title="422: Unprocessable Entity Your organization's current plan has insufficient. You can upgrade it." %}

```javascript
{ code : 1201 }
```

{% endtab %}
{% endtabs %}

## Data

### BookkeepingEntry

```typescript
{
    org : string, // Organization id
    customer : string, // Client id
    /* receivable: The payment you will receive from your clients.
     * payable: The payment you will pay to your clients.
     */
    type : 'receivable' | 'payable',
    amount : number, // Current account balance. It must be greater than 0.
    /* Currency. It must contain one of the following values:
     * TRY, USD, EUR, GBP, AUD, CAD, CHF, CNY, HKD, NZD, SEK,
     * KRW, SGD, NOK, MXN, INR, ZAR, RUB, BRL, JPY, TWD, DKK,
     * THB, IDR, HUF, CZK, ILS, PHP, AED, COP, SAR, MYR, RON
     */
    currency : string,
    name : string,
    desc : string | null,
    paidAmount : number,     // How much of the total is paid? It must be greater than zero and less than total amount.
    isPaid : boolean,        // Is completely paid off?
    dueAt : number | null,   // Due date. Payment is expected to be made before this date.
    createdBy : string,      // Id of the user who created the entry.
    createdAt : number,
}
```

### BookkeepingPayment

```typescript
{
    org : string, // Organization id
    customer : string, // Client id
    amount : number, // Current account balance. It must be greater than 0.
    entry : string, // Bookkeeping Entry id
    note : string | null, // Optional note about the payment
    createdBy : string, // Id of the user who created the entry
    createdAt : number
}
```

### BookkeepingActivity

```typescript
{
    org : string, // Organization id
    customer : string, // Client id
    entry : string, // Bookkeeping Entry id. Always exists
    payment? : string, // Exists if type is 'payment-received', 'payment-sent' or 'payment-deleted'
    type : 'receivable-created' | 'payable-created' | 'payment-received' | 'payment-sent' | 'payment-deleted',
    data : {
        entryName : string,
        entryDueAt? : number, // Exists if entry dueAt defined
        amount : number, // Current account balance. It must be greater than 0.
        /* Currency. It must contain one of the following values:
         * TRY, USD, EUR, GBP, AUD, CAD, CHF, CNY, HKD, NZD, SEK,
         * KRW, SGD, NOK, MXN, INR, ZAR, RUB, BRL, JPY, TWD, DKK,
         * THB, IDR, HUF, CZK, ILS, PHP, AED, COP, SAR, MYR, RON
         */
        currency : string,
        paidAmount? : number, // Exists if type is receivable/payable-created. How much of the total is paid? It must be greater than zero
    },
    createdBy : string // Id of the user who created the entry
    createdAt : number,
}
```


# Webhooks

Webhooks allows you to integrate Cubicl with other applications. Cubicl notifies the webhook URL you added each time the type of action you chose happens.

* When client is created,&#x20;
* When client is deleted,&#x20;
* When task is created,&#x20;
* When task is updated,&#x20;
* When task is deleted,&#x20;
* When post is created in task,&#x20;
* When task state is changed,&#x20;
* When task is archived,&#x20;
* When the task is restored, the URL you added will be notified.

To add webhooks to Cubicl, first click on Others in the Navigation Menu, then the Integration button. In the page that opens, you can add your webhook URLs related to the specified actions in the Webhook Settings table. If you're using applications like Zapier, Pabbly Connect, etc., paste the link you get from these platforms into the URL field. If you're integrating into your own system, provide a URL from your system.

After you've added the URL, select the type of action from the list that will trigger the notification. If it's a task-related action, you must also associate it with a project. Once this is done, click save to create a record of the webhook for the selected action type. Cubicl will then notify this URL each time the chosen action occurs.

### Endpoints

Another way of creating and interacting with webhooks is using our API.

## Get Webhooks

<mark style="color:blue;">`GET`</mark> `https://cubicl.io/api/v1/users/self/webhook`

Returns webhook records related to the currently authenticated user.

{% tabs %}
{% tab title="200: OK Webhooks" %}

```typescript
Webhook[]
```

{% endtab %}
{% endtabs %}

## Create Webhook

<mark style="color:green;">`POST`</mark> `https://cubicl.io/api/v1/users/self/webhook`

#### Request Body

| Name                                   | Type        | Description                                                                                                                                                               |
| -------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| group                                  | string      | When a webhook type related to tasks is selected, a project id must be entered.                                                                                           |
| type<mark style="color:red;">\*</mark> | WebhookType | The type of event that will trigger the webhook. This must be one of the predefined event types that your system supports.                                                |
| url<mark style="color:red;">\*</mark>  | string      | The URL to which the webhook events will be sent. This must be a valid URL, and the endpoint should be prepared to accept the payloads for the events it's subscribed to. |

{% tabs %}
{% tab title="200: OK New webhook details" %}

```typescript
Webhook
```

{% endtab %}

{% tab title="422: Unprocessable Entity Invalid operation" %}

```typescript
{
    // 2: Project id is required for webhooks related to tasks.
    // 118: Webhook type is not supported.
    code: number
}
```

{% endtab %}
{% endtabs %}

## Update Webhook

<mark style="color:orange;">`PUT`</mark> `https://cubicl.io/api/v1/users/self/webhook/:id`

Updates a webhook with given details. All details are optional. Only given fields are updated.

#### Path Parameters

| Name                                 | Type   | Description |
| ------------------------------------ | ------ | ----------- |
| id<mark style="color:red;">\*</mark> | string | Webhook id  |

#### Request Body

| Name  | Type        | Description                                                                                                                                                               |
| ----- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| group | string      | When a webhook type related to tasks is selected, a project id must be entered.                                                                                           |
| type  | WebhookType | The type of event that will trigger the webhook. This must be one of the predefined event types that your system supports.                                                |
| url   | string      | The URL to which the webhook events will be sent. This must be a valid URL, and the endpoint should be prepared to accept the payloads for the events it's subscribed to. |

{% tabs %}
{% tab title="200: OK New webhook details" %}

```typescript
Webhook
```

{% endtab %}

{% tab title="404: Not Found Webhook with the given ID cannot be found" %}

{% endtab %}

{% tab title="422: Unprocessable Entity Invalid operation" %}

```typescript
{
    // 118: Webhook type is not supported.
    code: number
}
```

{% endtab %}
{% endtabs %}

## Delete Webhook

<mark style="color:red;">`DELETE`</mark> `https://cubicl.io/api/v1/users/self/webhook/:id`

Deletes the webhook with given id.

#### Path Parameters

| Name                                 | Type   | Description |
| ------------------------------------ | ------ | ----------- |
| id<mark style="color:red;">\*</mark> | string | Webhook id  |

{% tabs %}
{% tab title="200: OK Empty response" %}

{% endtab %}

{% tab title="404: Not Found Webhook with the given ID cannot be found" %}

{% endtab %}
{% endtabs %}

### Webhook Formats

#### When Task is Updated

```typescript
{
    oldTask: Task,
    updatedTask: Task
}
```

#### When Post is Created in Task

```typescript
{
    activity: TaskActivity,
    task: Task
}
```

#### When Task State is Changed

```typescript
{
    newState: TaskState,
    oldState: TaskState,
    task: Task
}
```

#### When Task is Created, Deleted, Archived or Restored

```typescript
{
    task: Task
}
```

#### When Client is Created or Deleted

```typescript
{
    customers: Customer[]
}
```

### Data

#### Webhook

```typescript
type Webhook = {
    _id: string;
    type: WebhookType;
    url: string;
    group: string; // Project id
    user: string; // User id
    createdAt: number;
    updatedAt: number;
}
```

#### Webhook Type

```typescript
type WebhookType = 'customer-created' | 'customer-deleted'
    | 'task-created'
    | 'task-updated'
    | 'task-deleted'
    | 'posted-on-task'
    | 'task-state-changed'
    | 'task-archived'
    | 'task-restored';
```

#### Task

```typescript
type Task = {
    _id: string;
    name: string;
    desc: string;
    state: string;
    start: number | null; // Start date
    deadline: number | null;
    assignees: User[];
    assignedBy: User; // Owner
    followers: User[];
    // Portal users who follow this task if task is shared in
    // the client portal.
    portalFollowers?: PortalUser[];
    // From 1 to 5. 5 is the highest.
    priority: number;
    // A score to sort same-priority tasks among themselves. 
    // Lowest score is shown at the top.
    priorityScore: number;
    // Project
    group: Project;
    // Organization
    org: Organization;
    /* none: Task has no steps
     * steps: Task has a checklist
     * progress: Task has a progress bar
     */
    stepType: 'none' | 'steps' | 'progress';
    // Check below for definitions of these types.
    steps?: CheckList | ProgressBar;
    customer: Customer | null,
    tags: Tag[];
    subtasks: Task[];
    parent: Task | null;
    // This property exists if task is created for an incoming email.
    email?: EmailUser;
    // This property exists if task is created for a support request
    // through the Client Portal feature.
    support?: PortalUser;
    private: boolean;
    recurrent?: boolean;
    sharedWithCustomer?: boolean;
    estimatedTime?: number; // Duration in seconds.
    // If task has custom fields, holds the name and value for each field.
    customFields?: {[fieldName: string]: string};
    // If task is recurrent, shows if this is the newest copy.
    lastCopy?: boolean;
    createdAt: number;
    updatedAt: number;
    completedAt?: number;
    archivedAt?: number | null;
    deleted_at?: number;
    // 'day month year, hours:minutes' format.
    createdAtFormatted: string;
    updatedAtFormatted: string;
    completedAtFormatted?: string;
    archivedAtFormatted?: string;
    deletedAtFormatted?: string;
}
```

#### Task Activity

```typescript
type TaskActivity = {
    _id : string;
    // User who did the activity
    user: User;
    // Portal user who created the activity. Exists only when
    // activity is created in the Client Portal by a portal user.
    portalUser?: PortalUser;
    content: string;
    type = "post";
    // If activity is a reply to a previous post, keeps the referenced activity id.
    replyToId?: string;
    // Whether the activity (post) is shared with a Client Portal user.
    customerCanSee: boolean;
    // List of users mentioned in the post.
    mentions: Mention[];
}
```

#### Task State

```typescript
type TaskState = {
    name: string;
    type: 'waiting' | 'active' | 'completed' | 'suspended';
    color: string; // Hex color code.
    textColor: string; // Hex color code.
    // Shows whether this is the state tasks will be created in when the task
    // state is not specified in Create Task endpoint.
    isDefault?: boolean;
}
```

#### Client

```typescript
type Customer = {
    _id: string;
    name: string; // A short name shown in UI and used for search
    phone: string | null;
    email: string | null;
    fullname: string | null;
    // People working at this client you are in contact with
    contacts: Contact[];
    // An object where keys are custom field ids and values are field values
    // customFields can be null
    customFields: {
        [fieldId: string]: string | null
    } | null;
    tax : {
        administration?: string;
        number?: string;
        address?: string;
    }
    createdBy: User;
    // List of users who get notifications for activities from portal users
    // of this client
    portalCustomerManagerIds: User[];
    org: Organization;
    createdAt: number;
    updatedAt: number;
    deleted_at?: number;
    // 'day month year, hours:minutes' format.
    createdAtFormatted: string;
    updatedAtFormatted: string;
    deletedAtFormatted?: string;
}
```

#### Contacts

```typescript
type Contact = {
    name: string;
    position: string;
    phone: string;
    email: string;
}
```

#### Task Steps

```typescript
type ProgressBar = {
    completed: number;
    total: number;
}

type CheckList = TaskStep[];

type TaskStep = {
    id: string;
    name: string;
    desc?: string;
    assignees: string[]; // Ids of the step assignees
    /* Task steps are recursive. They can have sub-steps too.
     * If not set, the step has no sub-steps.
     * If 'steps', a property named 'steps' holds sub-steps.
     * If 'progress', this step object has a property named 'total'.
     */
    stepType?: 'steps' | 'progress';
    steps?: CheckList;
    // If 'stepType' is 'progress', this is a number and indicates the total number
    // of steps in the bar. Otherwise, a boolean to indicate completion.
    completed: boolean | number;
    // Set when 'stepType' is 'progress'
    total?: number;
}
    
```

#### Tag

```typescript
type Tag = {
    _id: string;
    color: string;
    group: string;
    name: string;
    textColor: string;
    updatedAt: number;
}
```

#### User

```typescript
type User = {
    _id : string;
    firstname: string;
    lastname: string;
    email: string;
    profile: string; // URL for profile photo
    jobTitle: string;
    createdAt: number;
}
```

#### Portal User

```typescript
type PortalUser = {
    _id : string;
    firstname: string;
    lastname: string;
    email: string;
    profile: string; // URL for profile photo
    createdAt: number;
}
```

#### Email User

```typescript
type EmailUser = {
    _id : string;
    firstname: string;
    lastname: string;
    email: string;
    createdAt: number;
}
```

#### Organization

```typescript
type Organization = {
    _id : string;
    name: string;
    fullname: string;
    group: string;
    admins: string[];
    employees: string[];
    createdAt: number;
}
```

#### Project

```typescript
type Project = {
    _id: string;
    name: string;
     // Projects can have multiple parents. The root project has no parents.
    parents: string[] | null;
    // Admin user ids.
    admins: string[];
     // Member user ids.
    members: string[];
     // Child group ids.
    groups: string[];
    // Task state definitions. Exists only when states are customized. Read
    // Task States section for more info.
    taskStates?: TaskState[];
    // Permissions set in the project. Only exists when project permissions
    // are customized. Read the Permissions section for more info.
    perms?: {
        members: PermissionLevels,
        everybody: PermissionLevels,
        // An object where keys are userIds and values are permission levels object.
        users?: {
            [userId: string]: PermissionLevels,
        }
    },
    customTaskFields? : CustomTaskField[];
    private: boolean;
    orgId: string;
    estimatedTimeEnabled: boolean;
    createdAt: number;
    updatedAt: number;
}
```

#### Custom Task Field

```typescript
type CustomTaskField = {
    _id : string;
    name: string;
    type: string;
    deleted: boolean;
}
```


