> For the complete documentation index, see [llms.txt](https://docs.propstack.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.propstack.de/reference/aktivitaeten-1.md).

# Aktivitäten

Eine Aktivität ist ein Container für eine Message, einen Task oder eine Policy.

Aktivitäten können nicht direkt angelegt werden, sondern werden intern durch PS angelegt. Um eine Aktivität anzulegen, muss man entweder eine Message oder einen Task direkt anlegen.

### Arten von Aktivitäten (`activatable_type`)

| Typ     | Beschreibung                                                                                                                |
| ------- | --------------------------------------------------------------------------------------------------------------------------- |
| Message | Ein- und ausgehende E-Mails                                                                                                 |
| Task    | Mit Task sind diverse Aktivitätstypen gemeint, wie Notizen, Aufgaben, Termine, Briefe, Absagen                              |
| Policy  | Policies sind Nachweise über die Widerrufsbelehrung oder Kontakterlaubnis. Mehr Infos gibt es [hier](/reference/policy.md). |

## Aktivitäten lesen

<mark style="color:blue;">`GET`</mark> `https://api.propstack.de/v1/activities`

#### Query Parameters

| Name                        | Type       | Description                                                                                                               |
| --------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------- |
| expand                      | Boolean    | um das ausführliche JSON (einschließlich custom Felder) zu erhalten                                                       |
| order                       | String     | Aufsteigend oder absteigend sortieren. Entweder `asc` oder `desc`                                                         |
| category\_id                | Integer    | ID des Aktivitätstypen                                                                                                    |
| category\_ids               | Integer\[] | IDs der Aktivitätstypen                                                                                                   |
| client\_id                  | integer    | ID des Kontaktes                                                                                                          |
| client\_ids                 | Integer\[] | IDs der Kontakte                                                                                                          |
| property\_id                | Integer    | ID des Objektes                                                                                                           |
| property\_ids               | Integer\[] | IDs der Objekte                                                                                                           |
| project\_id                 | Integer    | ID des Projektes                                                                                                          |
| project\_ids                | Integer\[] | IDs der Projekte                                                                                                          |
| item\_type                  | String     | Typ der Aktivität. Eines von `message`, `note`, `reminder`, `event`, `policy`, `cancelation`, `decision`, `sms`, `letter` |
| broker\_id                  | Integer    | ID des Besitzers der Aktivität (Bei Notizen, Terminen, Aufgaben der, dem die Aktivität "zugewiesen" wurde)                |
| creator\_id                 | Integer    | ID des Erstellers der Aktivität                                                                                           |
| starts\_at\_from            | String     | Format: 2022-12-07T10:00:00+01:00                                                                                         |
| starts\_at\_to              | String     | Format: 2022-12-07T23:59:59+01:00                                                                                         |
| original\_created\_at\_from | String     | Format: 2022-12-07T10:00:00+01:00                                                                                         |
| original\_created\_at\_to   | String     | Format: 2022-12-07T23:59:59+01:00                                                                                         |
| only\_inquiries             | Boolean    | auf `true` oder `1` setzen, um nur Aktivitäten vom Typ "Anfrage" zu erhalten                                              |
| not\_completed              | Boolean    | um nur unvollständige Aktivitäten zu erhalten                                                                             |
| reason\_id                  | Integer    | ID des Absagegrundes der Aktivität                                                                                        |
| reason\_ids                 | Integer\[] | IDs der Absagegründe der Aktivität                                                                                        |
| group\_ids                  | Integer\[] | IDs der Merkmale                                                                                                          |
| team\_ids                   | Integer\[] | IDs der Abteilungen                                                                                                       |
| source\_id                  | Integer    | ID der Anfrage-Quelle                                                                                                     |
| blocked                     | Boolean    | Ob der angehängte Kunde gesperrt ist oder nicht                                                                           |

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

```javascript
{
    "data": [
        {
            "id": 123,
            "broker_id": 12,
            "client_ids": [
                123401
            ],
            "property_ids": [
                4321
            ],
            "project_ids": [],
            "client_names": [
                "Stefanie Mante"
            ],
            "property_names": [
                "CLA-1050"
            ],
            "project_names": [],
            "conversation_type": "note",
            "sender_type": null,
            "source_id": null,
            "creator_id": 123,
            "category_id": null,
            "reason_id": null,
            "created_at": "2019-01-15T01:22:37.619+01:00",
            "starts_at": null,
            "price": null,
            "group_ids": [],
            "state": "neutral",
            "title": "Eingehender Anruf um 18:00",
            "access_broker_ids": null,
            "access_department_ids": null,
            "blocked": false,
            "comments_count": 0,
            "attachments_count": 0,
            "done": false,
            "outgoing": false,
            "tracking_size": 0,
            "unread_tracking_size": 0,
            "attachments": 0,
            "comment_size": 0
        },
    ],
    "meta": {
        "total_count": 10205
    }
}
```

{% endtab %}
{% endtabs %}

Aktivitäten lassen sich paginieren über die Parameter `page` und `per`. Standardmäßig werden die ersten 20 Aktivitäten angezeigt.

## Einzelne Aktivität lesen

<mark style="color:blue;">`GET`</mark> `https://api.propstack.de/v1/activities/:id`

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

```javascript
{
    "id": 41711,
    "activatable_type": "Task",
    "activatable": {
        // je nachdem was activatable_type ist, 
        // .. kommt hier das Objekt zur E-Mail oder zum Task
    }
}
```

{% endtab %}
{% endtabs %}

## Aktivität anlegen

In der Regel möchte man eine einfache Notiz anlegen, welches in Propstacks API ein "Task" wäre. Die Beschreibung für einen Task sieht wie folgt aus:

### Task

| Attribut          | Typ        | Beschreibung                                                                                                                  |
| ----------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------- |
| title             | string     | Titel                                                                                                                         |
| note\_type\_id    | integer    | Aktivitätstyp (alle bis auf E-Mail-Typen)                                                                                     |
| body              | string     | Notizfeld für weitere Bemerkungen als HTML                                                                                    |
| client\_ids       | integer\[] | Ein Array von Kontakt-IDs mit welcher die Aktivität verknüpft werden soll. In der Regel will man nur eine Kontakt-ID mitgeben |
| property\_ids     | integer\[] | Ein Array von Objekt-IDs, womit die Aktivität verknüpft werden soll.                                                          |
| project\_ids      | integer\[] | Ein Array von Projekt-IDs, womit die Aktivität verknüpft werden soll.                                                         |
| broker\_id        | integer    | Nutzer, dem der Task zugewiesen werden soll                                                                                   |
| task\_creator\_id | integer    | Ersteller des Tasks                                                                                                           |
| task\_updater\_id | integer    | der Nutzer, der den Task zuletzt bearbeitet hat                                                                               |

#### Falls Task eine Aufgabe ist:

| Attribut   | Typ     | Beschreibung                                                                                |
| ---------- | ------- | ------------------------------------------------------------------------------------------- |
| due\_date  | date    | Datum + Uhrzeit der Fälligkeit der Aufgabe                                                  |
| remind\_at | date    | Datum (vor dem due\_date), wann der Zugewiesene erinnert werden soll (in Form einer E-Mail) |
| done       | boolean | Ist die Aufgabe erledigt?                                                                   |

#### Falls Task ein Termin ist:

| Attribut   | Typ     | Beschreibung                                                                                                                                                                |
| ---------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| starts\_at | date    | Beginn des Termins                                                                                                                                                          |
| ends\_at   | date    | Ende des Termins                                                                                                                                                            |
| private    | boolean | Soll der Termin nur für die Teilnehmer sichtbar sein?                                                                                                                       |
| all\_day   | boolean | Ganztägiger Termin?                                                                                                                                                         |
| location   | string  | Ort des Termins                                                                                                                                                             |
| recurring  | boolean | Wiederkehrender Termin?                                                                                                                                                     |
| rrule      | string  | bei wiederkehrenden Terminen der String, welcher die Regeln festlegt, in welchem Interval der Termin stattfindet. Mehr Infos [hier](https://jakubroztocil.github.io/rrule/) |

#### Falls Task eine Anfrage ist:

| Attribut           | Typ     | Beschreibung          |
| ------------------ | ------- | --------------------- |
| client\_source\_id | integer | ID der Anfrage-Quelle |

#### Falls Task eine Absage ist:

| Attribut                | Typ     | Beschreibung         |
| ----------------------- | ------- | -------------------- |
| reservation\_reason\_id | integer | ID des Absagegrundes |

## Aktivitätstypen lesen

<mark style="color:blue;">`GET`</mark> `https://api.propstack.de/v1/activity_types`

Aktivitätstypen sind wie Kategorien zu verstehen. Eine Aktivität kann zu einer oder gar keiner Kategorie gehören.

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

```javascript
{
    "data": [
        {
            "id": 35,
            "name": "Anfrage",
            "category": "message"
        },
        {
            "id": 38,
            "name": "Angebot",
            "category": "message"
        },
        {
            "id": 102,
            "name": "Notartermin",
            "category": "event"
        },
        {
            "id": 386,
            "name": "Marketing: Mailing",
            "category": "note"
        },
        {
            "id": 73,
            "name": "Anruf",
            "category": "reminder"
        }
    ]
}
```

{% endtab %}
{% endtabs %}

## Absagegründe lesen

<mark style="color:blue;">`GET`</mark> `https://api.propstack.de/v1/reservation_reasons`

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

```json
[
  {
    "id": 1,
    "name": "Finanzierung"
  },
  {
    "id": 2,
    "name": "Ausstattung"
  },
  {
    "id": 3,
    "name": "Preis"
  },
  {
    "id": 4,
    "name": "Lage"
  },
  {
    "id": 5,
    "name": "Größe"
  }
]
```

{% endtab %}
{% endtabs %}
