Respondent do powiązanie kontaktu z ankietą na koncie użytkownika.
Jeden kontakt może być przypisany do wielu ankiet na koncie.
Nazwa | URL | Opis |
| Zwraca listę wszystkich respondentów z ankiety określonej parametrem | |
| Wyszukuje respondentów wg. kryteriów przekazanych w tablicy | |
| Przypisuje kontakt do ankiety | |
| Aktualizacja danych respondentów | |
| Anonimizacja danych respondenta | |
| Usuwa kontakt z ankiety | |
| Przesyłanie respondentów zgrupowanymi paczkami, dla których można stworzyć na końcu jeden mailing |
Lista operacji dla zasobu
Opis parametrów odpowiedzi
Nazwa/ścieżka | Opis | Możliwe wartości |
| ID respondenta |
|
| Unikalny token jednoznacznie identyfikujący respondenta. Używany do jednorazowego wypełniania ankiety przez respondenta. Parametr aktywny tylko ustawieniu dostępu z linkiem indywidualnym dla respondenta. |
|
| Informacja o tym, czy zaproszenie do wypełnienia ankiety realizowane jest przez webankieta.pl czy ze strony autora ankiety. Przekazywanie user_tokena w linku do wypełnienia ankiety jest traktowane również jako dystrybucja ze strony autora. |
|
| Data dodania respondenta do ankiety |
|
| Data i godzina wysyłki zaproszenia |
|
| Data i godzina pierwszego otwarcia ankiety. Parametr aktywny tylko przy ustawieniu dostępu z linkiem indywidualnym dla respondenta. |
|
| Data i godzina wypełnienia ankiety. Parametr aktywny tylko przy ustawieniu dostępu z linkiem indywidualnym dla respondenta. |
|
| Czy odpowiedź respondenta odłożona na później w trakcie wypełniania. Parametr aktywny tylko przy ustawieniu dostępu z linkiem indywidualnym dla respondenta. |
|
| Adres e-mail respondenta |
|
| Wartość pierwszego opcjonalnego atrybutu. Atrybut aktywny, jeśli respondent jest dodany z kontaktów użytkownika. |
|
| Wartość drugiego opcjonalnego atrybutu. Atrybut aktywny, jeśli respondent jest dodany z kontaktów użytkownika. |
|
| Wartość trzeciego opcjonalnego atrybutu. Atrybut aktywny, jeśli respondent jest dodany z kontaktów użytkownika. |
|
| Wartość czwartego opcjonalnego atrybutu. Atrybut aktywny, jeśli respondent jest dodany z kontaktów użytkownika. |
|
| Wartość piątego opcjonalnego atrybutu. Atrybut aktywny, jeśli respondent jest dodany z kontaktów użytkownika. |
|
| Wartość szóstego opcjonalnego atrybutu. Atrybut aktywny, jeśli respondent jest dodany z kontaktów użytkownika. |
|
| Wartość siódmego opcjonalnego atrybutu. Atrybut aktywny, jeśli respondent jest dodany z kontaktów użytkownika. |
|
| Wartość ósmego opcjonalnego atrybutu. Atrybut aktywny, jeśli respondent jest dodany z kontaktów użytkownika. |
|
| Wartość dziewiątego opcjonalnego atrybutu. Atrybut aktywny, jeśli respondent jest dodany z kontaktów użytkownika. |
|
| Wartość dziesiątego opcjonalnego atrybutu. Atrybut aktywny, jeśli respondent jest dodany z kontaktów użytkownika. |
|
| Wartość jedenastego opcjonalnego atrybutu. Atrybut aktywny, jeśli respondent jest dodany z kontaktów użytkownika. |
|
| Wartość dwunastego opcjonalnego atrybutu. Atrybut aktywny, jeśli respondent jest dodany z kontaktów użytkownika. |
|
| Wartość trzynastego opcjonalnego atrybutu. Atrybut aktywny, jeśli respondent jest dodany z kontaktów użytkownika. |
|
| Wartość czternastego opcjonalnego atrybutu. Atrybut aktywny, jeśli respondent jest dodany z kontaktów użytkownika. |
|
| Wartość piętnastego opcjonalnego atrybutu. Atrybut aktywny, jeśli respondent jest dodany z kontaktów użytkownika. |
|
| Unikalny link do ankiety przeznaczony dla danego respondenta. Parametr aktywny tylko ustawieniu dostępu z linkiem indywidualnym dla respondenta. |
|
Lista respondentów
URL
(GET) https://www.webankieta.pl/api/v2/respondents/:id_survey
Parametry opcjonalne (POST)
Nazwa | Opis |
| Limit na liczbę wypełnień |
| Offset na listę |
Przykładowa odpowiedź
{
"total":"20",
"list":[{
"id":100824,
"token":"549E56",
"date_token_generate":"2011-11-25 22:27:42",
"date_invitaion_send":null,
"date_survey_open":null,
"date_survey_answer":null,
"email":"[email protected]",
"label1":"Jan",
"label2":"Kowalski",
"label3":"600 700 800",
"label4":"",
"label5":"",
"answer_postponed":null
},{
...
}]
}
Zwracane błędy
401 Unauthorized
– Jeżeli użytkownik odwołuje się do obcego zasobu.404 Not Found
– Jeżeli nie znaleziono ankiety o podanym:id_survey
.404 Not Found
– Jeżeli nie znaleziono respondentów.406 Not Acceptable
– Jeżeli nie przekazano parametru:id_survey
.
Wyszukiwanie respondentów
URL
(GET) https://www.webankieta.pl/api/v2/respondents/search/:id_survey
Parametry opcjonalne (POST)
Nazwa | Opis |
| Limit na liczbę wypełnień |
| Offset na listę |
| Wyszukiwanie respondenta po tokenie |
| Wyszukiwanie respondenta po adresie email |
| Wyszukiwanie respondenta po dacie dodania go do ankiety. Data musi być przekazana w formacie |
| Wyszukiwanie respondenta po dacie wysyłki zaproszenia. Data musi być przekazana w formacie |
| Wyszukiwanie respondenta po dacie pierwszego otwarcia ankiety. Data musi być przekazana w formacie |
| Wyszukiwanie respondenta po dacie pierwszego wypełnienia ankiety. Data musi być przekazana w formacie |
| Wyszukiwanie respondenta po wartości atrybutu 1 |
| Wyszukiwanie respondenta po wartości atrybutu x |
Przykładowa odpowiedź
{
"total":"20",
"list":[{
"id":100824,
"token":"549E56",
"date_token_generate":"2011-11-25 22:27:42",
"date_invitaion_send":null,
"date_survey_open":null,
"date_survey_answer":null,
"email":"[email protected]",
"label1":"Jan",
"label2":"Kowalski",
"label3":"600 700 800",
"label4":"",
"label5":"",
"answer_postponed":null
},{
...
}]
}
Zwracane błędy
401 Unauthorized
– Jeżeli użytkownik odwołuje się do obcego zasobu.404 Not Found
– Jeżeli nie znaleziono ankiety o podanym:id_survey
.404 Not Found
– Jeżeli nie znaleziono respondentów.406 Not Acceptable
– Jeżeli nie przekazano parametru:id_survey
.
Dodanie respondenta do ankiety
URL
(GET) https://www.webankieta.pl/api/v2/respondents/add
Parametry (POST)
Nazwa | Opis |
| ID ankiety do której przypisujemy kontakt |
| ID kontaktu, który przypisujemy do ankiety |
| Data wysyłki zaproszenia do respondenta (wysyłka nastąpiła po stronie aplikacji klienckiej). |
Przykładowa odpowiedź
{
"id_respondent":"101019"
}
Zwracane błędy
401 Unauthorized
– Jeżeli użytkownik odwołuje się do obcego zasobu (ankiety/kontaktu).404 Not Found
– Jeżeli nie znaleziono ankiety o podanym:id_survey
.404 Not Found
– Jeżeli nie znaleziono kontaktu o podanym:id_contact
.406 Not Acceptable
– Jeżeli nie przekazano parametru:id_survey
.406 Not Acceptable
– Jeżeli nie przekazano parametru:id_contact
.409 Conflict
– Jeżeli kontakt został dodany już wcześniej do ankiety.
Aktualizacja respondenta
Endpoint obsługuje tylko respondentów z wysyłki na email.
Procesowanie update-u odbywa się w procesie offline dlatego zmiany mogą nie być widoczne od razu.
Przyjmujemy maksymalnie 100 rekordów respondentów per request.
URL
(POST) https://www.webankieta.pl/api/v2/respondents/:surveyId/update
(POST) https://www.webankieta.pl/api/v3/respondents/:surveyId/update
Parametry (GET)
Nazwa | Opis |
| ID ankiety do której należy respondent |
Parametry (BODY)
{
"respondents":[
{
"id": 142042042,
"email": „[email protected]",
"labels": [
{"id": 1, "value":"archiwum"},
{"id": 2, "value":"archiwum"},
{"id": 3, "value":"archiwum"}
]
},
{
"id": 142042043,
"email": „[email protected]",
"labels": [
{"id": 3, "value":"null"},
{"id": 2, "value":"null"},
{"id": 1, "value":"null"}
]
},
{
"id": 142042044,
"email": „j,[email protected]",
"labels": [
{"id": 15, "value":"testowa wartość"},
{"id": 2, "value":"polska"},
{"id": 3, "value": null}
]
}
]
}
Kody odpowiedzi
202 - update został przyjęty do procesowania.
Anonimizacja respondenta
Endpoint obsługuje respondentów z wysyłki na email oraz dystrybucji własnej
Procesowanie update-u odbywa się offline dlatego zmiany mogą nie być widoczne od razu.
Jeżeli chcesz zanonimizować respondentów po batchId musisz wcześniej zapamiętać po swojej stronie, aby użyć go w requeście
URLe
Anonimizacja wszystkich respondentów w ankiecie
(POST) https://www.webankieta.pl/api/v2/respondents/:surveyId/anonymize
Anonimizacja wszystkich respondentów z danego importu (batchId)
(POST) https://www.webankieta.pl/api/v2/respondents/:surveyId/batch/:batchId/anonymize
Anonimizacja wszystkich respondentów ze wskazanego mailingu.
(POST) https://www.webankieta.pl/api/v2/respondents/:surveyId/mailing/:mailingId/anonymize
Parametry (BODY) - wersja dla wysyłki na e-mail
{
"fields": [
"email", 1, 2, 3, 5
]
}
Parametry (BODY) - wersja dla dystrybucji własnej
{
"fields": [
1, 3, 5
]
}
W tabeli fields
, przekazujemy pola, które mają zostać zanonimizowane.
Kolejne numerki to numery atrybutów, które chcesz zanonimizować.
Jeżeli chcesz zanonimizować atrybuty 1, 3 i 5 przekazujesz tylko te numery do tablicy fields
.
Po zanonimizowaniu:
wartość emaila jest zmieniana na
[email protected]
wartość atrybutów jest zmieniana na
xyzabc
Usuwanie respondenta
URL
(GET) https://www.webankieta.pl/api/v2/respondents/delete
Parametry (POST)
Nazwa | Opis |
| ID ankiety do której należy respondent |
| ID respondenta |
Przykładowa odpowiedź
{
"status":"ok"
}
Zwracane błędy
401 Unauthorized
– Jeżeli użytkownik odwołuje się do obcego zasobu (ankiety/kontaktu).404 Not Found
– Jeżeli nie znaleziono ankiety o podanym:id_survey
.404 Not Found
– Jeżeli nie znaleziono respondenta o podanym:id_respondent
.
Batch upload respondentów
Proces ma umożliwić przesyłanie respondentów zgrupowanymi paczkami, dla których można stworzyć na końcu jeden mailing. Cały proces wygląda w skrócie następująco:
Tworzymy nowy tzw. batch (POST webankieta.pl/api/v2/respondents/batch) po sukcesywnym utworzeniu batcha odtrzymamy jego id pod którym będziemy grupować poszczególne paczki respondentów.
1. TWORZENIE - POST
(POST) webankieta.pl/api/respondents/batch
Parametry (POST)
Nazwa | Opis |
| ID ankiety do której będziemy importować respondentów |
Przykładowa odpowiedź
{
"batch_id":"89f7fcdb-c8c9-4414-8ec7-423780f66901"
}
2. POBIERANIE - GET
(GET) webankieta.pl/api/respondents/batch
Parametry (GET)
Nazwa | Opis |
| ID batch’a |
Zwracane wartości w json:
Nazwa | Opis |
| ID batch’a |
| ID konta |
| ID ankiety |
| lista ID przynależnych patchów |
Zwracane błędy
401 Unauthorized
– Jeżeli użytkownik odwołuje się do obcego zasobu (ankiety/kontaktu).400 An error ocured
– Jeżeli opracja skończy się niepowodzeniem
Troubleshooting:
znane są nam przypadki, gdzie w jednym batchu importowanych jest wiele takich samych adresów e-mail. Przy wysyłce mailingu z użyciem stworzonego batcha wszystkie wiadomości są wysyłane w jednej chwili - może się zdarzyć, że serwer pocztowy zablokuje te wiadomości ze względu na potencjalny SPAM (wiele takich samych wiadomości w jednej sekundzie). Proponujemy, aby w ramach jednej wysyłki maksymalnie ograniczyć istnienie wielu takich samych adresów mailowych w batchu.
Dodajemy do wcześniej utworzonego batcha kolejne paczki respondentów (POST webankieta.pl/api/v2/respondents/patch). Każda paczka musi zostać wysłana z parametrem batch_id równym utworzonemu wcześniej, zalecana ilość respondentów w jednej paczce to 20 sztuk.
3. PRZESYŁANIE PACZKI RESPONDENTÓW - POST
(POST) webankieta.pl/api/v2/respondents/patch
Parametry :
Nazwa | Opis |
| ID batch’a |
| tablica respondentów (zalecana ilość do 20 sztuk) |
Body (x-www-form-urlencoded):
respondents[0,1,...,n] | 0,1,...,n - liczba porządkowa respondenta w żądaniu |
| e-mail respondenta |
| tablica wartości atrybutów respondenta (max 15) |
Zwracane wartości:
Nazwa | Opis |
| ID patch’a |
Przykład zastosowania:
Porcję danych w postaci JSON należy przekonwertować na format do przekazania parametrów poprzez URL. Przykładowo:
{
"batch_id": "example_batch_id",
"respondents": [
{
"email": "[email protected]",
"labels": [
"Warszawa",
"Support"
]
},
{
"email": "[email protected]",
"labels": [
"Łódź",
"IT"
]
},
{
"email": "[email protected]",
"labels": [
"Warszawa",
"IT"
]
}
]
}
Należy przekonwertować do takiej postaci:
batch_id=example_batch_id&respondents[0]
[email]=jan.kowalski%40webankieta.pl&respondents[0][labels]
[0]=Warszawa&respondents[0][labels][1]=Support&respondents[1]
[email]=tomasz.nowak%40webankieta.pl&respondents[1][labels]
[0]=%C5%81%C3%B3d%C5%BA&respondents[1][labels][1]=IT&respondents[2]
[email]=zenon.martyniuk%40webankieta.pl&respondents[2][labels]
[0]=Warszawa&respondents[2][labels][1]=IT
Taką porcję danych przekazujemy w żądaniu jako x-www-form-urlencoded w żądaniu POST.
W przypadku wykonania żądania GET - system będzie usiłował wykonać inną operację.
Przykład cURL:
curl --location 'https://www.webankieta.pl/api/v2/respondents/patch?survey_id=XYZ&batch_id=xxxxxxx' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer xxxxx' \
--data-urlencode 'respondents%5B0%5D%5Bemail%[email protected]' \
--data-urlencode 'respondents%5B0%5D%5Blabels%5D%5B0%5D=hr' \
--data-urlencode 'respondents%5B0%5D%5Blabels%5D%5B1%5D=wrocław'
Konwersję JSON do tego formatu można dokonać np. z użyciem przykładowego kodu Javascript:
function jsonToUrlEncoded(element,key,list) {
list = list || [];
if(typeof(element)=='object'){
for (var idx in element)
jsonToUrlEncoded(element[idx],key?key+'['+idx+']':idx,list);
} else {
list.push(key+'='+encodeURIComponent(element));
}
return list.join('&');
}
console.log(jsonToUrlEncoded( {OBIEKT} ));
W miejscu {OBIEKT} musimy wstawić obiekt JSON, który chcemy przekonwertować na
potrzebny nam format.
4. POBIERANIE RESPONDENTÓW - GET
(GET) webankieta.pl/api/v2/respondents/patch
Parametry (GET)
Nazwa | Opis |
| ID patch’a |
Zwracana wartości json:
Nazwa | Opis |
| lista ID respondentów utworzonych w ramach danego patcha |
Zwracane błędy
401 Unauthorized
– Jeżeli użytkownik odwołuje się do obcego zasobu (ankiety/kontaktu).400 An error ocured
– Jeżeli opracja skończy się niepowodzeniem
Jeśli dodaliśmy już wszystkich respondentów, możemy dla nich wszystkich zlecić wysyłkę zaproszeń podając wcześniejsze batch_id (POST webankieta.pl/api/v2/mailing/batch). Dokumentacja dotycząca tego kroku znajduje się tutaj.