SolveClaims logo SolveClaims Docs
Inapoi la solveclaims.com
EN RO
Start

De ce echipele trec la SolveClaims

Echipele nu pierd clienti dintr-o singura reclamatie. Ii pierd cand cazurile raman blocate, nu este clar cine raspunde, iar clientul primeste raspuns tarziu.

SolveClaims rezolva exact asta: flux strict, owner clar, timp vizibil pe fiecare etapa, ca echipa sa livreze mai repede fara sa sacrifice calitatea.

Pasi clari.

  • Zi de zi Membrii echipei stiu imediat urmatorul pas.
  • Operational Mai putine cazuri raman blocate in inbox.
  • Business Mai putine escaladari publice si incredere mai mare in brand.

Ownership vizibil.

  • Zi de zi Fiecare caz are owner si status vizibil.
  • Operational Managerii vad riscul inainte sa se piarda termenele.
  • Business Poti scala operatiunea fara sa pierzi consistenta.

Comunicare consistenta.

  • Zi de zi Raspunsuri mai clare, mai calme, mai usor de urmarit.
  • Operational Mai putin ping-pong si mai putine neclaritati.
  • Business Retentie mai buna si incredere mai mare in companie.
Pasul 1

Cum te inregistrezi?

Onboarding-ul este scurt si sigur. Ordinea pasilor este fixa, ca sa validam corect identitatea si datele companiei.

  1. Pasul 1 - Email: introduci emailul de administrator.
  2. Pasul 2 - Validare OTP: confirmi codul primit pe email.
  3. Pasul 3 - Profil companie: completezi datele companiei, numele adminului si parola.

Dupa trimitere, organizatia intra in PENDING_APPROVAL. Accesul final vine dupa validare.

Exemplu: setup initial

O echipa de retail termina tot onboarding-ul intr-o singura sesiune, apoi invita agentii dupa aprobare.

Exemplu: handover sigur

Owner-ul finalizeaza onboarding-ul, iar conturile admin se creeaza ulterior, dupa stabilirea responsabilitatilor interne.

Pasul 2

Bine ai venit: ce setezi mai intai...

In Dashboard -> Settings, owner-ul configureaza regulile de lucru ale echipei.

Politica SLA Politica taguri Appearance (logo + culoare) API keys Limba
  • Politica SLA: seteaza timpii tinta pentru cazurile noi.
  • Politica taguri: defineste ce taguri sunt obligatorii la clasificare.
  • Appearance: logo si identitate vizuala in comunicarea cu clientul (in functie de plan).
  • API keys: chei owner-level pentru integrari externe.
  • Limba: limba de lucru in aplicatie.
Pasul 3

Roluri si de ce conteaza in echipa

Rolurile exista ca deciziile sa fie clare si sa evitam actiuni gresite.

Rol Responsabilitate principala Actiuni uzuale
Owner Control business si guvernanta Aprobari, politici, API keys, reguli de echipa
Admin Coordonare zilnica Aprobari, monitorizare, distribuire munca, deblocare cazuri
Agent Executie Preia cazuri, scrie propuneri, inchide rezolvari
Collaborator Suport punctual Ajuta pe cazurile unde are vizibilitate
Member Participare limitata Executa taskuri in zona lui de responsabilitate
Pasul 4

Complaint journey cap-coada

Acesta este traseul operational al unei reclamatii.

Status Ce inseamna Ce urmeaza
NEW Reclamatie noua, inca nepreluata Agent/Admin/Owner o preia
IN_PROGRESS Se lucreaza activ pe caz Clasificare cu taguri, propunere, pas urmator
WAITING_FOR_APPROVAL Asteapta decizie interna Admin/Owner aproba sau retrimite la ajustare
WAITING_CLIENT_SIGNATURE Propunerea este la client Clientul confirma sau cazul se inchide pe timeout
PROCESSING_SOLUTION Clientul a confirmat Echipa implementeaza solutia promisa
SOLVED Implementare finalizata Caz rezolvat operational
CLOSED Inchis fara confirmare client Owner/Admin poate redeschide la IN_PROGRESS
Pasul 5

Actiuni care muta cazul inainte

Actiunile sunt gandite pe pasi. Nu sarim etape.

  • Preia reclamatia: muta NEW in IN_PROGRESS.
  • Trimite la aprobare: din IN_PROGRESS in WAITING_FOR_APPROVAL.
  • Aproba si trimite la client: in WAITING_CLIENT_SIGNATURE.
  • Confirmare client: tranzitie de sistem spre PROCESSING_SOLUTION.
  • Finalizeaza: din PROCESSING_SOLUTION in SOLVED.
Important: tranzitiile din WAITING_CLIENT_SIGNATURE sunt controlate de sistem, pentru consistenta si audit.
Pasul 6

Functionalitati folosite zilnic de echipe

