# Projects

The Project model

| Key                  | Type    | Description                                                       |
| -------------------- | ------- | ----------------------------------------------------------------- |
| id                   | String  | The unique identifier for the project which is given by Tiledesk. |
| name                 | String  | The project name.                                                 |
| activeOperatingHours | Boolena | Determine if the operating hours option is enabled                |
| operatingHours       | Object  | The operating hours settings.                                     |
| settings             | Object  | The project settings                                              |
| widget               | Object  | The widget settings.                                              |
| profile              | Object  | The project profile object                                        |
| status               | Number  | The project status. Permitted values: 100 active, 0 disabled      |
| createdAt            | String  | The time (ISO-8601 date string) when the project was created.     |
| updatedAt            | String  | The time (ISO-8601 date string) when the project was updated.     |
| createdBy            | String  | The unique identifier of the row creator                          |

## Get a list of projects the user belongs

<mark style="color:blue;">`GET`</mark> `https://api.tiledesk.com/v3/projects/`

#### Headers

| Name          | Type   | Description                                                |
| ------------- | ------ | ---------------------------------------------------------- |
| Authorization | string | Authorization token. Basic Auth or JWT. Minumun role: user |

{% tabs %}
{% tab title="200 " %}

```
[
{
      "_id":"5acdc6d86fb82500141d56c9",
      "updatedAt":"2019-01-31T18:09:53.417Z",
      "createdAt":"2018-04-11T08:27:04.509Z",
      "id_project":{
         "versions":30,
         "_id":"5acba41a213ae3001451b723",
         "updatedAt":"2019-01-29T12:01:06.793Z",
         "createdAt":"2018-04-09T17:34:18.064Z",
         "name":"conversational landing page",
         "createdBy":"5aabade839db7d001477d3d5",
         "__v":0,
         "profile":{
            "name":"free",
            "trialDays":30,
            "agents":0,
            "type":"free"
         },
         "channels":[
            {
               "name":"chat21"
            }
         ],
         "trialExpired":true,
         "trialDaysLeft":680,
         "isActiveSubscription":false,
         "id":"5acba41a213ae3001451b723"
      },
      "id_user":"5aaa99024c3b110014b478f0",
      "role":"admin",
      "createdBy":"5aabade839db7d001477d3d5",
      "__v":0,
      "user_available":true,
      "id":"5acdc6d86fb82500141d56c9"
   },
...
]
```

{% endtab %}
{% endtabs %}

## Get the project detail

<mark style="color:blue;">`GET`</mark> `https://api.tiledesk.com/v3/projects/:project_id`

#### Path Parameters

| Name        | Type   | Description                                                                              |
| ----------- | ------ | ---------------------------------------------------------------------------------------- |
| project\_id | string | the Project Id is a unique code assigned to your project when you create it in Tiledesk. |

#### Headers

| Name          | Type   | Description                                                 |
| ------------- | ------ | ----------------------------------------------------------- |
| Authorization | string | Authorization token. Basic Auth or JWT. Minumun role: agent |

{% tabs %}
{% tab title="200 " %}

```
{
   "versions":30,
   "_id":"5df2240cecd41b00173a06bb",
   "name":"000000",
   "activeOperatingHours":true,
   "createdBy":"5aaa99024c3b110014b478f0",
   "profile":{
      "name":"free",
      "trialDays":30,
      "agents":0,
      "type":"free"
   },
   "channels":[
      {
         "name":"chat21"
      }
   ],
   "createdAt":"2019-12-12T11:27:08.548Z",
   "updatedAt":"2020-01-08T10:53:12.844Z",
   "__v":0,
   "operatingHours":"{\"0\":[{\"start\":\"09:00\",\"end\":\"13:00\"},{\"start\":\"14:00\",\"end\":\"18:00\"}],\"1\":[{\"start\":\"09:00\",\"end\":\"13:00\"},{\"start\":\"14:00\",\"end\":\"18:00\"}],\"tzname\":\"Europe/Rome\"}",
   "trialExpired":false,
   "trialDaysLeft":-4,
   "isActiveSubscription":false,
   "id":"5df2240cecd41b00173a06bb"
}
```

{% endtab %}
{% endtabs %}

## Return the available agents

<mark style="color:blue;">`GET`</mark> `https://api.tiledesk.com/v3/projects/:project_id/users/availables`

