Skip to main content Enter
ERP.AI Helpdesk & Ticketing

Helpdesk & Ticketing

Start now
Pricing Frequently asked questions Get started
Build with Proto

Modules

TicketsKeep the customer conversation with the request. QueuesRoute each request to someone who can take responsibility. SLAsTrack response and resolution against the agreed service policy.
KnowledgeGive agents useful internal answers close to the ticket. PortalLet customers follow their own requests with clear updates. EscalationsMove difficult or urgent requests to the right level of support.

Helpdesk & Ticketing

Start now
Pricing Frequently asked questions Get started
Build with Proto

Processes

Approve a service policySet service targets that the team can apply and explain. Route a new support requestMove a verified request into an eligible owner’s queue.
Work and resolve a ticketKeep specialist handoffs and service commitments connected. Close the request and collect feedbackFinish the service episode without losing the customer’s response.

Helpdesk & Ticketing

Start now
Pricing Frequently asked questions Get started
Build with Proto

Industries

Internal IT helpdesksSupport employees with accountable access and troubleshooting requests. B2B customer supportCoordinate customer questions across first-line and specialist teams.
Business operations supportGive shared-service requests a visible owner and resolution path.

Helpdesk & Ticketing

Start now
Pricing Frequently asked questions Get started
Build with Proto

Reference

Roles and permissionsOwnership and visibility for support staff and customers. Reports and analyticsService performance grounded in ticket episodes and actual feedback. Data modelCustomer conversations, service episodes and accountable handoffs.
IntegrationsConnect support intake and feedback without losing event identity. ImplementationPrepare queues, service commitments and customer access for real support work. Agent and automationUse Proto to configure the same service model shown on the website.

Helpdesk & Ticketing

Start now
Pricing Frequently asked questions Get started
Build with Proto
All systems
Modules
TicketsKeep the customer conversation with the request.QueuesRoute each request to someone who can take responsibility.SLAsTrack response and resolution against the agreed service policy.KnowledgeGive agents useful internal answers close to the ticket.PortalLet customers follow their own requests with clear updates.EscalationsMove difficult or urgent requests to the right level of support.
Processes
Approve a service policySet service targets that the team can apply and explain.Route a new support requestMove a verified request into an eligible owner’s queue.Work and resolve a ticketKeep specialist handoffs and service commitments connected.Close the request and collect feedbackFinish the service episode without losing the customer’s response.
Industries
Internal IT helpdesksSupport employees with accountable access and troubleshooting requests.B2B customer supportCoordinate customer questions across first-line and specialist teams.Business operations supportGive shared-service requests a visible owner and resolution path.
Reference
Roles and permissionsOwnership and visibility for support staff and customers.Reports and analyticsService performance grounded in ticket episodes and actual feedback.Data modelCustomer conversations, service episodes and accountable handoffs.IntegrationsConnect support intake and feedback without losing event identity.ImplementationPrepare queues, service commitments and customer access for real support work.Agent and automationUse Proto to configure the same service model shown on the website.
Sign in
Sign in Start now
Helpdesk & Ticketing References
Data model3 of 6
  • Roles and permissions1 of 6
  • Reports and analytics2 of 6
  • Data model3 of 6
  • Integrations4 of 6
  • Implementation5 of 6
  • Agent and automation6 of 6

Data model

Customer conversations, service episodes and accountable handoffs.

18 tables · 52 relationships