Aceste functionalitati sunt folosite cel mai des pentru un flux sanatos de reclamatii.

  • Logo + culori brand: comunicare coerenta catre client.
  • AI text refining: reformuleaza mesaje scurte ca sa fie mai clare.
  • Twilio SMS: contact rapid cu clientul pentru confirmari.
  • Resend email: trimitere structurata si trasabila.
  • Audit trail: actiunile critice raman inregistrate.
  • Control consum: limite de plan + addon-uri gestionate din HQ.
Pasul 7

Din discutii lungi in taskuri clare

Taskurile transforma discutiile lungi in pasi concreti cu owner si termen.

  • Taskurile pot avea continut, termen, responsabil si legatura cu reclamatia.
  • Owner/Admin pot delega catre alti colegi.
  • Cat timp cazul este NEW, taskurile sunt blocate (triage lock).
  • Daca un utilizator este suspendat/sters, taskurile deschise sunt realocate pentru continuitate.

Exemplu: Operatiuni

"Colecteaza formularul semnat pana la 16:00", alocat specialistului logistic.

Exemplu: Financiar

"Emite rambursarea partiala si ataseaza dovada", cu termen si owner clar.

Pasul 8

Comentarii si mention fara zgomot

Comentariile sunt separate dupa scopul comunicarii.

NORMAL INTERNAL_NOTE CLIENT_MESSAGE
  • Comentariu normal: discutie operationala vizibila echipei.
  • Nota interna: context intern, mai restrictiv.
  • Mesaj catre client: comunicare externa pe canalele clientului.

Reguli mention (pe inteles simplu)

  • Mention nu este permis in CLIENT_MESSAGE.
  • Nu te poti mentiona pe tine.
  • Poti mentiona doar colegi care vad deja cazul si acel tip de mesaj.
  • In notele interne, regulile sunt mai stricte decat in comentariile normale.
Pasul 9

SLA: ce setezi si de ce conteaza

SLA este politica de timp. Pune tinte clare pe fiecare etapa.

Etapa SLA Status unde se masoara Semnificatie operationala
First response SLA NEW Cat de repede este preluata o reclamatie noua
Classification SLA IN_PROGRESS Cat de repede pui tagurile obligatorii dupa preluare
Approval SLA WAITING_FOR_APPROVAL Cat de repede vine decizia interna
Client response SLA WAITING_CLIENT_SIGNATURE Cat timp are clientul la dispozitie sa raspunda
Resolution SLA PROCESSING_SOLUTION Cat de repede executa echipa dupa acceptarea clientului

Exemplu simplu

Daca first response SLA este 2h si cazul apare la 10:00, preluarea trebuie facuta pana la 12:00 ca sa ramai in verde.

Pasul 10

Taguri si impactul lor in SLA

Tagurile nu sunt doar etichete. Ele cresc calitatea clasificarii si pot influenta timpul de pregatire a propunerii.

ISSUE_TYPE SEVERITY CAUSE SEGMENT
  • ISSUE_TYPE poate seta baza de ore.
  • SEVERITY poate multiplica presiunea de timp (de ex. 150%).
  • CAUSE poate adauga bonus de complexitate (de ex. +20%).
  • SEGMENT este pentru raportare si nu modifica SLA.

Exemplu numeric clar

Baza ore din issue type = 8h, factor severitate = 150%, bonus complexitate = 20%. Tinta finala = ceil(8 x 1.5 x 1.2) = 15h.

Regula operationala: fara taguri obligatorii, fluxul de propunere este blocat intentionat.
Pasul 11

Coverage transfer care previne blocajele operationale

Folosesti coverage transfer cand un coleg este indisponibil (concediu planificat sau absenta neasteptata), astfel incat cazurile active sa continue fara risc SLA.

  1. Owner/Admin selecteaza membrul sursa si backup-ul.
  2. Alegi transfer imediat sau fereastra programata.
  3. Pentru varianta programata, backup-ul accepta inainte de start.
  4. La activare, ownership-ul operational activ si taskurile deschise se muta la backup.
  5. La finalul ferestrei, regulile de ownership se aplica automat in functie de stadiul propunerii.
  • Personal notes raman personale si nu se transfera.
  • Cazurile transferate au marker discret pentru vizibilitate.
  • CSAT ramane consistent cu regulile de ownership ale propunerii.
Banda API

API docs in acelasi roadmap

Banda API este pentru echipele care vor sa importe reclamatii din site-uri sau aplicatii externe.

Endpoint-ul principal din aceasta documentatie: POST https://app.solve.claims/api/v1/ingest.

API 1

Genereaza API key (doar Owner)

  1. Logheaza-te in app.solve.claims cu rol Owner.
  2. Intra la Dashboard -> Settings -> API Keys.
  3. Creeaza cheia si copiaz-o imediat (se afiseaza o singura data).
Baseline securitate: cheia ramane server-side. Nu o expune in JavaScript public.
API 2

Endpoint si payload

Endpoint: POST https://app.solve.claims/api/v1/ingest

Headers:

