Centurio System- og moduldokumentasjon
🏛️ Plattformarkittektur 🔑 Login
🏠 Alle moduler / crm_office / Billetter & Hjelpdesk
🎧

Billetter & Hjelpdesk

tickets crm_office 🛡️ RLS Protected

Kunderstøttebilletter, SLA-eskalationsnivåer, billettruttering og tilkobling til bestillinger og kundeportal.

Fachliche Bestimmung: Kanaliserer kunderavtaler, forstyrrelsesmeldinger og serviceoppdrag. Billetter kan opprettes direkte fra kundeneportalen, via e-post eller manuelt. Støtter interne teamnotiser (som forblir usynlige for kundene), tidsopptak og eskalering etter definerte servicelevels-avtaler (SLA).

⚡ Arbeidsstrømme og livssykluser

Fullbearbeidelse cascade:business.delivery_note.intake

Kaskade (review_gated).

1. stock
Varer innført i lager
Inventar
Aktionen: post_goods_receipt
2. tour
Planlegging av tur / videretransport
logistikk
Aktionen: create_tour
3. task
Tjekke innførsel av varer
oppgaver
Aktionen: create_task
4. qc
Kvalitetskontroll i tilfelle mangelfuller
Inventar
Aktionen: kvalitet.check.create
5. ticket
Klagekort for mangler
Billetter
Aktionen: create_ticket

vedlikehold / Reparasjon cascade:business.maintenance.cycle

Kaskade (review_gated).

1. fieldservice
Utøvelse av utlandsarbeid / rapportering
felttjeneste
Aktionen: create_service_report
2. followup
Planlegging av vedlikehold
eiendeler
Aktionen: vedlikehold
3. ticket
Billet i mangel/forstyrrelse
Billetter
Aktionen: create_ticket

Returnedarbeiding cascade:business.return_note.handling

Kaskade (review_gated).

1. ticket
Klagetitt
Billetter
Aktionen: create_ticket
2. tour
Planlegging av avholde tur
logistikk
Aktionen: create_tour
3. task
Fortsatt behandling av retur
oppgaver
Aktionen: create_task

Utvendig tjeneste → avregning cascade:business.work_report.billing

Kaskade (review_gated).

1. fieldservice
Utøvelse av tjenesteytring / tjenesterapport
felttjeneste
Aktionen: create_service_report
2. task
Utregning etterfølgelse
oppgaver
Aktionen: create_task
3. ticket
Billet i mangel/forstyrrelse
Billetter
Aktionen: create_ticket

Billet / inngang cascade_target:business.ticket.create

Kaskade (review_gated).

1. cascade
Billet / inngang

Billett status:ticket

Observativ tilstand (observativ_only).

1. new
nye
Status <unk>ny<unk> av statusmaskinbillet.
2. open
åpent
Status <unk>open<unk> av billettet til maskinen.
3. in_progress
in_progress
Status <unk>in_progress<unk> av billettet til maskinen.
4. pending_customer
pending_customer
Status <unk>pending_customer<unk> av billettet til en tilstandsmaskin.
5. pending_vendor
pending_vendor
Status <unk>pending_vendor<unk> av billettet til billettmaskinen.
6. resolved
utgjørt
Status av billetten
7. closed
lukket
Status av billetten til maskinen.
8. cancelled
avlyst
Status av billetten.

🗄️ Datamodeller & felt

TicketMessages ticket_messages RLS Aktiv
16 Feltet / kolonne

Tabelle ticket_messages

Feldname Data-type Tiltak Schlüssel Spesialdekst
ticket_id UUID Ja * FK ➔ tickets.id Feld ticket_id
author_user_id UUID Nein FK ➔ users.id Feld author_user_id
author_name VARCHAR(255) Ja * - Feld author_name
author_email VARCHAR(255) Nein - Feld author_email
is_internal BOOLEAN Ja * - Feld is_internal
body TEXT Ja * - Feld body
attachments JSONB Nein - Feld attachments
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
TicketSlaPolicies ticket_sla_policies RLS Aktiv
16 Feltet / kolonne

Tabelle ticket_sla_policies

Feldname Data-type Tiltak Schlüssel Spesialdekst
name VARCHAR(128) Ja * - Feld name
description TEXT Nein - Feld description
team_id UUID Nein FK ➔ ticket_teams.id Feld team_id
priority VARCHAR(16) Nein - Feld priority
target_response_hours NUMERIC(6, 2) Ja * - Feld target_response_hours
target_resolution_hours NUMERIC(6, 2) Ja * - Feld target_resolution_hours
is_active BOOLEAN Ja * - Feld is_active
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
TicketTeams ticket_teams RLS Aktiv
17 Feltet / kolonne