Data model 18 tables
mastertransaction Agents.Team → Teams Teams.Manager → Agents Queues.Team → Teams Queues.RoutingCursor → Agents SLAPolicies.PreparedBy → Agents TicketCategories.DefaultQueue → Queues TicketComments.Author → Agents TicketComments.AuthorCustomer → Customers TicketComments.Ticket → Tickets TicketAttachments.UploadedBy → Agents TicketAttachments.UploadedByCustomer → Customers TicketAttachments.Ticket → Tickets TicketAttachments.Comment → TicketComments TicketActivityLog.ChangedBy → Agents TicketActivityLog.Ticket → Tickets TicketActivityLog.CustomerActor → Customers KBArticles.Category → TicketCategories KBArticles.Author → Agents TicketKnowledgeLinks.Ticket → Tickets TicketKnowledgeLinks.Article → KBArticles TicketKnowledgeLinks.LinkedBy → Agents Tickets.Customer → Customers Tickets.Category → TicketCategories Tickets.Queue → Queues Tickets.Assignee → Agents Tickets.SLAPolicy → SLAPolicies Tickets.CurrentEpisode → ServiceEpisodes Escalations.Ticket → Tickets Escalations.FromAgent → Agents SLABreaches.Ticket → Tickets SLABreaches.SLAPolicy → SLAPolicies SLABreaches.AcknowledgedBy → Agents SLABreaches.ServiceEpisode → ServiceEpisodes AssignmentHistory.Ticket → Tickets AssignmentHistory.FromAgent → Agents CSATSurveys.Ticket → Tickets CSATSurveys.Customer → Customers CSATSurveys.ServiceEpisode → ServiceEpisodes TicketTags.Ticket → Tickets TicketTags.TaggedBy → Agents ServiceEpisodes.Ticket → Tickets ServiceEpisodes.SLAPolicy → SLAPolicies ServiceEpisodes.CategoryAtStart → TicketCategories ServiceEpisodes.AgentAtResolution → Agents ServiceEpisodes.TeamAtResolution → Teams CustomersmasterCustomerNumberFullNameEmail AgentsmasterTeamManagerAgentID TeamsmasterTeamCodeManagerName QueuesmasterQueueCodeTeamOverflowQueue SLAPoliciesmasterPolicyCodeStatusPreparedBy TicketCategoriesmasterCategoryCodeDefaultQueueName TicketCommentslineDeliveryStatusAuthorAuthorCustomer TicketAttachmentslineUploadedByUploadedByCustomerTicket TicketActivityLoglineChangedByTicketCustomerActor KBArticlesmasterArticleNumberCategoryAuthor TicketKnowledgeLinkslineStatusTicketArticle TicketstransactionTicketNumberStatusCustomer EscalationstransactionEscalationNumberStatusTicket SLABreachestransactionRecordNumberStatusTicket AssignmentHistorytransactionRecordNumberStatusTicket CSATSurveystransactionRecordNumberStatusDeliveryStatus TicketTagstransactionRecordNumberStatusTicket ServiceEpisodestransactionEpisodeNumberStatusTicket
Data modelTable names and relationships

How the model is organised

People and routing

Customers, Agents, Teams, Queues, TicketCategories, TicketTags. Define verified participants, queue ownership and the classification used to route requests.

  • Customers
  • Agents
  • Teams
  • Queues
  • TicketCategories
  • TicketTags

Requests and conversations

Tickets, TicketComments, TicketAttachments, TicketActivityLog. Retain each customer request with its public or private conversation and protected files.

  • Tickets
  • TicketComments
  • TicketAttachments
  • TicketActivityLog

Service commitments

SLAPolicies, ServiceEpisodes, SLABreaches. Preserve versioned targets, reopen cycles and missed commitments without rewriting history.

  • SLAPolicies
  • ServiceEpisodes
  • SLABreaches

Handoffs and feedback

Escalations, AssignmentHistory, CSATSurveys. Record accountable changes in ownership and feedback from the actual closed episode and recipient.

  • Escalations
  • AssignmentHistory
  • CSATSurveys

Knowledge in context

KBArticles, TicketKnowledgeLinks. Keep maintained guidance and deliberate internal article use separate from a public customer answer.

  • KBArticles
  • TicketKnowledgeLinks

Keys and references

WorkspaceID is server assigned throughout. Every ticket child and any optional comment reference must agree on its parent. Commands compare current revisions and retain durable replay keys. Service episode sequence and survey keys are unique per ticket occurrence; service actors are named explicitly instead of fabricated as human agents.

