API Endpoints
| Metoda | Ścieżka | Opis |
|——–|———|——|
| GET | /form/results.json | Lista zgłoszeń |
| GET | /form/results/:id.json | Pojedyncze zgłoszenie |
| POST | /form/results/save | Zapisanie zgłoszenia (publiczny) |
| DELETE | /form/results/:id.json | Usunięcie zgłoszenia |
| POST | /form/results/:id/close | Zamknięcie zgłoszenia |
| POST | /form/results/:id/open | Otwarcie zgłoszenia |
Pola zgłoszenia
| Pole | Typ | Opis |
|——|—–|——|
| id | integer | ID zgłoszenia |
| form_id | integer | ID formularza |
| result | object | Dane: klucz = ID pola, wartość = {question, answer, kind} |
| closed | boolean | Czy zamknięte |
| ip | string | Adres IP |
| referrer | text | Strona źródłowa |
| client_id | integer | ID klienta CRM |
| created_at | datetime | Data zgłoszenia |
Struktura result
Klucze to ID pól formularza. Każda odpowiedź zawiera pytanie (question), odpowiedź (answer) i typ pola (kind).
Przykład: { "456": { "question": "Imię", "answer": "Jan", "kind": "string" } }
Zapisanie zgłoszenia (publiczny)
POST /form/results/save
Endpoint publiczny, bez autoryzacji. Używany przez widget.
Parametry: result.form_id (ID formularza), result.results (obiekt z odpowiedziami: klucz = ID pola, wartość = obiekt z polem answer), _antispam (flaga honeypot), _form_elapsed (czas wypełniania w ms).
Odpowiedź: obiekt z polem render (HTML zwrotki) i redirect (URL przekierowania).
Filtrowanie listy
| Parametr | Opis |
|———-|——|
| form_id | Po formularzu |
| closed | true/false |
| client_id | Po kliencie CRM |
| department_id | Po dziale |
Eksport
GET /form/results.xls?form_id=123 — eksport do Excel