Tabelle ticket_teams

Feldname Data-type Tiltak Schlüssel Spesialdekst
name VARCHAR(128) Ja * - Feld name
code VARCHAR(32) Ja * - Feld code
description TEXT Nein - Feld description
email_alias VARCHAR(128) Nein - Feld email_alias
assignment_method VARCHAR(32) Ja * - Feld assignment_method
lead_user_id UUID Nein FK ➔ users.id Feld lead_user_id
is_active BOOLEAN Ja * - Feld is_active
color VARCHAR(16) Ja * - Feld color
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
TicketTimeLogs ticket_time_logs RLS Aktiv
15 Feltet / kolonne

Tabelle ticket_time_logs

Feldname Data-type Tiltak Schlüssel Spesialdekst
ticket_id UUID Ja * FK ➔ tickets.id Feld ticket_id
user_id UUID Nein FK ➔ users.id Feld user_id
work_date DATE Ja * - Feld work_date
hours NUMERIC(6, 2) Ja * - Feld hours
is_billable BOOLEAN Ja * - Feld is_billable
description TEXT Nein - Feld description
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
Tickets tickets RLS Aktiv
49 Feltet / kolonne

Tabelle tickets

Feldname Data-type Tiltak Schlüssel Spesialdekst
ticket_number VARCHAR(32) Ja * - Feld ticket_number
title VARCHAR(255) Ja * - Feld title
description TEXT Nein - Feld description
status VARCHAR(48) Ja * - Feld status
priority VARCHAR(48) Ja * - Feld priority
category VARCHAR(48) Ja * - Feld category
channel VARCHAR(48) Ja * - Feld channel
team_id UUID Nein FK ➔ ticket_teams.id Feld team_id
assigned_user_id UUID Nein FK ➔ users.id Feld assigned_user_id
customer_id UUID Nein FK ➔ customers.id Feld customer_id
contact_name VARCHAR(255) Nein - Feld contact_name
contact_email VARCHAR(255) Nein - Feld contact_email
contact_phone VARCHAR(64) Nein - Feld contact_phone
project_id UUID Nein FK ➔ projects.id Feld project_id
work_order_id UUID Nein FK ➔ work_orders.id Feld work_order_id
contract_id UUID Nein FK ➔ contracts.id Feld contract_id
asset_id UUID Nein FK ➔ assets.id Feld asset_id
quote_id UUID Nein FK ➔ quotes.id Feld quote_id
invoice_id UUID Nein FK ➔ invoices.id Feld invoice_id
return_id UUID Nein FK ➔ return_orders.id Feld return_id
service_report_id UUID Nein FK ➔ service_reports.id Feld service_report_id
sla_policy_id UUID Nein FK ➔ ticket_sla_policies.id Feld sla_policy_id
sla_status VARCHAR(48) Ja * - Feld sla_status
response_due_at DATETIME Nein - Feld response_due_at
first_responded_at DATETIME Nein - Feld first_responded_at
resolution_due_at DATETIME Nein - Feld resolution_due_at
resolved_at DATETIME Nein - Feld resolved_at
closed_at DATETIME Nein - Feld closed_at
is_billable BOOLEAN Ja * - Feld is_billable
hourly_rate NUMERIC(14, 2) Nein - Feld hourly_rate
currency VARCHAR(3) Ja * - Feld currency
planned_hours NUMERIC(8, 2) Nein - Feld planned_hours
logged_hours NUMERIC(8, 2) Ja * - Feld logged_hours
csat_rating INTEGER Nein - Feld csat_rating
csat_comment TEXT Nein - Feld csat_comment
csat_submitted_at DATETIME Nein - Feld csat_submitted_at
resolution_summary TEXT Nein - Feld resolution_summary
tags JSONB Nein - Feld tags
custom_fields JSONB Nein - Feld custom_fields
id UUID Nein PK Feld id
tenant_id UUID Ja * FK ➔ organizations.id Feld tenant_id
created_at DATETIME Ja * - Feld created_at
updated_at DATETIME Ja * - Feld updated_at
created_by UUID Nein - Feld created_by
updated_by UUID Nein - Feld updated_by
source_type VARCHAR(32) Nein - Feld source_type
source_id UUID Nein - Feld source_id
metadata JSONB Ja * - Feld metadata
deleted_at DATETIME Nein - Feld deleted_at

