Plantilla REST API

Plantilla de Backend para la App CRM
REST API — Guía de Esquema, API y AI

Un esquema de backend de REST API CRM listo para producción y un Kit de Inicio en Back4app: Contacto, Empresa, Negocio, Actividad, etapas del pipeline, diagrama ER, diccionario de datos, esquema JSON, playground de API, y un prompt de Agente de AI con un clic para desplegar en minutos.

Puntos Clave

En esta página obtienes un esquema de CRM listo para producción, un prompt de AI con un clic, y código REST API paso a paso — para que puedas lanzar una app CRM sin construir el backend.

  1. Despliega en minutosPega el aviso del Agente de IA y obtén una aplicación en funcionamiento con contactos, empresas, ofertas y pipeline.
  2. Seguro por defectoACLs y acceso basado en roles para que los usuarios vean solo sus ofertas y datos asignados.
  3. REST API-SDK nativoObjetos tipados, async/await, fijación offline y Live Queries para actualizaciones de pipeline.
  4. REST + GraphQLAmbas APIs generadas automáticamente; filtra ofertas por etapa, lista actividades por relacionado con.
  5. Cinco clases_Usuario (incorporado), Empresa, Contacto, Oferta (pipeline), Actividad (tareas/eventos).

¿Qué es la plantilla Backend CRM de REST API?

Un backend CRM primero REST en Back4app: GET/POST/PUT/DELETE estándar en /classes/Contact, /classes/Deal, y endpoints relacionados. Utiliza X-Parse-Session-Token para autenticación y where/order para consultas de pipeline. Integra desde cualquier stack — móvil, web, o del lado del servidor — con códigos de estado claros y cargas útiles JSON. No se requiere GraphQL ni SDK.

Mejor para:

Equipos de ventasCreadores de CRMPrototipado rápidoRepresentantes de campoLanzamientos de MVPEquipos eligiendo un BaaS para CRM

Descripción general

Un REST API para CRM: GET /classes/Deal, POST /classes/Contact, PUT /classes/Deal/:id, y así sucesivamente. Back4app genera estos endpoints a partir del esquema; envías X-Parse-Session-Token para autenticación y usas where y order para consultas de pipeline y listas.

Descripción general

Características principales del CRM

Backend de CRM REST API: endpoints para Contacto, Empresa, Negocio y Actividad con encabezados de autenticación y códigos de estado. Gestión de pipeline y ACLs listos para usar.

Gestión de contactos

Almacena y gestiona contactos con nombre, correo electrónico, teléfono, empresa y notas. Ideal para aplicaciones REST API.

Gestión de empresas

Rastrea empresas con nombre, sitio web, industria y dirección. Enlaces a contactos y ofertas.

Tubería de ofertas

Tubería de ventas con etapas, monto, fecha de cierre esperada y asignación. Construido para backends de REST API.

Seguimiento de actividades

Registra llamadas, correos electrónicos, reuniones y notas vinculadas a contactos y negocios. Funciona con el SDK de REST API.

Usuario y permisos

Modelo de usuario integrado y punteros para propiedad y asignación. ACLs listos para usar para REST API.

Diagrama ER

Diagrama de entidad-relación para el modelo de datos de la aplicación CRM REST API.

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"
Cargando diagrama…
Ver fuente del diagrama
Mermaid
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"

Flujo de integración

Secuencia de Auth-to-CRUD: cómo tu aplicación REST API se comunica con Back4app — iniciar sesión, luego consultar contactos y negocios, actualizar el pipeline.

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 list
Cargando diagrama…
Ver fuente del diagrama
Mermaid
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 list

Diccionario de datos

Referencia completa de campos para cada clase en el esquema.

Contact

CampoTipoDescripciónRequerido
objectIdStringAuto-generated unique identifierautomático
nameStringFull name of the contact
emailStringEmail address
phoneStringPhone number
companyPointer<Company>Company this contact belongs to
notesStringFree-form notes
createdByPointer<_User>User who created this contact
createdAtDateAuto-generated creation timestampautomático
updatedAtDateAuto-generated last-update timestampautomático

Company

CampoTipoDescripciónRequerido
objectIdStringAuto-generated unique identifierautomático
nameStringCompany name
websiteStringCompany website URL
industryStringIndustry or sector
addressStringPhysical or mailing address
notesStringFree-form notes
createdByPointer<_User>User who created this company
createdAtDateAuto-generated creation timestampautomático
updatedAtDateAuto-generated last-update timestampautomático

Deal

CampoTipoDescripciónRequerido
objectIdStringAuto-generated unique identifierautomático
titleStringDeal title or name
amountNumberDeal value or amount
stageStringPipeline stage (e.g. lead, qualified, proposal, won, lost)
contactPointer<Contact>Primary contact for this deal
companyPointer<Company>Company associated with this deal
expectedCloseDateDateExpected close date
notesStringFree-form notes
assignedToPointer<_User>User assigned to this deal
createdAtDateAuto-generated creation timestampautomático
updatedAtDateAuto-generated last-update timestampautomático

Activity

CampoTipoDescripciónRequerido
objectIdStringAuto-generated unique identifierautomático
typeStringActivity type (call, email, meeting, note)
subjectStringSubject or title
descriptionStringDescription or body
dueDateDateDue date
completedAtDateWhen the activity was completed
relatedToPointerPointer to Contact or Deal
createdByPointer<_User>User who created this activity
createdAtDateAuto-generated creation timestampautomático
updatedAtDateAuto-generated last-update timestampautomático

