

Un contrato convierte una relación comercial en un compromiso con fechas: desde cuándo, hasta cuándo y con qué condiciones.
Es lo que separa a un cliente que compra cuando se le ocurre de un cliente que genera ingresos previsibles.
Por eso, para un negocio de servicios o de suscripción, el contrato es el registro más valioso del sistema.
Una venta se agota cuando se entrega y se cobra.
Un contrato, en cambio, sigue vivo mucho después de firmado y va generando ventas o facturas periódicas mientras dure.
Esa diferencia de duración es la que obliga a vigilarlo: nadie tiene que acordarse de una venta cerrada, pero olvidarse de un contrato cuesta caro.
Un contrato que vence sin que nadie lo note se transforma en un servicio que se sigue prestando sin respaldo o en un cliente que se va sin que nadie lo llame.
Los dos escenarios son evitables con un aviso anticipado.
Por eso los sistemas serios guardan la fecha de fin y avisan con semanas de anticipación.
Un contrato no está completo hasta que las dos partes lo firman, y las dos firmas rara vez ocurren el mismo día.
Registrar por separado quién firmó por el cliente y quién firmó por la empresa, con sus fechas, permite saber en qué punto está trabado el proceso.
También permite responder algo que en una auditoría siempre se pregunta: quién autorizó esto.
Casi todo contrato tiene alguna cláusula que se salió del molde: un descuento por volumen, un plazo de pago distinto o una garantía extendida.
Guardarlas dentro del registro y no en un archivo suelto es lo que evita que la excepción se pierda cuando cambia el vendedor a cargo de la cuenta.
Una empresa de mantenimiento firma con un consorcio un acuerdo por veinticuatro meses con visitas mensuales.
Se carga el contrato con su fecha de inicio, su duración y un aviso de vencimiento a noventa días.
Tres meses antes del cierre el responsable recibe el aviso y llega a la renegociación con tiempo, en lugar de correr detrás del cliente en la última semana.
El error más frecuente es guardar el contrato firmado como archivo adjunto y no cargar sus datos como registro.
Un archivo no se puede filtrar, ni sumar, ni avisar cuando vence, así que el sistema pierde justamente la parte útil.
La Plataforma resuelve el contrato con un objeto propio de 33 campos entre los de negocio y los de sistema.
Es de los pocos objetos del área comercial que exige un dato de negocio y no solo autonuméricos.
La Plataforma exige la cuenta del cliente, cosa que ni la venta ni el envío piden, y exige también el estado y la categoría de estado.
El número de contrato se genera solo, de forma correlativa, así que no hay que inventarlo.
Las fechas de inicio y de fin son opcionales, que es la trampa más incómoda del objeto: se puede guardar un contrato sin vencimiento y quedarse sin aviso.
La lista de Estado tiene cinco valores exactos y mezcla dos idiomas: Draft, Nuevo, En progreso, In Approval Process y Activated.
Esa mezcla viene de la configuración actual del ambiente y conviene unificarla antes de poner el objeto en producción.
Detrás hay una segunda lista, la categoría de estado, con trece valores que cubren el ciclo completo, entre ellos Negotiating, Awaiting Signature, Signed, Activated, Expired, Terminated, Rejected y Canceled.
La duración se guarda en meses, con un campo numérico de hasta cuatro dígitos.
El aviso anticipado al responsable admite seis plazos fijos: 15, 30, 45, 60, 90 y 120 días antes del vencimiento.
Elegir 90 o 120 es lo razonable para acuerdos anuales, porque una renegociación seria no se resuelve en dos semanas.
Del lado del cliente se guardan tres datos: quién firmó, en qué fecha y con qué cargo, este último en un campo de hasta 40 caracteres.
Del lado de la empresa se guardan dos: quién firmó y cuándo.
Además queda registrado quién activó el contrato y en qué momento, que es un dato distinto del de la firma.
Hay dos campos de texto largo con propósitos distintos.
Condiciones especiales admite 4.000 caracteres y está pensado para las cláusulas que se apartan del estándar.
Descripción admite 32.000 caracteres y sirve para el resumen general del acuerdo.
Una Vista de lista ordenada por fecha de fin muestra de un vistazo qué contratos vencen primero.
Para el seguimiento conviene un Informe agrupado por estado y un Panel de información con los vencimientos de los próximos noventa días.
Sí, porque las fechas de inicio y de fin son opcionales en la Plataforma.
No conviene hacerlo, porque sin fecha de fin no hay aviso de vencimiento y el contrato deja de ser vigilable.
El estado es la lista corta que usa el equipo en el día a día, con cinco valores.
La categoría de estado es la lista larga de trece valores que describe el ciclo completo, desde la negociación hasta la rescisión.
No de forma automática en el ambiente verificado.
El contrato guarda las condiciones y la lista de precios asociada, pero la emisión periódica se define en la configuración de cada empresa.
Los plazos disponibles son 15, 30, 45, 60, 90 y 120 días.
Para acuerdos anuales conviene 90 o 120 días, porque deja margen para renegociar precios y alcance sin trabajar contra reloj.
El objeto es el estándar Contract, sin ningún objeto personalizado con prefijo EGAFutura__ que lo reemplace.
Tiene 33 campos y ningún campo fórmula ni de resumen acumulado.
Con IsNillable: false figuran AccountId (Lookup(Account)), ContractNumber (Auto Number), Status (Picklist), StatusCode (Picklist) y OwnerId.
AccountId es el dato clave: es obligatorio, a diferencia de lo que ocurre en Opportunity, en EGAFutura__Sales_Order__c y en EGAFutura__Shipment__c.
StartDate y EndDate son Date y ambos opcionales, mientras que ContractTerm es Number(4, 0) expresado en meses.
ActivatedDate y LastApprovedDate son Date/Time.
CustomerSignedId (Lookup(Contact)), CustomerSignedDate (Date), CustomerSignedTitle (Text 40), CompanySignedId (Lookup(User)), CompanySignedDate (Date) y ActivatedById (Lookup(User)).
Draft, Nuevo, En progreso, In Approval Process y Activated.
La lista mezcla inglés y español, igual que ocurre en el objeto estándar Order, y conviene unificarla antes de salir a producción.
Draft, InApproval, Activated, Terminated, Expired, Rejected, Negotiating, AwaitingSignature, SignatureDeclined, Signed, Cancelled, Expired2 y Terminated2.
15, 30, 45, 60, 90 y 120, con etiquetas en inglés del tipo 15 Days.
SpecialTerms es Text Area(4000), Description es Long Text Area(32000), BillingAddress es de tipo Address y Pricebook2Id apunta a la lista de precios.
Verificado contra la organización de desarrollo el 8 de agosto de 2026.
El ERP está en construcción, así que conviene reverificar campos y listas antes de apoyarse en estos datos para una implementación.