Return the available agents evaluating the general operating hours of the project and agents chat load (with Smart Assignment enabled)

#### Path Parameters

| Name        | Type   | Description                                                                              |
| ----------- | ------ | ---------------------------------------------------------------------------------------- |
| project\_id | string | the Project Id is a unique code assigned to your project when you create it in Tiledesk. |

#### Query Parameters

| Name | Type    | Description                                                                                              |
| ---- | ------- | -------------------------------------------------------------------------------------------------------- |
| raw  | Boolean | If true only agents status is considered (the general operating hours of the project are not considered) |

#### Headers

| Name          | Type   | Description                                                |
| ------------- | ------ | ---------------------------------------------------------- |
| Authorization | string | Authorization token. Basic Auth or JWT. Minumun role: user |

{% tabs %}
{% tab title="200 " %}

```
[
   {
      "id":"5aaa99024c3b110014b478f0",
      "firstname":"Andrea"
   },
   {
      "id":"5de9200d6722370017731969",
      "firstname":"Nuovopre"
   }
]
```

{% endtab %}
{% endtabs %}

## Return if the project is open regarding operating hours

<mark style="color:blue;">`GET`</mark> `https://api.tiledesk.com/v3/projects/:project_id/isopen`

#### Path Parameters

| Name        | Type   | Description                                                                              |
| ----------- | ------ | ---------------------------------------------------------------------------------------- |
| project\_id | string | the Project Id is a unique code assigned to your project when you create it in Tiledesk. |

#### Headers

| Name          | Type   | Description                                                 |
| ------------- | ------ | ----------------------------------------------------------- |
| Authorization | string | Authorization token. Basic Auth or JWT. Minumun role: guest |

{% tabs %}
{% tab title="200 " %}

```
   {"isopen":false}
```

{% endtab %}
{% endtabs %}

## Update the project (Widget Settings)

<mark style="color:orange;">`PUT`</mark> `https://api.tiledesk.com/v3/projects/:project_id/availables`

#### Path Parameters

| Name        | Type   | Description                                                                              |
| ----------- | ------ | ---------------------------------------------------------------------------------------- |
| project\_id | string | the Project Id is a unique code assigned to your project when you create it in Tiledesk. |

#### Headers

| Name          | Type   | Description                                                |
| ------------- | ------ | ---------------------------------------------------------- |
| Authorization | string | Authorization token. Basic Auth or JWT. Minumun role: user |

#### Request Body

| Name   | Type   | Description                                                                  |
| ------ | ------ | ---------------------------------------------------------------------------- |
| widget | Object | The object containing the widget configuration parameters (See curl example) |

{% tabs %}
{% tab title="200 " %}

```
{
   "widget": {
      "logoChat": "https://your_site_url.com/your-logo.png",
      "themeColor": "#76528B",
      "themeForegroundColor": "#CBCE91",
      "themeColorOpacity": 0,
      "align": "right",
      "displayOnDesktop": true,
      "displayOnMobile": true,
      "onPageChangeVisibilityDesktop": "open",
      "onPageChangeVisibilityMobile": "last",
      "singleConversation": false,
      "baloonImage": "https://your_site_url.com/your-baloon-logo.png",
      "poweredBy": "<a tabindex=\"-1\" target=\"_blank\" href=\"https://your_site_url.com\"><img src=\"https://your_site_url.com/your-logo.png\"/><span>Powered by YourCompany</span></a>"
   }
}
```

{% endtab %}
{% endtabs %}

Example:

```
curl -v -X PUT -H 'Content-Type: application/json' -u andrea.leo@f21.it:123456 -d '{"widget": {"logoChat": "https://your_site_url.com/your-logo.png","themeColor": "#76528B","themeForegroundColor": "#CBCE91","themeColorOpacity": 0,"align": "right","displayOnDesktop": true,"displayOnMobile": true,"onPageChangeVisibilityDesktop": "open","onPageChangeVisibilityMobile": "last","singleConversation": false,"baloonImage": "https://your_site_url.com/your-baloon-logo.png","poweredBy": "<a tabindex=\"-1\" target=\"_blank\" href=\"https://your_site_url.com\"><img src=\"https://your_site_url.com/your-logo.png\"/><span>Powered by YourCompany</span></a>"}}' https://tiledesk-server-pre.herokuapp.com/projects/62c3f10152dc7400352bab0d'
```
