> 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

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 %}
