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
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 " ()" 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). 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
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
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)
- Automation triggert auf Consumer-Events (Automation-Module)
- Reporting aggregiert Consumer-KPIs (Lead-Conversion, etc.)
Beispiel: Lead-Pipeline
# 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, Automation.