_User

CampoTipoDescripciónRequerido
objectIdStringAuto-generated unique identifierautomático
usernameStringLogin username
emailStringEmail address
passwordStringHashed password (write-only)
createdAtDateAuto-generated creation timestampautomático
updatedAtDateAuto-generated last-update timestampautomático

Esquema (JSON)

Definición de esquema JSON en bruto — copia y usa en tu aplicación Back4app o importa a través de la API.

JSON
{
  "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
        }
      }
    }
  ]
}

Construir con el Agente de IA

Utiliza el Agente de IA de Back4app para construir una aplicación CRM real a partir de esta plantilla: creará el frontend, el backend (este esquema, autenticación y APIs) y lo desplegará — sin configuración manual. El aviso a continuación describe esta pila CRM para que el Agente pueda generar una aplicación lista para producción de una sola vez.

Agente de IA Back4app
Listo para construir
Crea una aplicación CRM en Back4app con este esquema y comportamiento exactos.

Esquema:
1. _Usuario (usar Back4app incorporado): nombre de usuario (String, requerido), correo electrónico (String, requerido), contraseña (String, requerido); objectId, createdAt, updatedAt (sistema).
2. Empresa: nombre (String, requerido), sitio web (String), industria (String), dirección (String), notas (String), creadoPor (Puntero a _Usuario); objectId, createdAt, updatedAt (sistema).
3. Contacto: nombre (String, requerido), correo electrónico (String), teléfono (String), empresa (Puntero a Empresa), notas (String), creadoPor (Puntero a _Usuario); objectId, createdAt, updatedAt (sistema).
4. Negocio: título (String, requerido), monto (Número), etapa (String; por ejemplo, cliente potencial, calificado, propuesta, negociación, ganado, perdido), contacto (Puntero a Contacto), empresa (Puntero a Empresa), fechaEsperadaCierre (Fecha), notas (String), asignadoA (Puntero a _Usuario); objectId, createdAt, updatedAt (sistema).
5. Actividad: tipo (String; por ejemplo, llamada, correo electrónico, reunión, nota), asunto (String), descripción (String), fechaVencimiento (Fecha), completadoEn (Fecha), relacionadoCon (Puntero a Contacto o Negocio), creadoPor (Puntero a _Usuario); objectId, createdAt, updatedAt (sistema).

Seguridad:
- Establecer ACLs para que solo los usuarios autenticados puedan acceder a los datos; usar reglas basadas en roles o basadas en propietarios donde sea apropiado (por ejemplo, asignadoA, creadoPor).
- Usar Permisos a Nivel de Clase para que solo los usuarios autenticados puedan crear/leer/actualizar/eliminar estas clases.

Autenticación:
- Registro (nombre de usuario, correo electrónico, contraseña) e inicio de sesión; soporte para cerrar sesión/sesión.

Comportamiento:
- CRUD completo para Empresa, Contacto, Negocio y Actividad.
- Listar negocios con filtro por etapa y ordenar por fechaEsperadaCierre o updatedAt (vista de pipeline).
- Listar actividades por relacionadoCon (Contacto o Negocio).
- Opcional: Live Queries en tiempo real para Negocio y Actividad para actualizaciones de panel/pipeline.
- Opcional: fijación fuera de línea para móvil (Contactos, Negocios, Actividades).

Entregar:
- Crear la aplicación Back4app con el esquema anterior, ACLs y cualquier Código en la Nube necesario.
- Generar el frontend y conectarlo a este backend; desplegar para que la aplicación sea ejecutable de extremo a extremo.

No se requiere tarjeta de crédito

API Playground

Prueba los endpoints REST y GraphQL para el esquema CRM. Respuestas de los datos de ejemplo anteriores — no se necesita cuenta de Back4app.

GET
https://parseapi.back4app.com/classes/Contact
Encabezados
{
  "X-Parse-Application-Id": "YOUR_APP_ID",
  "X-Parse-REST-API-Key": "YOUR_REST_API_KEY"
}

Usando este backend con REST API

Conéctate a tu backend de Back4app utilizando solicitudes HTTP estándar.

1

Obtén tus credenciales de API

Después de crear tu aplicación en Back4app, encuentra tu ID de Aplicación y REST API Clave en Configuración de la App → Seguridad y Claves. Todas las solicitudes requieren estos encabezados.

Bash
# Required headers for every request
X-Parse-Application-Id: YOUR_APP_ID
X-Parse-REST-API-Key: YOUR_REST_API_KEY
2

Crear un contacto

Bash
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/Contact
3

Listar contactos o negocios

Bash
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/Contact
4

Actualizar un negocio

Bash
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_ID
5

Eliminar un negocio

Bash
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_ID

Preguntas Frecuentes

Preguntas comunes sobre la plantilla del backend de la aplicación CRM.

¿Qué es Back4app?
¿Por qué usar Back4app para un CRM REST API?
¿Cómo enumero los tratos por etapa con REST?
¿Cómo creo una actividad vinculada a un trato?

¿Listo para construir tu aplicación CRM?

Comienza tu proyecto REST API en minutos. No se requiere tarjeta de crédito.