🔌 Startpunkter (UI og API)

Art Metode Endpunkt / vei Titel & Zweck Tillatelse
⚡ REST API GET /api/v1/tickets
list_tickets
Semantic binding: inventory_only; mutation=False
tickets
⚡ REST API GET /api/v1/tickets/sla-policies
list_sla_policies
Semantic binding: inventory_only; mutation=False
tickets
⚡ REST API GET /api/v1/tickets/stats
get_ticket_stats
Semantic binding: inventory_only; mutation=False
tickets
⚡ REST API GET /api/v1/tickets/teams
list_teams
Semantic binding: inventory_only; mutation=False
tickets
⚡ REST API GET /api/v1/tickets/{ticket_id}
get_ticket
Semantic binding: inventory_only; mutation=False
tickets
⚡ REST API GET /api/v1/tickets/{ticket_id}/messages
list_ticket_messages
Semantic binding: inventory_only; mutation=False
tickets
⚡ REST API GET /api/v1/tickets/{ticket_id}/timelogs
list_ticket_timelogs
Semantic binding: inventory_only; mutation=False
tickets
⚡ REST API GET /portal/{slug}/tickets
tickets_page
Semantic binding: inventory_only; mutation=False
tickets
⚡ REST API GET /portal/{slug}/tickets/{ticket_id}
ticket_detail
Semantic binding: inventory_only; mutation=False
tickets
⚡ REST API GET /tickets
tickets_page
Semantic binding: inventory_only; mutation=False
tickets
⚡ REST API GET /tickets/new
ticket_create_page
Semantic binding: inventory_only; mutation=False
tickets
⚡ REST API GET /tickets/{ticket_id}
ticket_detail_page
Semantic binding: inventory_only; mutation=False
tickets
⚡ REST API PATCH /api/v1/tickets/teams/{team_id}
update_team
Semantic binding: operator_surface; mutation=True
tickets
⚡ REST API POST /api/v1/tickets
create_ticket
Semantic binding: operator_surface; mutation=True
tickets
⚡ REST API POST /api/v1/tickets/sla-policies
create_sla_policy
Semantic binding: operator_surface; mutation=True
tickets
⚡ REST API POST /api/v1/tickets/teams
create_team
Semantic binding: operator_surface; mutation=True
tickets
⚡ REST API POST /api/v1/tickets/{ticket_id}/create-project
create_project_from_ticket
Semantic binding: operator_surface; mutation=True
tickets
⚡ REST API POST /api/v1/tickets/{ticket_id}/create-task
create_task_from_ticket
Semantic binding: operator_surface; mutation=True
tickets
⚡ REST API POST /api/v1/tickets/{ticket_id}/create-work-order
create_work_order_from_ticket
Semantic binding: operator_surface; mutation=True
tickets
⚡ REST API POST /api/v1/tickets/{ticket_id}/csat
submit_ticket_csat
Semantic binding: operator_surface; mutation=True
tickets
⚡ REST API POST /api/v1/tickets/{ticket_id}/messages
add_ticket_message
Semantic binding: operator_surface; mutation=True
tickets
⚡ REST API POST /api/v1/tickets/{ticket_id}/status
transition_ticket_status
Semantic binding: operator_surface; mutation=True
tickets
⚡ REST API POST /api/v1/tickets/{ticket_id}/timelogs
log_ticket_time
Semantic binding: operator_surface; mutation=True
tickets
⚡ REST API POST /portal/{slug}/tickets
ticket_create
Semantic binding: operator_surface; mutation=True
tickets
⚡ REST API POST /portal/{slug}/tickets/{ticket_id}/abschliessen
ticket_close
Semantic binding: operator_surface; mutation=True
tickets
⚡ REST API POST /portal/{slug}/tickets/{ticket_id}/antwort
ticket_reply
Semantic binding: operator_surface; mutation=True
tickets
⚡ REST API PUT /api/v1/tickets/{ticket_id}
update_ticket
Semantic binding: operator_surface; mutation=True
tickets

🛡️ Reglering og etterlevelse

Dieses Modul unterliegt folgenden gesetzlichen, regulatorischen und Revisionsstandards:

  • ITIL-tjeneste
  • SLA-tidskontroll
Kopplede moduler:
➔ customers ➔ portal ➔ workorders