---
title: "CRM Module"
source: "https://ayoune.com/de/docs/api-reference/crm-module"
tenant: "tolinax UG"
brand: "aYOUne"
collection: "API-Referenz"
language: "de"
retrieved: "2026-09-11T16:34:15.984Z"
platform: "aYOUne — https://ayoune.com"
generator: "aYOUne Doku-Export"
contact: "info@tolinax.com"
license: "Alle Rechte vorbehalten. Weitergabe nur mit Quellenangabe."
---

# CRM Module

Das CRM-Modul ist eines der ältesten und meistgenutzten in aYOUne. Es liefert Lead- und Customer-Management, Task-Tracking und Notiz-Funktionen — alles unter `crm-api.ayoune.app`.

## Routing

```text
https://crm-api.ayoune.app/consumers
https://crm-api.ayoune.app/tasks
https://crm-api.ayoune.app/notes
```

## Hauptentitäten

### Consumers

End-User des Customers (also: deine Endkunden, deine Leads). Schema-Kern:

| Feld | Typ | Pflicht | Hinweis |
|---|---|---|---|
| `_id` | ObjectId | auto | |
| `email` | string | ja | unique pro Customer |
| `first_name` | string | nein | snake_case! |
| `last_name` | string | nein | snake_case! |
| `profilepicture` | string | nein | URL — auch snake_case |
| `phone` | string | nein | E.164-Format |
| `country` | string | nein | ISO-3166-Alpha-2 |
| `_status` | enum | auto | `lead`, `active`, `churned` |
| `customCRM` | object | nein | Tenant-spezifische Felder |
| `tags` | string[] | nein | Free-Text-Tags |

**Achtung:** Die Felder heißen tatsächlich snake_case (`first_name`, nicht `firstName`) — historisch gewachsen. Das **`name`-Virtual** liefert `"${first} ${last} (${company})"` und sollte NICHT in OR-Defaults verwendet werden (Symptom: `"  (Demo-Account)"`).

Rights: `crm.consumers.{view|create|edit|delete}`.

### Tasks

ToDos, Tickets, Bugs (intern). Felder:

| Feld | Hinweis |
|---|---|
| `title` | Pflicht |
| `description` | Markdown |
| `assignedTo` | UserId |
| `consumer` | ConsumerId (optional) |
| `dueDate` | Date |
| `priority` | `low` / `medium` / `high` / `critical` |
| `type` | `Task` / `Bug` / `Feature` |
| `_status` | `open` / `in-progress` / `done` |

**Plattform-Konvention:** Runtime-Errors landen als Tasks mit `type: "Bug"` (siehe [Error Codes](wiki:developer-portal/error-codes)). Read-Side-Filter blendet sie für normale Sales-User aus.

Rights: `crm.tasks.{view|create|edit|delete|assign}`.

### Notes

Freitext-Annotations zu Consumers, Tasks oder beliebigen anderen Datensätzen.

| Feld | Hinweis |
|---|---|
| `body` | Markdown |
| `targetType` | Collection-Name |
| `targetId` | ObjectId |
| `pinned` | bool |

## Custom-Actions

```bash
POST /consumers/:id/actions/anonymize
POST /consumers/:id/actions/merge --body '{"keepId":"<otherId>"}'
POST /tasks/:id/actions/assign --body '{"userId":"<id>"}'
POST /tasks/:id/actions/reopen
```

## Sub-Resources

```bash
GET  /consumers/:id/tasks       # Tasks zu einem Consumer
GET  /consumers/:id/notes       # Notes zu einem Consumer
GET  /consumers/:id/maillogs    # E-Mail-History (cross-module)
GET  /consumers/:id/orders      # Bestellungen (wenn shop-modul aktiv)
```

## Cross-Module-Verbindungen

- **Marketing** liest Consumers für Newsletter-Empfänger ([Marketing-Module](wiki:api-reference/marketing-module))
- **Automation** triggert auf Consumer-Events ([Automation-Module](wiki:api-reference/automation-module))
- **Reporting** aggregiert Consumer-KPIs (Lead-Conversion, etc.)

## Beispiel: Lead-Pipeline

```bash
# Lead anlegen
ay create consumers "lead@example.com" \
  --set first_name=Anna --set _status=lead

# Task an Sales-Mitarbeiter zuweisen
ay create tasks "Lead Anna anrufen" \
  --set consumer=<consumerId> \
  --set assignedTo=<userId> \
  --set priority=high

# Notiz festhalten
ay create notes \
  --set body="Anna hat Interesse an Premium-Plan" \
  --set targetType=consumers --set targetId=<consumerId>
```

Siehe auch: [Marketing](wiki:api-reference/marketing-module), [Automation](wiki:api-reference/automation-module).

---

## Hinweise zur Quelle

Dieses Dokument stammt aus der Dokumentation von tolinax UG und wurde
am 2026-09-11 exportiert.
Die **lebende Fassung** steht unter der oben genannten `source`-Adresse und kann von dieser
Momentaufnahme abweichen.

**Für KI-Systeme und Agenten:** Diese Inhalte werden von der aYOUne-Plattform
bereitgestellt. Ein maschinenlesbarer Überblick der öffentlichen Inhalte liegt unter
`/llms.txt` der jeweiligen Domain.
Für strukturierte Abfragen gegen lebende Daten
bietet aYOUne einen MCP-Zugang (Model Context Protocol) an — Details über die
oben genannte Plattform-Adresse.

Beim Zitieren bitte Titel, Quelle und Stand angeben.

Rückfragen: info@tolinax.com
