CRM App Backend-Vorlage
REST API — Schema, API & KI-Leitfaden
Ein produktionsbereites REST API CRM Backend-Schema und Starter-Kit auf Back4app: Kontakt, Unternehmen, Deal, Aktivität, Pipeline-Stufen, ER-Diagramm, Datenwörterbuch, JSON-Schema, API-Spielplatz und ein One-Click KI-Agent Prompt zur Bereitstellung in Minuten.
Wichtige Erkenntnisse
Auf dieser Seite erhalten Sie ein produktionsbereites CRM-Schema, einen One-Click KI-Prompt und Schritt-für-Schritt REST API Code — damit Sie eine CRM-App ohne Backend-Erstellung bereitstellen können.
- In Minuten bereitstellen — Fügen Sie die AI-Agentenaufforderung ein und erhalten Sie eine laufende App mit Kontakten, Unternehmen, Angeboten und Pipeline.
- Standardmäßig sicher — ACLs und rollenbasierter Zugriff, damit Benutzer nur ihre zugewiesenen Angebote und Daten sehen.
- REST API-native SDK — Typisierte Objekte, async/await, Offline-Pinning und Live Queries für Pipeline-Updates.
- REST + GraphQL — Beide APIs werden automatisch generiert; Angebote nach Phase filtern, Aktivitäten nach relatedTo auflisten.
- Fünf Klassen — _User (integriert), Unternehmen, Kontakt, Angebot (Pipeline), Aktivität (Aufgaben/Ereignisse).
Was ist die REST API CRM Backend-Vorlage?
Ein REST-first CRM-Backend auf Back4app: Standard GET/POST/PUT/DELETE auf /classes/Contact, /classes/Deal und verwandte Endpunkte. Verwenden Sie X-Parse-Session-Token für die Authentifizierung und where/order für Pipeline-Abfragen. Integrieren Sie aus jedem Stack – mobil, web oder serverseitig – mit klaren Statuscodes und JSON-Payloads. Kein GraphQL oder SDK erforderlich.
Am besten für:
Übersicht
Ein REST API für CRM: GET /classes/Deal, POST /classes/Contact, PUT /classes/Deal/:id usw. Back4app generiert diese Endpunkte aus dem Schema; Sie senden X-Parse-Session-Token zur Authentifizierung und verwenden where und order für Pipeline- und Listenabfragen.
Das Schema (fünf Klassen: _User, Company, Contact, Deal, Activity) ist dasselbe wie für SDK-Clients. Jeder HTTP-Client kann integrieren — mobil, web oder server — mit standardmäßigem JSON und Statuscodes.
Kern-CRM-Funktionen
REST API CRM-Backend: Endpunkte für Kontakt, Unternehmen, Deal und Aktivität mit Auth-Headern und Statuscodes. Pipeline-Management und ACLs sofort einsatzbereit.
Kontaktverwaltung
Speichern und Verwalten von Kontakten mit Name, E-Mail, Telefon, Unternehmen und Notizen. Ideal für REST API-Apps.
Unternehmensverwaltung
Verfolgen Sie Unternehmen mit Namen, Website, Branche und Adresse. Verknüpft mit Kontakten und Geschäften.
Deal-Pipeline
Verkaufspipeline mit Phasen, Betrag, voraussichtlichem Abschlussdatum und Zuweisung. Entwickelt für REST API Backends.
Aktivitätsverfolgung
Protokollieren Sie Anrufe, E-Mails, Besprechungen und Notizen, die mit Kontakten und Geschäften verknüpft sind. Funktioniert mit REST API SDK.
Benutzer & Berechtigungen
Integriertes Benutzermodell und Verweise für Eigentum und Zuweisung. ACLs sofort einsatzbereit für REST API.
ER-Diagramm
Entität-Beziehungsdiagramm für das REST API CRM-App-Datenmodell.
Diagrammquelle anzeigen
erDiagram
_User {
String objectId PK
String username
String email
String password
Date createdAt
Date updatedAt
}
Company {
String objectId PK
String name
String website
String industry
String address
String notes
Pointer createdBy FK
Date createdAt
Date updatedAt
}
Contact {
String objectId PK
String name
String email
String phone
Pointer company FK
String notes
Pointer createdBy FK
Date createdAt
Date updatedAt
}
Deal {
String objectId PK
String title
Number amount
String stage
Pointer contact FK
Pointer company FK
Date expectedCloseDate
String notes
Pointer assignedTo FK
Date createdAt
Date updatedAt
}
Activity {
String objectId PK
String type
String subject
String description
Date dueDate
Date completedAt
Pointer relatedTo FK
Pointer createdBy FK
Date createdAt
Date updatedAt
}
Company ||--o{ Contact : "has"
Company ||--o{ Deal : "has"
Contact ||--o{ Deal : "has"
_User ||--o{ Deal : "assignedTo"
_User ||--o{ Activity : "createdBy"
Contact ||--o{ Activity : "relatedTo"
Deal ||--o{ Activity : "relatedTo"
_User ||--o{ Company : "createdBy"
_User ||--o{ Contact : "createdBy"
Integrationsfluss
Auth-to-CRUD-Sequenz: wie Ihre REST API App mit Back4app kommuniziert — anmelden, dann Kontakte und Deals abfragen, Pipeline aktualisieren.
Diagrammquelle anzeigen
sequenceDiagram
participant User
participant Client as REST Client
participant Back4app as Back4app Cloud
User->>Client: Login
Client->>Back4app: POST /login (username, password)
Back4app-->>Client: sessionToken
Client-->>User: Logged in
User->>Client: Load deals and contacts
Client->>Back4app: GET /classes/Deal?where={"stage":"qualified"}
Back4app-->>Client: results
Client-->>User: Show pipeline
User->>Client: Create deal or contact
Client->>Back4app: POST /classes/Deal (X-Parse-Session-Token)
Back4app-->>Client: objectId, createdAt
Client-->>User: Updated listDatenwörterbuch
Vollständige Feldreferenz für jede Klasse im Schema.
Contact
| Feld | Typ | Beschreibung | Erforderlich |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | auto |
| name | String | Full name of the contact | |
| String | Email address | — | |
| phone | String | Phone number | — |
| company | Pointer<Company> | Company this contact belongs to | — |
| notes | String | Free-form notes | — |
| createdBy | Pointer<_User> | User who created this contact | — |
| createdAt | Date | Auto-generated creation timestamp | auto |
| updatedAt | Date | Auto-generated last-update timestamp | auto |
Company
| Feld | Typ | Beschreibung | Erforderlich |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | auto |
| name | String | Company name | |
| website | String | Company website URL | — |
| industry | String | Industry or sector | — |
| address | String | Physical or mailing address | — |
| notes | String | Free-form notes | — |
| createdBy | Pointer<_User> | User who created this company | — |
| createdAt | Date | Auto-generated creation timestamp | auto |
| updatedAt | Date | Auto-generated last-update timestamp | auto |
Deal
| Feld | Typ | Beschreibung | Erforderlich |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | auto |
| title | String | Deal title or name | |
| amount | Number | Deal value or amount | — |
| stage | String | Pipeline stage (e.g. lead, qualified, proposal, won, lost) | — |
| contact | Pointer<Contact> | Primary contact for this deal | — |
| company | Pointer<Company> | Company associated with this deal | — |
| expectedCloseDate | Date | Expected close date | — |
| notes | String | Free-form notes | — |
| assignedTo | Pointer<_User> | User assigned to this deal | — |
| createdAt | Date | Auto-generated creation timestamp | auto |
| updatedAt | Date | Auto-generated last-update timestamp | auto |
Activity
| Feld | Typ | Beschreibung | Erforderlich |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | auto |
| type | String | Activity type (call, email, meeting, note) | — |
| subject | String | Subject or title | — |
| description | String | Description or body | — |
| dueDate | Date | Due date | — |
| completedAt | Date | When the activity was completed | — |
| relatedTo | Pointer | Pointer to Contact or Deal | — |
| createdBy | Pointer<_User> | User who created this activity | — |
| createdAt | Date | Auto-generated creation timestamp | auto |
| updatedAt | Date | Auto-generated last-update timestamp | auto |
_User
| Feld | Typ | Beschreibung | Erforderlich |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | auto |
| username | String | Login username | |
| String | Email address | ||
| password | String | Hashed password (write-only) | |
| createdAt | Date | Auto-generated creation timestamp | auto |
| updatedAt | Date | Auto-generated last-update timestamp | auto |
Schema (JSON)
Roh-JSON-Schemaspezifikation — kopieren und in Ihrer Back4app-App verwenden oder über die API importieren.
{
"classes": [
{
"className": "Contact",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"name": {
"type": "String",
"required": true
},
"email": {
"type": "String",
"required": false
},
"phone": {
"type": "String",
"required": false
},
"company": {
"type": "Pointer",
"targetClass": "Company",
"required": false
},
"notes": {
"type": "String",
"required": false
},
"createdBy": {
"type": "Pointer",
"targetClass": "_User",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Company",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"name": {
"type": "String",
"required": true
},
"website": {
"type": "String",
"required": false
},
"industry": {
"type": "String",
"required": false
},
"address": {
"type": "String",
"required": false
},
"notes": {
"type": "String",
"required": false
},
"createdBy": {
"type": "Pointer",
"targetClass": "_User",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Deal",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"title": {
"type": "String",
"required": true
},
"amount": {
"type": "Number",
"required": false
},
"stage": {
"type": "String",
"required": false
},
"contact": {
"type": "Pointer",
"targetClass": "Contact",
"required": false
},
"company": {
"type": "Pointer",
"targetClass": "Company",
"required": false
},
"expectedCloseDate": {
"type": "Date",
"required": false
},
"notes": {
"type": "String",
"required": false
},
"assignedTo": {
"type": "Pointer",
"targetClass": "_User",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "Activity",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"type": {
"type": "String",
"required": false
},
"subject": {
"type": "String",
"required": false
},
"description": {
"type": "String",
"required": false
},
"dueDate": {
"type": "Date",
"required": false
},
"completedAt": {
"type": "Date",
"required": false
},
"relatedTo": {
"type": "Pointer",
"required": false
},
"createdBy": {
"type": "Pointer",
"targetClass": "_User",
"required": false
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
},
{
"className": "_User",
"fields": {
"objectId": {
"type": "String",
"required": false
},
"username": {
"type": "String",
"required": true
},
"email": {
"type": "String",
"required": true
},
"password": {
"type": "String",
"required": true
},
"createdAt": {
"type": "Date",
"required": false
},
"updatedAt": {
"type": "Date",
"required": false
}
}
}
]
}Mit AI-Agent erstellen
Verwenden Sie den Back4app AI-Agent, um eine echte CRM-App aus dieser Vorlage zu erstellen: Er wird das Frontend, das Backend (dieses Schema, Authentifizierung und APIs) erstellen und bereitstellen – keine manuelle Einrichtung. Der folgende Prompt beschreibt diesen CRM-Stack, damit der Agent eine produktionsbereite App auf einmal generieren kann.
Erstellen Sie eine CRM-App auf Back4app mit diesem genauen Schema und Verhalten. Schema: 1. _User (verwenden Sie Back4app integrierte): Benutzername (String, erforderlich), E-Mail (String, erforderlich), Passwort (String, erforderlich); objectId, createdAt, updatedAt (System). 2. Unternehmen: Name (String, erforderlich), Website (String), Branche (String), Adresse (String), Notizen (String), erstelltVon (Pointer zu _User); objectId, createdAt, updatedAt (System). 3. Kontakt: Name (String, erforderlich), E-Mail (String), Telefon (String), Unternehmen (Pointer zu Unternehmen), Notizen (String), erstelltVon (Pointer zu _User); objectId, createdAt, updatedAt (System). 4. Deal: Titel (String, erforderlich), Betrag (Zahl), Phase (String; z.B. Lead, qualifiziert, Angebot, Verhandlung, gewonnen, verloren), Kontakt (Pointer zu Kontakt), Unternehmen (Pointer zu Unternehmen), erwartetes Abschlussdatum (Datum), Notizen (String), zugewiesenAn (Pointer zu _User); objectId, createdAt, updatedAt (System). 5. Aktivität: Typ (String; z.B. Anruf, E-Mail, Meeting, Notiz), Betreff (String), Beschreibung (String), Fälligkeitsdatum (Datum), abgeschlossenAm (Datum), bezogenAuf (Pointer zu Kontakt oder Deal), erstelltVon (Pointer zu _User); objectId, createdAt, updatedAt (System). Sicherheit: - Setzen Sie ACLs, damit nur authentifizierte Benutzer auf Daten zugreifen können; verwenden Sie rollenbasierte oder besitzerbasierte Regeln, wo es angebracht ist (z.B. zugewiesenAn, erstelltVon). - Verwenden Sie Klassenebenenberechtigungen, damit nur authentifizierte Benutzer diese Klassen erstellen/lesen/aktualisieren/löschen können. Authentifizierung: - Anmeldung (Benutzername, E-Mail, Passwort) und Login; Unterstützung für Abmeldung/Sitzung. Verhalten: - Vollständiges CRUD für Unternehmen, Kontakt, Deal und Aktivität. - Listen Sie Deals mit Filter nach Phase und sortieren Sie nach erwartetesAbschlussdatum oder updatedAt (Pipeline-Ansicht). - Listen Sie Aktivitäten nach bezogenAuf (Kontakt oder Deal). - Optional: Echtzeit Live Queries für Deal und Aktivität für Dashboard/Pipeline-Updates. - Optional: Offline-Pinning für mobile (Kontakte, Deals, Aktivitäten). Liefern: - Erstellen Sie die Back4app-App mit dem obigen Schema, ACLs und allen benötigten Cloud-Code. - Generieren Sie das Frontend und verbinden Sie es mit diesem Backend; bereitstellen, damit die App end-to-end lauffähig ist.
Keine Kreditkarte erforderlich
API-Spielplatz
Versuchen Sie die REST- und GraphQL-Endpunkte für das CRM-Schema. Antworten aus den obigen Beispieldaten — kein Back4app-Konto erforderlich.
Header
{
"X-Parse-Application-Id": "YOUR_APP_ID",
"X-Parse-REST-API-Key": "YOUR_REST_API_KEY"
}Dieses Backend mit REST API verwenden
Verbinden Sie sich mit Ihrem Back4app-Backend über Standard-HTTP-Anfragen.
Holen Sie sich Ihre API-Anmeldeinformationen
Nachdem Sie Ihre App auf Back4app erstellt haben, finden Sie Ihre Anwendungs-ID und REST API-Schlüssel in App-Einstellungen → Sicherheit & Schlüssel. Alle Anfragen erfordern diese Header.
# Required headers for every request
X-Parse-Application-Id: YOUR_APP_ID
X-Parse-REST-API-Key: YOUR_REST_API_KEYEinen Kontakt erstellen
curl -X POST \
-H "X-Parse-Application-Id: YOUR_APP_ID" \
-H "X-Parse-REST-API-Key: YOUR_REST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Jane Doe","email":"[email protected]","phone":"+1234567890"}' \
https://parseapi.back4app.com/classes/ContactKontakte oder Angebote auflisten
curl -X GET \
-H "X-Parse-Application-Id: YOUR_APP_ID" \
-H "X-Parse-REST-API-Key: YOUR_REST_API_KEY" \
https://parseapi.back4app.com/classes/ContactEin Angebot aktualisieren
curl -X PUT \
-H "X-Parse-Application-Id: YOUR_APP_ID" \
-H "X-Parse-REST-API-Key: YOUR_REST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"done":true}' \
https://parseapi.back4app.com/classes/Deal/OBJECT_IDEin Angebot löschen
curl -X DELETE \
-H "X-Parse-Application-Id: YOUR_APP_ID" \
-H "X-Parse-REST-API-Key: YOUR_REST_API_KEY" \
https://parseapi.back4app.com/classes/Deal/OBJECT_IDHäufig gestellte Fragen
Häufige Fragen zum Backend-Template der CRM-App.
Bereit, Ihre CRM-App zu erstellen?
Starten Sie Ihr REST API-Projekt in wenigen Minuten. Keine Kreditkarte erforderlich.