Datatypes
documentation/core/datatypes
Datatypes
Datatypes are the language Praxsuite uses to store, validate, and connect information. Because Praxsuite is a data-first platform, we need a clear set of rules for what kind of data is being stored and how that data should behave. Datatypes make your system organized, predictable, and scalable. They also give you freedom. By choosing the right datatypes, you can shape simple tables into complex, real-world structures without writing backend code.
Datatypes are the language Praxsuite uses to store, validate, and connect information. Because Praxsuite is a data-first platform, we need a clear set of rules for what kind of data is being stored and how that data should behave. Datatypes make your system organized, predictable, and scalable.
They also give you freedom. By choosing the right datatypes, you can shape simple tables into complex, real-world structures without writing backend code.
In Praxsuite there are two families of datatypes:
Primitives: atomic values like text, numbers, dates, and booleans.
Relational: datatypes that connect records, users, files, states, or secure data.
Primitive datatypes
Primitive datatypes are the basic building blocks. They describe single values and are used to define the fields inside your tables.
Short Text (255 chars)
For short strings and labels.
Use it for: names, titles, codes, categories.
Example:
Client Name: "Acme Corp"Vehicle Plate: "BK-PL-92"
Long Text (10,000 chars)
For content that needs more space.
Use it for: descriptions, notes, comments, internal documentation.
Example:
Ticket Description: "Customer reports intermittent outage..."
Email (validated with @)
A text field with built-in email validation.
Use it for: user emails, contact fields, login identifiers.
Example:
Billing Email: "finance@company.com"
For an email address to be accepted, it must contain an “@” symbol and a valid domain extension, such as .com, .cl, .edu, .io, etc.
Phone
A structured phone field (formatted/validated depending on config).
Use it for: contact numbers, support lines, WhatsApp-ready contacts.
Example:
Contact Phone: "+56 9 7777 8888"
Tags
Tags are short, indexable labels meant for grouping and fast filtering. Unlike text, tags are treated as categorical identifiers, not free-form writing.
Use it for: segmentation, quick classification, search and analytics.
Example:
Client Tags: ["VIP", "Retail", "North Zone"]
Then you can filter clients by tag instantly.
Number
A general numeric field that supports decimals.
Use it for: measurements, amounts, scores, quantities.
Example:
Weight: 72.5Rating: 4.7
Integer
Whole numbers only.
Use it for: counts, units, ranking positions.
Example:
Units Sold: 12
Big Integer
Whole numbers with very large precision.
Use it for: large counters, external IDs, high-scale numbering.
Example:
Invoice Sequential ID: 9000000000123
Decimal
Floating-point numbers with explicit precision.
Use it for: values where rounding matters (finance, science).
Example:
Exchange Rate: 942.3761
Currency
A number formatted and treated as money.
Use it for: prices, costs, budgets, payments.
Example:
Monthly Subscription: $15.00
Percentage
A number displayed as a percent and often constrained between 0 and 100.
Use it for: discounts, completion rates, KPIs.
Example:
Project Progress: 65%Discount: 10%
Date
Calendar date without time.
Use it for: birthdays, deadlines, due dates, milestones.
Example:
Contract Start Date: 2025-01-15
Date & Time (with milliseconds)
A timestamp including hour/minute/second and milliseconds.
Use it for: logs, events, scheduling, audit trails.
Example:
Payment Received At: 2025-01-15 14:02:33.125
Period (start date to end date)
Represents a time interval.
Use it for: bookings, projects, subscriptions, vacations.
Example:
Rental Period: 2025-01-01 to 2025-01-10
Boolean
True or false.
Use it for: on/off switches, flags, eligibility checks.
Example:
Is Active: trueHas Signed Contract: false
GUID
A globally unique identifier value.
Use it for: integrations, syncing external systems, immutable IDs.
Example:
External CRM ID: "550e8400-e29b-41d4-a716-446655440000"
Note: Every record in Praxsuite already has its own internal immutable ID. GUID is only needed when you want to store an additional external identifier.
Relational datatypes
Relational datatypes are used when a field should reference something beyond a simple value, such as another record, a file, a user, or a system-level object. These datatypes are what turn separate tables into a real operational graph.
Status
A state-machine datatype that defines valid stages in a flow or funnel.
Use it for: workflows, approvals, pipelines, lifecycles.
Example:
A Sales Pipeline Status could be:
Lead
Qualified
Proposal Sent
Won
Lost
This lets you build reliable processes where data moves through controlled states.
Files
A field that attaches one or more files to a record.
Use it for: documents, images, PDFs, contracts, evidence, media.
Example:
Client Contract (Files): [contract.pdf]Vehicle Photos (Files): [front.jpg, side.jpg]
EndUser
A reference to an end-user (your customer) synced through Praxsuite Community or customer-facing systems.
Use it for: linking operational data to real customers.
Example:
An
Orderrecord references the EndUser who placed it.
This connects back-office operations to customer identity.
System User
A reference to an internal/admin user in your workspace.
Use it for: ownership, responsibility, approvals, assignment.
Example:
Assigned Manager (System User): Vincent DepassierApproved By (System User): Finance Team
AI Agents
A reference to an AI Agent connected to a record.
Use it for: automation assistants, reasoning agents, task handlers.
Example:
A
Support Ticketcan reference an AI Agent that helps classify or draft responses.A
Projectcan reference an AI Agent that monitors progress.
Table (relation to another table)
A relationship field that links a record to another record in a different table.
This is the “great sauce” of Praxsuite: it lets you build interconnected systems like a real relational database, but visually.
Use it for: any real-world relationship.
Examples:
Tasks -> Project(each task belongs to a project)Invoices -> ClientVehicles -> FleetEmployees -> Department
Once linked, relationships power filters, dashboards, automations, and APIs.
Secrets
Encrypted fields for sensitive values.
Use it for: passwords, tokens, API keys, private credentials.
Example:
Stripe Secret KeySMTP Password
Secrets are stored encrypted and only surfaced to authorized users and secure system operations.
Why Datatypes matter
Datatypes do three critical jobs in Praxsuite:
They keep data clean and consistent
Validation prevents broken systems and messy operations.They make tables smarter than spreadsheets
Status, relations, files, users, and secrets build “real backend behavior” into your data.They unlock scalable processes
Once your datatypes are right, workflows and automations become reliable because they are grounded in structured data.