Migration order

  1. 1 Configure verified Agents and Customers identities, team membership, queues, categories and scoped access.
  2. 2 Prepare SLAPolicies and pinned business calendars; obtain a different Support Manager approval before activation.
  3. 3 Import tickets with actual ownership, public/private comments and protected attachments, preserving intake identifiers.
  4. 4 Reconcile ServiceEpisodes, earlier targets, pauses, resolutions and SLABreaches; do not recalculate historical success from current policy.
  5. 5 Import assignment and escalation history, maintained KBArticles and deliberate TicketKnowledgeLinks.
  6. 6 Reconcile actual CSAT invitation and response state, then test intake, clock arithmetic, routing concurrency, customer access and provider reconciliation.

Tables

18 tables
CustomersEnd users who open tickets. A customer may be an internal employee (for an IT helpdesk) or an external contact (for a B2B support team).master
FieldTypeRequiredDetails
CustomerNumbertextyes
FullNametextyes
Emailtextyes
Phonetext
CompanytextFor external customers
TypeselectyesInternal, External, Partner
VIPFlagbooleanyesExtra-careful handling
PortalAccessbooleanyesCan log into customer portal
PreferredLanguagetextConfigured language code; does not imply automatic translation
Activebooleanyes
PrincipalIDtextVerified external identity; unique in workspace
WorkspaceIDtextyesServer-assigned tenant scope; every reference and query enforces it.
RevisionnumberyesExpected revision for authorized changes; append-only events cannot be edited.
AgentsInternal support staff — L1 reps, L2 specialists, managers, admins.master
FieldTypeRequiredDetails
AgentIDtextyes
FullNametextyes
Emailtextyes
RoleselectyesAdmin, Support Manager, Agent L1, Agent L2
Teamreference→ Teams
Managerreference→ Agents
SkillstextComma-separated skill tags
ShiftselectDay, Swing, Night
MaxConcurrentnumberMax concurrently open tickets
Activebooleanyes
PrincipalIDtextVerified internal identity; unique in workspace
WorkspaceIDtextyesServer-assigned tenant scope; every reference and query enforces it.
RevisionnumberyesExpected revision for authorized changes; append-only events cannot be edited.
TeamsFunctional support groupings (IT Support, Billing, Technical, Tier 2).master
FieldTypeRequiredDetails
TeamCodetextyes
Nametextyes
Managerreference→ Agents
CoverageHoursselectyesBusinessHours, Extended, 24x7
Activebooleanyes
WorkspaceIDtextyesServer-assigned tenant scope; every reference and query enforces it.
RevisionnumberyesExpected revision for authorized changes; append-only events cannot be edited.
QueuesRouting destinations for tickets. A queue belongs to a team.master
FieldTypeRequiredDetails
QueueCodetextyes
Nametextyes
Teamreferenceyes→ Teams
RequiredSkillstextComma-separated skill tags
RoutingStrategyselectyesRoundRobin, LeastLoaded, SkillMatch, Manual
OverflowQueuereference→ Queues (self)
Activebooleanyes
WorkspaceIDtextyesServer-assigned tenant scope; every reference and query enforces it.
RevisionnumberyesExpected revision for authorized changes; append-only events cannot be edited.
RoutingCursorreference→ Agents; Server-owned cursor; atomic eligible-agent round-robin reservation.
SLAPoliciesResponse and resolution targets by priority, applied to tickets at intake.master
FieldTypeRequiredDetails
PolicyCodetextyes
Nametextyes
PriorityselectyesLow, Medium, High, Urgent
FirstResponseMinutesnumberyesTarget in business minutes
ResolutionMinutesnumberyes
BusinessHoursOnlybooleanyesPause outside business hours
PauseOnPendingbooleanyesPause while waiting on customer
EffectiveFromdateyes
Activebooleanyes
StatusselectDraft, Submitted, Approved, Retired
VersiontextImmutable policy version after approval
CalendarVersiontextConfigured holiday/business-hours calendar and time zone
PreparedByreferenceyes→ Agents; immutable material preparer of this policy version.
ApprovalRevisionnumberExact protected revision approved; changed targets invalidate it.
SubmittedByreference→ Agents
ApprovedByreference→ Agents; Support Manager distinct from submitter
ApprovedAtdatetimeDecision time
ReopenDaysnumberConfigured positive reopen window in days
WorkspaceIDtextyesServer-assigned tenant scope; every reference and query enforces it.
RevisionnumberyesExpected revision for authorized changes; append-only events cannot be edited.
TicketCategoriesTopical categorization for triage and reporting (Bug, HowTo, Billing, AccessRequest, Outage, …).master
FieldTypeRequiredDetails
CategoryCodetextyes
Nametextyes
DefaultQueuereference→ Queues
DefaultPriorityselectLow, Medium, High, Urgent
Activebooleanyes
WorkspaceIDtextyesServer-assigned tenant scope; every reference and query enforces it.
RevisionnumberyesExpected revision for authorized changes; append-only events cannot be edited.
TicketsThe core support record — one per customer issue.transaction
FieldTypeRequiredDetails
TicketNumbertextyes
Subjecttextyes
Customerreferenceyes→ Customers
Categoryreference→ TicketCategories
SourceselectyesEmail, WebForm, Portal, API, Phone
Queuereference→ Queues; Nullable only while configuration exception is unresolved.
Assigneereference→ Agents
PriorityselectyesLow, Medium, High, Urgent
StatusselectyesNew, Open, Pending, OnHold, Resolved, Closed
SLAPolicyreference→ SLAPolicies; Approved policy required before triage completes; null on visible configuration exception.
FirstResponseDuedatetimeServer projection of active episode first-response target; null while configuration unresolved.
ResolutionDuedatetimeServer projection of active episode EndTime; null while configuration unresolved.
FirstResponseAtdatetimeStore UTC timestamp; display in configured time zone.
ResolvedAtdatetimeStore UTC timestamp; display in configured time zone.
ClosedAtdatetimeStore UTC timestamp; display in configured time zone.
ReopenedCountnumberyesDefault 0
ResolutiontextFinal resolution notes
RootCauseCategoryselectBug, Config, HowTo, Billing, Access, ThirdParty, Other
CreatedAtdatetimeServer intake time
IntakeKeytextUnique source connector and event identifier
PolicyVersiontextFrozen approved SLAPolicy version
CalendarVersiontextPinned configured business-hours calendar and time zone
FirstResponseTargetMinutesnumberFrozen first-response target at intake
ResolutionTargetMinutesnumberFrozen resolution target for the service episode
PendingSincedatetimeStart of current authorized pending pause
PausedBusinessMinutesnumberAccumulated eligible paused minutes
EpisodenumberStarts at 1; increments on authorized reopen
RevisionnumberyesExpected revision for authorized changes; append-only events cannot be edited.
WorkspaceIDtextyesServer-assigned tenant scope; every reference and query enforces it.
ConfigurationExceptionlongtextMissing policy, calendar or queue; visible until explicitly resolved.
PublicResolutionlongtextCustomer-facing summary; internal Resolution stays private.
CurrentEpisodereference→ ServiceEpisodes; Set atomically when valid triage creates an episode.
TicketCommentsEvery reply and internal note on a ticket.line
FieldTypeRequiredDetails
Authorreference→ Agents (agent reply or note)
AuthorCustomerreference→ Customers (customer reply)
VisibilityselectyesPublic, Internal
Bodytextyes
CreatedAtdatetimeyesStore UTC timestamp; display in configured time zone.
Ticketreferenceyes→ Tickets; Mandatory parent; related comment and actor scope must match this ticket.
CommandKeytextUnique reply command; retry returns existing comment
WorkspaceIDtextyesServer-assigned tenant scope; every reference and query enforces it.
RevisionnumberyesExpected revision for authorized changes; append-only events cannot be edited.
DeliveryStatusselectyesNotRequired, Queued, Accepted, Failed, Unknown; portal persistence is NotRequired, email requires provider acceptance.
ProviderMessageIDtextCorrelated outbound message; unknown sends reconcile before retry.
TicketAttachmentsFiles attached to a ticket or its comments (logs, screenshots, receipts).line
FieldTypeRequiredDetails
FileNametextyes
FileSizenumberyesBytes
MimeTypetextyes
StorageURLtextyes
UploadedByreference→ Agents (or customer via UploadedByCustomer)
UploadedByCustomerreference→ Customers
UploadedAtdatetimeyesStore UTC timestamp; display in configured time zone.
Ticketreferenceyes→ Tickets; Mandatory parent; related comment and actor scope must match this ticket.
Commentreference→ TicketComments; optional, same ticket required
VisibilityselectPublic, Internal
WorkspaceIDtextyesServer-assigned tenant scope; every reference and query enforces it.
RevisionnumberyesExpected revision for authorized changes; append-only events cannot be edited.
TicketActivityLogImmutable audit of every state, owner, priority, queue, and SLA change.line
FieldTypeRequiredDetails
EventTypeselectyesStatusChange, Assignment, Reassignment, QueueChange, PriorityChange, SLAApplied, Escalated, Reopened, Closed
OldValuetext
NewValuetext
ChangedByreference→ Agents; only when ActorKind = Agent
ChangedAtdatetimeyesStore UTC timestamp; display in configured time zone.
Ticketreferenceyes→ Tickets; Mandatory parent; related comment and actor scope must match this ticket.
ActorKindselectAgent, Customer, Service
CustomerActorreference→ Customers; customer events only
ServiceNametextAllowlisted service principal name when automated
WorkspaceIDtextyesServer-assigned tenant scope; every reference and query enforces it.
RevisionnumberyesExpected revision for authorized changes; append-only events cannot be edited.
CommandKeytextyesUnique authorized event occurrence.
Episodenumberyes
EscalationsEvery escalation hop on a ticket.transaction
FieldTypeRequiredDetails
EscalationNumbertextyes
Ticketreferenceyes→ Tickets
ReasonselectyesSLARisk, CustomerRequest, ComplexityL2, VIP, Complaint
FromAgentreference→ Agents
ToAgentreferenceyes→ Agents
EscalatedAtdatetimeyesStore UTC timestamp; display in configured time zone.
AcknowledgedAtdatetimeStore UTC timestamp; display in configured time zone.
ResolvedAtdatetimeStore UTC timestamp; display in configured time zone.
WorkspaceIDtextyesServer-assigned tenant scope; every reference and query enforces it.
RevisionnumberyesExpected revision for authorized changes; append-only events cannot be edited.
StatusselectyesRecorded
CommandKeytextyesUnique ticket/escalation occurrence.
SLABreachesSLA clock breach events per ticket.transaction
FieldTypeRequiredDetails
Ticketreferenceyes→ Tickets
SLAPolicyreferenceyes→ SLAPolicies
BreachTypeselectyesFirstResponse, Resolution
TargetAtdatetimeyesWhen it was due Store UTC timestamp; display in configured time zone.
BreachedAtdatetimeyesStore UTC timestamp; display in configured time zone.
MinutesOvernumberyes
Acknowledgedbooleanyes
AcknowledgedByreference→ Agents
EpisodenumberTicket service episode at breach
AcknowledgedAtdatetimeAcknowledgment time, never removes breach
RootCauseNotetextManager review reason
WorkspaceIDtextyesServer-assigned tenant scope; every reference and query enforces it.
RevisionnumberyesExpected revision for authorized changes; append-only events cannot be edited.
RecordNumbertextyes
StatusselectyesRecorded
BreachKeytextyesUnique Ticket/Episode/BreachType; retries preserve original target and timestamp.
ServiceEpisodereferenceyes→ ServiceEpisodes; Same ticket and episode required.
AssignmentHistoryAudit of every assignee change on a ticket, for workload reporting and reassignment review.transaction
FieldTypeRequiredDetails
Ticketreferenceyes→ Tickets
FromAgentreference→ Agents (null on first assignment)
ToAgentreferenceyes→ Agents
Assignerreference→ Agents; otherwise ServiceName is required
ReasonselectInitialAssign, Reassign, Escalation, Overflow, AutoRoute
AssignedAtdatetimeyesStore UTC timestamp; display in configured time zone.
ServiceNametextAllowlisted routing principal on automated assignment
WorkspaceIDtextyesServer-assigned tenant scope; every reference and query enforces it.
RevisionnumberyesExpected revision for authorized changes; append-only events cannot be edited.
RecordNumbertextyes
StatusselectyesRecorded
CommandKeytextyesUnique authorized ownership change.
CSATSurveysOne feedback invitation per eligible closed ticket episode. Unsent surveys have no score or SentAt; response is an explicit verified recipient action.transaction
FieldTypeRequiredDetails
Ticketreferenceyes→ Tickets
Customerreferenceyes→ Customers
ScorenumberInteger 1–5, required only when Status = Responded
Commenttext
SentAtdatetimeSet only after provider accepts the survey message.
RespondedAtdatetimeStore UTC timestamp; display in configured time zone.
StatusselectQueued, Sent, Responded, Expired, Failed
SurveyKeytextUnique ticket and closure episode
EpisodenumberClosed ticket episode surveyed
WorkspaceIDtextyesServer-assigned tenant scope; every reference and query enforces it.
RevisionnumberyesExpected revision for authorized changes; append-only events cannot be edited.
RecordNumbertextyes
RecipientTokenHashtextStore only hash of single-purpose expiring token.
TokenExpiresAtdatetime
TokenConsumedAtdatetime
DeliveryStatusselectyesQueued, Accepted, Failed, Unknown
ProviderMessageIDtext
ServiceEpisodereferenceyes→ ServiceEpisodes; Must match Ticket/Episode and be closed before invitation.
KBArticlesInternal-only notes that agents link to tickets as quick-reference macros. Deliberately lightweight — no authoring workflow, no versioning, no customer-facing portal. Teams needing a real KB link out to their external wiki.master
FieldTypeRequiredDetails
ArticleNumbertextyes
Titletextyes
BodytextyesMarkdown
Categoryreference→ TicketCategories
Authorreferenceyes→ Agents
UseCountnumberyesDefault 0, incremented on link
LastUpdatedAtdatetimeyesStore UTC timestamp; display in configured time zone.
Activebooleanyes
ExternalURLtextOptional approved knowledge-source URL
WorkspaceIDtextyesServer-assigned tenant scope; every reference and query enforces it.
RevisionnumberyesExpected revision for authorized changes; append-only events cannot be edited.
TicketTagsFree-form tags on tickets for reporting and ad-hoc grouping. Modeled as a separate table so reports can count and group independently.transaction
FieldTypeRequiredDetails
Ticketreferenceyes→ Tickets
Tagtextyese.g. "outage-2026-04-15", "vpn", "billing-dispute"
TaggedByreferenceyes→ Agents
TaggedAtdatetimeyesStore UTC timestamp; display in configured time zone.
WorkspaceIDtextyesServer-assigned tenant scope; every reference and query enforces it.
RevisionnumberyesExpected revision for authorized changes; append-only events cannot be edited.
RecordNumbertextyes
StatusselectyesRecorded
ServiceEpisodesService-time history for initial intake and each authorized reopen. The schedule shows elapsed service windows against due targets, not appointments.transaction
FieldTypeRequiredDetails
EpisodeNumbertextyes
Ticketreferenceyes→ Tickets
EpisodenumberyesUnique sequence per ticket; starts at one.
CommandKeytextyesUnique intake/reopen intent for this episode.
StartTimedatetimeyesIntake time or verified reopen time.
EndTimedatetimeyesCurrent resolution deadline computed from approved targets and eligible pauses.
OriginalEndTimedatetimeyesFrozen initial resolution deadline; never overwritten by pause or acknowledgment.
FirstResponseEndTimedatetimeRequired only for Episode 1; reopening creates a resolution window and does not invent a second first-response obligation.
FirstResponseAtdatetime
ResolvedAtdatetime
ClosedAtdatetime
StatusselectyesOpen, Pending, OnHold, Resolved, Closed
SLAPolicyreferenceyes→ SLAPolicies
PolicyVersiontextyes
CalendarVersiontextyes
FirstResponseTargetMinutesnumberyes
ResolutionTargetMinutesnumberyes
PausedBusinessMinutesnumberyes
PendingSincedatetime
WorkspaceIDtextyes
Revisionnumberyes
PriorityAtStartselectyesLow, Medium, High, Urgent; frozen episode priority; later edits cannot rewrite it.
CategoryAtStartreference→ TicketCategories; Frozen episode category; null remains uncategorized.
AgentAtResolutionreference→ Agents; Immutable current-assignee snapshot when ResolvedAt is first set.
TeamAtResolutionreference→ Teams; Immutable owning queue-team snapshot at resolution.
TicketKnowledgeLinksInternal, auditable links between a ticket and a permitted knowledge note or external-source reference.line
FieldTypeRequiredDetails
Ticketreferenceyes→ Tickets
Articlereferenceyes→ KBArticles
LinkedByreferenceyes→ Agents
LinkedAtdatetimeyes
LinkKeytextyesUnique deliberate ticket/article link occurrence; retry does not increase UseCount.
StatusselectyesActive, Removed
WorkspaceIDtextyes
Revisionnumberyes
ERP•AI workspace