Content-Type: application/json
x-api-key: sc_live_...

Exemplu body:

{
  "clientName": "Jane Doe",
  "clientEmail": "jane@example.com",
  "clientPhone": "+40 700 000 000",
  "reference": "ORDER-1001",
  "description": "Complaint details",
  "files": [
    {
      "name": "invoice.pdf",
      "type": "application/pdf",
      "size": 245760
    }
  ]
}
  • Tipuri permise: image/jpeg, image/png, image/webp, application/pdf
  • Limita: max 8 fisiere/reclamatie, max 10MB/fisier
  • Rate limit: endpoint-ul poate intoarce 429 Too Many Requests; respecta Retry-After
  • Politica: fisierele video sunt blocate in ingest API
API 3

Flux upload in 2 pasi

  1. Trimiti ingest cu datele cazului si metadatele fisierelor.
  2. Primesti complaintId + uploads[] cu signed URL-uri.
  3. Incarci fiecare fisier real cu PUT pe URL-urile primite.
{
  "success": true,
  "complaintId": "cm123...",
  "uploads": [
    {
      "fileName": "invoice.pdf",
      "fileType": "application/pdf",
      "uploadUrl": "https://...signed-url..."
    }
  ]
}
API 4

Cerinte de securitate si note de cost

  • Foloseste endpoint relay pe backend-ul tau (Node/PHP/Python/WordPress app).
  • Whitelist de origini in INGEST_ALLOWED_ORIGINS.
  • Valideaza tipurile de fisiere atat in UI, cat si in backend.
  • Gestioneaza corect retry cand primesti 429.

Lifecycle scanare atasamente

  • PENDING: scanare in curs, download blocat.
  • CLEAN: download permis.
  • MALICIOUS: carantina.
  • FAILED: blocat pana la remediere.

Model simplu estimare S3

stored_gb = complaints_per_month * avg_files_per_complaint * avg_file_size_mb / 1024
storage_cost = stored_gb * storage_rate_per_gb
put_cost = (total_upload_requests / 1000) * put_rate
get_cost = (total_download_requests / 1000) * get_rate
API 5

Snippet-uri

Node.js (Express relay backend)
import express from "express";
import fetch from "node-fetch";

const app = express();
app.use(express.json({ limit: "2mb" }));

app.post("/api/complaints/submit", async (req, res) => {
  const payload = {
    clientName: req.body.clientName,
    clientEmail: req.body.clientEmail || "",
    clientPhone: req.body.clientPhone || "",
    reference: req.body.reference || "",
    description: req.body.description,
    files: req.body.files || []
  };

  const ingestResponse = await fetch("https://app.solve.claims/api/v1/ingest", {
    method: "POST",
    headers: {
      "content-type": "application/json",
      "x-api-key": process.env.SOLVECLAIMS_API_KEY
    },
    body: JSON.stringify(payload)
  });

  const ingestData = await ingestResponse.json();
  if (!ingestResponse.ok) {
    return res.status(ingestResponse.status).json(ingestData);
  }

  return res.json(ingestData);
});
WordPress (request server-side)
add_action('admin_post_nopriv_sc_submit_complaint', 'sc_submit_complaint');
add_action('admin_post_sc_submit_complaint', 'sc_submit_complaint');

function sc_submit_complaint() {
  $payload = array(
    'clientName' => sanitize_text_field($_POST['clientName'] ?? ''),
    'clientEmail' => sanitize_email($_POST['clientEmail'] ?? ''),
    'reference' => sanitize_text_field($_POST['reference'] ?? ''),
    'description' => sanitize_textarea_field($_POST['description'] ?? ''),
    'files' => array(),
  );

  $response = wp_remote_post('https://app.solve.claims/api/v1/ingest', array(
    'headers' => array(
      'Content-Type' => 'application/json',
      'x-api-key' => getenv('SOLVECLAIMS_API_KEY'),
    ),
    'body' => wp_json_encode($payload),
    'timeout' => 20,
  ));

  wp_redirect(home_url('/complaint-thank-you/'));
  exit;
}
PHP (cURL)
<?php
$payload = [
  "clientName" => $_POST["clientName"],
  "clientEmail" => $_POST["clientEmail"] ?? "",
  "reference" => $_POST["reference"] ?? "",
  "description" => $_POST["description"],
  "files" => []
];

$ch = curl_init("https://app.solve.claims/api/v1/ingest");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "Content-Type: application/json",
  "x-api-key: " . getenv("SOLVECLAIMS_API_KEY")
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
?>
API 6

FAQ API

Putem trimite direct din browser catre ingest?

Tehnic se poate, dar expui API key-ul. In productie, recomandarea este relay server-side.

Utilizatorul final poate urca orice tip de fisier?

Nu. Politica ingest permite doar JPEG, PNG, WEBP si PDF.

Unde apar reclamatiile importate?

Apar in Dashboard -> Claims cu status NEW si intra in fluxul standard.