Modelo de Backend para App de CRM
REST API — Guia de Schema, API e IA
Um schema de backend de REST API CRM pronto para produção e Starter Kit na Back4app: Contato, Empresa, Negócio, Atividade, estágios do pipeline, diagrama ER, dicionário de dados, schema JSON, playground de API e um prompt de Agente de IA com um clique para implantar em minutos.
Principais Conclusões
Nesta página você obtém um schema de CRM pronto para produção, um prompt de IA com um clique e código REST API passo a passo — para que você possa lançar um app de CRM sem construir o backend.
- Implante em minutos — Cole o prompt do Agente de IA e obtenha um aplicativo em funcionamento com contatos, empresas, negócios e pipeline.
- Seguro por padrão — ACLs e acesso baseado em funções para que os usuários vejam apenas seus negócios e dados atribuídos.
- REST API-nativo SDK — Objetos tipados, async/await, fixação offline e Live Queries para atualizações de pipeline.
- REST + GraphQL — Ambas as APIs geradas automaticamente; filtre negócios por estágio, liste atividades por relacionado a.
- Cinco classes — _Usuário (embutido), Empresa, Contato, Negócio (pipeline), Atividade (tarefas/eventos).
O que é o modelo de backend CRM da REST API?
Um backend CRM com foco em REST na Back4app: GET/POST/PUT/DELETE padrão em /classes/Contato, /classes/Negócio, e endpoints relacionados. Use X-Parse-Session-Token para autenticação e where/order para consultas de pipeline. Integre de qualquer stack — móvel, web ou lado do servidor — com códigos de status claros e payloads JSON. Nenhum GraphQL ou SDK necessário.
Melhor para:
Visão geral
Um REST API para CRM: GET /classes/Deal, POST /classes/Contact, PUT /classes/Deal/:id, e assim por diante. Back4app gera esses endpoints a partir do esquema; você envia X-Parse-Session-Token para autenticação e usa where e order para consultas de pipeline e lista.
O esquema (cinco classes: _User, Company, Contact, Deal, Activity) é o mesmo que para clientes SDK. Qualquer cliente HTTP pode se integrar — móvel, web ou servidor — com JSON padrão e códigos de status.
Recursos principais do CRM
REST API backend CRM: endpoints para Contato, Empresa, Negócio e Atividade com cabeçalhos de autenticação e códigos de status. Gerenciamento de pipeline e ACLs prontos para uso.
Gerenciamento de contatos
Armazene e gerencie contatos com nome, e-mail, telefone, empresa e notas. Ideal para aplicativos REST API.
Gestão de empresas
Rastreie empresas com nome, site, setor e endereço. Links para contatos e negócios.
Pipeline de negócios
Pipeline de vendas com etapas, valor, data de fechamento esperada e atribuição. Construído para backends REST API.
Rastreamento de atividades
Registre chamadas, e-mails, reuniões e notas vinculadas a contatos e negócios. Funciona com o SDK REST API.
Usuário e permissões
Modelo de usuário embutido e referências para propriedade e atribuição. ACLs prontas para uso para REST API.
Diagrama ER
Diagrama de Entidade-Relacionamento para o modelo de dados do aplicativo REST API CRM.
Ver fonte do diagrama
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"
Fluxo de Integração
Sequência Auth-to-CRUD: como seu aplicativo REST API se comunica com Back4app — login, depois consulta contatos e negócios, atualiza o pipeline.
Ver fonte do diagrama
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 listDicionário de Dados
Referência completa de campos para cada classe no esquema.
Contact
| Campo | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | automático |
| 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 | automático |
| updatedAt | Date | Auto-generated last-update timestamp | automático |
Company
| Campo | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | automático |
| 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 | automático |
| updatedAt | Date | Auto-generated last-update timestamp | automático |
Deal
| Campo | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | automático |
| 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 | automático |
| updatedAt | Date | Auto-generated last-update timestamp | automático |
Activity
| Campo | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | automático |
| 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 | automático |
| updatedAt | Date | Auto-generated last-update timestamp | automático |
_User
| Campo | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| objectId | String | Auto-generated unique identifier | automático |
| username | String | Login username | |
| String | Email address | ||
| password | String | Hashed password (write-only) | |
| createdAt | Date | Auto-generated creation timestamp | automático |
| updatedAt | Date | Auto-generated last-update timestamp | automático |
Esquema (JSON)
Definição de esquema JSON bruto — copie e use em seu aplicativo Back4app ou importe via API.
{
"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
}
}
}
]
}Construa com o Agente de IA
Use o Agente de IA Back4app para construir um aplicativo CRM real a partir deste modelo: ele criará o frontend, o backend (este esquema, autenticação e APIs) e fará a implantação — sem configuração manual. O prompt abaixo descreve esta pilha de CRM para que o Agente possa gerar um aplicativo pronto para produção de uma só vez.
Crie um aplicativo CRM no Back4app com este esquema e comportamento exatos. Esquema: 1. _Usuário (use Back4app embutido): nome de usuário (String, obrigatório), email (String, obrigatório), senha (String, obrigatório); objectId, createdAt, updatedAt (sistema). 2. Empresa: nome (String, obrigatório), site (String), setor (String), endereço (String), notas (String), criadoPor (Ponteiro para _Usuário); objectId, createdAt, updatedAt (sistema). 3. Contato: nome (String, obrigatório), email (String), telefone (String), empresa (Ponteiro para Empresa), notas (String), criadoPor (Ponteiro para _Usuário); objectId, createdAt, updatedAt (sistema). 4. Negócio: título (String, obrigatório), valor (Número), estágio (String; por exemplo, lead, qualificado, proposta, negociação, ganho, perdido), contato (Ponteiro para Contato), empresa (Ponteiro para Empresa), dataFechamentoEsperada (Data), notas (String), atribuídoA (Ponteiro para _Usuário); objectId, createdAt, updatedAt (sistema). 5. Atividade: tipo (String; por exemplo, chamada, email, reunião, nota), assunto (String), descrição (String), dataVencimento (Data), concluídoEm (Data), relacionadoA (Ponteiro para Contato ou Negócio), criadoPor (Ponteiro para _Usuário); objectId, createdAt, updatedAt (sistema). Segurança: - Defina ACLs para que apenas usuários autenticados possam acessar os dados; use regras baseadas em função ou baseadas em proprietário onde apropriado (por exemplo, atribuídoA, criadoPor). - Use Permissões em Nível de Classe para que apenas usuários autenticados possam criar/ler/atualizar/excluir essas classes. Autenticação: - Cadastro (nome de usuário, email, senha) e login; suporte para logout/sessão. Comportamento: - CRUD completo para Empresa, Contato, Negócio e Atividade. - Liste negócios com filtro por estágio e ordene por dataFechamentoEsperada ou updatedAt (visualização de pipeline). - Liste atividades por relacionadoA (Contato ou Negócio). - Opcional: Live Queries em tempo real para Negócio e Atividade para atualizações de painel/pipeline. - Opcional: fixação offline para mobile (Contatos, Negócios, Atividades). Entregar: - Crie o aplicativo Back4app com o esquema acima, ACLs e qualquer Cloud Code necessário. - Gere o frontend e conecte-o a este backend; implante para que o aplicativo seja executável de ponta a ponta.
Nenhum cartão de crédito necessário
API Playground
Experimente os endpoints REST e GraphQL para o esquema CRM. Respostas dos dados de exemplo acima — nenhuma conta Back4app necessária.
Cabeçalhos
{
"X-Parse-Application-Id": "YOUR_APP_ID",
"X-Parse-REST-API-Key": "YOUR_REST_API_KEY"
}Usando este backend com REST API
Conecte-se ao seu backend Back4app usando requisições HTTP padrão.
Obtenha suas credenciais de API
Após criar seu aplicativo no Back4app, encontre seu ID do Aplicativo e Chave REST API em Configurações do App → Segurança e Chaves. Todas as solicitações requerem esses cabeçalhos.
# Required headers for every request
X-Parse-Application-Id: YOUR_APP_ID
X-Parse-REST-API-Key: YOUR_REST_API_KEYCriar um contato
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/ContactListar contatos ou negócios
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/ContactAtualizar um negócio
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_IDExcluir um negócio
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_IDPerguntas Frequentes
Perguntas comuns sobre o modelo de backend do aplicativo CRM.
Pronto para Construir Seu App de CRM?
Comece seu projeto REST API em minutos. Nenhum cartão de crédito necessário.