Start now Helpdesk & Ticketing

Create your ERP.AI account and get started with Proto.

Start now Download agent
Previous · reference 2 of 6Reports and analyticsNext · reference 4 of 6Integrations

Customize Helpdesk & Ticketing. With Proto, your desktop AI agent.

Ask Proto to help you customize Helpdesk & Ticketing.

Customize
Helpdesk & Ticketing.
Ask: “Adapt Tickets.”
ProtoYour desktop AI agent
Download nowFree install · ~1 GB · AI usage extra
macOSWindowsLinux

Bring your first idea to Proto.

Keep this page open while you install Proto. Connect your account and model, then paste this into a new chat.

AI usage is paid separately. You can edit the prompt before copying.

ERP.AI

Business apps and the Proto desktop agent.

  • Business Apps
  • Proto
  • Workflows
  • Headless SaaS
  • Enterprise
  • Pricing
  • Contact
  • Terms of Service
  • Privacy Policy
  • Cookie Policy
© 2026 ERP•AI. All rights reserved.
System status

Your Privacy, Your Choice

We use essential cookies to run the site and optional cookies for features, analytics, and relevant content. See Cookie policy

Manage Your Cookie Preferences

We use cookies to enhance your experience, analyze site traffic, and serve relevant content. By clicking "Accept All," you agree to our use of cookies. You can customize your preferences at any time.

Learn more about how we use cookies

These cookies are required for the website to function properly. They ensure security, enable basic features like page navigation, and store user session data. You cannot disable these cookies.

These cookies enable additional features that enhance your experience, such as live chat, video playback, personalized content recommendations, and remembering user preferences.

These cookies help us understand how visitors interact with our site by collecting anonymous usage data. This allows us to measure performance, detect issues, and continuously improve the user experience.

These cookies allow us and advertising partners, including X, to deliver ads tailored to your interests. They track browsing habits across sites to provide relevant advertising and measure ad effectiveness.