API v1 dokumentace

Poslední aktualizace: 10. 06. 2026

Úvod

Obecné informace

Formát dat

json, html

Protokol

https

Typ

REST

Kódování

UTF-8

Autentizace

Při pozitivní autorizaci je přístup k API omezen právy a tarifem konkrétního zákazníka. Systém se při přístupu přes API chová, jako by byl přihlášen administrátor daného zákaznického účtu.

Základní URL

https://api.onquanda.com/api/

Autorizace

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

API klíč je možné získat v aplikaci v Nastavení / API klíče, pomocí zeleného tlačítka "Přidat API klíč".

Omezení přístupu

V rámci zabezpečení systému a jeho běžného fungovaní je implementováno omezení přístupu na jeden API klíč. Toto omezení zamezí paralelnímu přístupu a příliš častému přístupu. Požadavky na API budou muset být serializovány a z důvodu uvolnění prostředků po zpracování požadavku bude přidána i jistá časová prodleva. V opačném případě bude vrácen chybový návratový kód:

429 Too many requests

a požadavek musí být poté zopakován.

Prodleva

Prodleva mezi dokončením předchozího požadavku a počátkem následujícího je nastavena na 30ms.

Některá volání mohou být omezena množstvím vstupních dat.

Struktura API

Jednotlivá API volání jsou strukturována do modulů.

https://api.onquanda.com/api/{nazev_modulu}/…

Použité HTTP metody

Vychází z RFC 2616 odst. 9.1.2 (https://www.ietf.org/rfc/rfc2616.txt). Vazba na CRUD:

GET (čtení)

POST (vytvoření)

PUT (aktualizace)

DELETE (mazání)

OPTION (nápověda k volání)

PATCH (partial update)

URL adresy

Získání seznamu objektů (GET) a vytvoření nového objektu (POST) ve tvaru:

https://api.onquanda.com/api/{nazev_modulu}/{model}s/

Získání detailu objektu (GET) nebo jeho update (PUT):

https://api.onquanda.com/api/{nazev_modulu}/{model}s/{id}/

Další volání mají tvar

Pokud se týkají více než jednoho modelu:

https://api.onquanda.com/api/{nazev_modulu}/{volani}/

Více objektů jednoho konkrétního modelu:

https://api.onquanda.com/api/{nazev_modulu}/{model}s/{volani}/

Jednoho konkrétního objektu:

https://api.onquanda.com/api/{nazev_modulu}/{model}s/{id}/{volani}/

Druhy volání API

Základní nápověda

Všechny druhy volání API by měly podporovat metodu OPTION, která vrací základní nápovědu k volání.

OPTIONhttps://api.onquanda.com/api/newsletter/newsletters/77345/recipients/

Odpověď

200 OK Content-Type: application/json

{"name": "Recipient List",
"description": "",
"renders": [
"application/json",
"text/html"
],
"parses": [
"application/json",
"application/x-www-form-urlencoded",
"multipart/form-data"
],
"actions": {
"GET": {
"id": {
"type": "integer",
"required": false,
"read_only": true,
"label": "ID"
},
"email": {
"type": "email",
"required": false,
"read_only": false,
"label": "email",
"max_length": 255
},
"tracked": {
"type": "boolean",
"required": false,
"read_only": true
},
"clicked": {
"type": "boolean",
"required": false,
"read_only": true
},
"unsubscribed": {
"type": "boolean",
"required": false,
"read_only": true
},
"status": {
"type": "string",
"required": false,
"read_only": true
},
"data": {
"type": "json",
"required": false,
"read_only": true
}
}
}
}

Jedná se o automaticky generovanou nápovědu a nemusí tak zcela přesně odpovídat specifickým vlastnostem a neobsahuje například informace o integritních nebo jiných omezení kladených systémem.

Seznam objektů

Všechny seznamy jsou k dispozici metodou GET a jsou stránkované (ve výstupu je celkový počet objektů a URL následující, resp. předchozí stránky). Každý objekt je reprezentován několika svými základními atributy. V definici jednotlivých volání jsou tyto základní atributy definovány. Jedná se o minimální výčet, který se může v průběhu vývoje rozšířit.

Příklad

GEThttps://api.onquanda.com/api/contact/contacts/

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "count": 124439,
 "next": "https://api.onquanda.com/api/contact/contacts/?page=2",
 "previous": null,
 "results": [
 {
 "id": 1049682,
 "email": "info+1@quanda.com"
 },
 {
 "id": 1049683,
 "email": "info+2@quanda.com"
 }
]
}

Ping

Umožňuje prověřit funkčnost spojení pro GET a POST.

GEThttps://api.onquanda.com/api/helper/ping/
POSThttps://api.onquanda.com/api/helper/ping/

Číselníky

Kontakty

Status zasílání e-mailů

  • 1 = Zasílat e-maily
  • 2 = Nemůžeme zasílat (odhlásil se)
  • 3 = Nemůžeme zasílat (vypršel souhlas)
  • 4 = Nemůžeme zasílat (čekáme na souhlas)

Seznam právních titulů

  • Oprávněný zájem správce
  • Plnění právní povinnosti
  • Plnění smlouvy nebo jednání o jejím uzavření
  • Souhlas se zpracováním osobních údajů
  • Veřejný zájem
  • Životně důležitý zájem

Seznam účelů zpracování osobních údajů

  • 1 = Nenastaven (výchozí)
  • 2 = Zasílání obchodních a reklamních sdělení
  • 3 = Direct marketing
  • 4 = Zlepšování produktů a služeb
  • 5 = Zasílání informací o novinkách
  • 6 = Reakce na projevený zájem
  • 7 = Poskytnutí odborného obsahu
  • 8 = Realizace zákaznické soutěže
  • 9 = Realizace vzdělávacích akcí
  • 10 = Realizace marketingového průzkumu
  • 11 = Realizace průzkumu trhu
  • 12 = Plnění kupní smlouvy nebo jednání o jejím uzavření
  • 13 = Plnění smlouvy o dílo nebo jednání o jejím uzavření
  • 14 = Plnění pracovněprávních smluv a povinností
  • 15 = Ochrana majetku a zdraví
  • 16 = Uplatnění právních kroků
  • 17 = Plnění zákona o účetnictví
  • 18 = Archivace ve veřejném zájmu
  • 19 = Pro statistické účely

Dotazníky

Typy otázek

  • 1 = Krátký text
  • 2 = Delší text
  • 3 = Krátký text - 1 nebo více řádků
  • 4 = Číslo
  • 5 = Číslo - 1 nebo více řádků
  • 6 = Datum
  • 7 = Datum anebo čas - 1 nebo více řádků
  • 8 = Rozbalovací menu
  • 9 = Seznam přepínačů (radiobutton)
  • 10 = Seznam zaškrtávacích polí (checkbox)
  • 11 = Stupňovitá škála
  • 12 = Tabulka přepínačů (radiobuttonů)
  • 13 = Tabulka zaškrtávacích polí (checkboxů)
  • 14 = E-mail
  • 15 = Vložit soubor
  • 16 = NPS (net promoter score)

E-mailové kampaně

Typy e-mailových kampaní

  • 10 = Jednoduchá e-mailová kampaň
  • 20 = Logická e-mailová kampaň
  • 30 = E-mailový seriál
  • 40 = Narozeninová e-mailová kampaň
  • 50 = E-mailová kampaň pro výročí a svátky
  • 60 = E-mailová kampaň s A/B testováním
  • 70 = Transakční e-mail

Stavy e-mailových kampaní

  • 10 = Pozastavená
  • 20 = Připravena k odeslání / Odeslaná / Aktivovaná
  • 30 = Ve výstavbě
  • 40 = Ukončená

Povolené typy příloh transakčních e-mailů

doc, docx, xls, xlsx, ppt, pptx, jpeg, jpg, gif, png, bmp a pdf

Maximální velikost přílohy

20MB


API endpoints

Kontakty

Seznam kontaktů

GEThttps://api.onquanda.com/api/contact/contacts/

Query parameters

GEThttps://api.onquanda.com/api/contact/contacts/?tag=Zakaznici&tag=Ostrava&tags_behavior=or
ParametrTypPopisPoznámka
tagstringNázev štítkuNázev štítku rozlišuje diakritiku, velká a malá písmena
tags_behaviorenumand nebo or"and" odpovídá průniku, "or" odpovídá součtu

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "count": 330,
 "next": "https://api.onquanda.com/api/contact/contacts/?page=2",
 "previous": null,
 "results": [
 {
 "id": 9272515,
 "email": "prvni@prvni.cz"
 },
 {
 "id": 6464018,
 "email": "druhy@gmail.com"
 },
 {
 "id": 8127767,
 "email": "treti@seznam.cz"
 }
 ]
}

Najít ID kontaktu pomocí e-mailu

GEThttps://api.onquanda.com/api/contact/contacts/?email=petr.novak@quanda.cz

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "count": 1,
 "next": null,
 "previous": null,
 "results": [
 {
 "id": 9649947,
 "email": "petr.novak@quanda.cz"
 }
 ]
}

Nový kontakt

PUThttps://api.onquanda.com/api/contact/importer/single/

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "overwrite": true,
 "contact_tags_overwrite": true,
 "overwrite_companies": true,
 "company_tags_overwrite": true,
 "data": {
 "Contact": {
 "email": "petr.novak@quanda.cz",
 "source": "Veletrh",
 "title_before": "Ing.",
 "first_name": "Petr",
 "last_name": "Novák",
 "sex": "Muž",
 "birthdate": "06.05.1981",
 "occupation": "Ekonom",
 "phone_home": "+420602123456",
 "phone_work": "+420987654321",
 "mobile": "+42603123456",
 "address_work_street": "Jarní 58",
 "address_work_city": "Praha 9",
 "address_work_zipcode": "19000",
 "address_work_country": "CZ",
 "main_company": "ABC a.s.",
 "note": "Zasílat e-maily maximálně 2x týdně",
 "custom_field_1": "ForArch2019",
 "erp_ident_num": "A124578",
 "salutation_last_name": "Vážený pane Nováku",
 "salutation_first_name": "Dobrý den, Petře",
 "salutation_last_name_vocative": "Nováku",
 "salutation_first_name_vocative": "Petře",
 "tags": "VIP,Praha,OP356"
 },
 "ContactPurposeOfProcessing": {
 "purpose_of_processing": 1,
 "status_valid_to": "23.12.2020 14:30:00",
 "status": 1,
 "contactpurposeofprocessing_status_ignore": false,
 "legal_title_legitimate_interest_of_administrator": true
 },
 "Company": {
 "name": "ABC a.s.",
 "tags": "Dodavatel,Praha"
 }
 }
}

Schema

{
 "name": "Contact List",
 "description": "",
 "renders": [
 "application/json",
 "text/html"
 ],
 "parses": [
 "application/json",
 "application/x-www-form-urlencoded",
 "multipart/form-data"
 ],
 "actions": {
 "PUT": {
 "id": {
 "type": "integer",
 "required": false,
 "read_only": true,
 "label": "ID"
 },
 "created": {
 "type": "datetime",
 "required": false,
 "read_only": true,
 "label": "Vytvořeno",
 "help_text": "admin-vytvoreno_help"
 },
 "modified": {
 "type": "datetime",
 "required": false,
 "read_only": true,
 "label": "Změněno",
 "help_text": "admin-zmeneno_help"
 },
 "email": {
 "type": "email",
 "required": true,
 "read_only": false,
 "label": "E-mail (hlavní e-mail)",
 "help_text": "admin-email_help",
 "max_length": 150
 },
 "title_before": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Titul",
 "help_text": "admin-titul_help",
 "max_length": 255
 },
 "first_name": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Jméno",
 "help_text": "admin-jmeno_help",
 "max_length": 255
 },
 "second_name": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Prostřední jméno",
 "help_text": "admin-prostredni_jmeno_help",
 "max_length": 255
 },
 "last_name": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Příjmení",
 "help_text": "admin-prijmeni_help",
 "max_length": 255
 },
 "title_after": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Titul za",
 "help_text": "admin-titul_za_help",
 "max_length": 255
 },
 "salutation": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Oslovení",
 "help_text": "admin-osloveni_help",
 "max_length": 255
 },
 "salutation_last_name": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Kompletní oslovení s příjmením",
 "help_text": "admin-osloveni_komplet_prijmeni_help",
 "max_length": 255
 },
 "salutation_first_name": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Kompletní oslovení se jménem",
 "help_text": "admin-osloveni_komplet_krestni_help",
 "max_length": 255
 },
 "salutation_last_name_vocative": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Příjmení v 5 pádu",
 "help_text": "admin-osloveni_prijmeni_5_pad_help",
 "max_length": 255
 },
 "salutation_first_name_vocative": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Jméno v 5 pádu",
 "help_text": "admin-osloveni_krestni_5_pad_help",
 "max_length": 255
 },
 "email_2": {
 "type": "email",
 "required": false,
 "read_only": false,
 "label": "E-mail 2",
 "help_text": "admin-email_2_help",
 "max_length": 150
 },
 "email_3": {
 "type": "email",
 "required": false,
 "read_only": false,
 "label": "E-mail 3",
 "help_text": "admin-email_3_help",
 "max_length": 150
 },
 "sex": {
 "type": "choice",
 "required": false,
 "read_only": false,
 "label": "Pohlaví",
 "help_text": "admin-pohlavi_help",
 "choices": [
 {
 "value": "male",
 "display_name": "Muž"
 },
 {
 "value": "female",
 "display_name": "Žena"
 }
 ]
 },
 "source": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Zdroj",
 "help_text": "admin-zdroj_help",
 "max_length": 255
 },
 "recommended_by": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Doporučeno kým",
 "help_text": "admin-doporuceno_help",
 "max_length": 255
 },
 "birthdate": {
 "type": "date",
 "required": false,
 "read_only": false,
 "label": "Datum narození",
 "help_text": "admin-datum_narozeni_help"
 },
 "anniversary": {
 "type": "date",
 "required": false,
 "read_only": false,
 "label": "Datum svátku / výročí",
 "help_text": "Datum svátku nebo výročí uvádějte ve tvaru 1.1.2021 nebo 01.01.2021"
 },
 "occupation": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Funkce",
 "help_text": "admin-funkce_help",
 "max_length": 255
 },
 "double_opt_in_status": {
 "type": "choice",
 "required": false,
 "read_only": false,
 "label": "?",
 "help_text": "admin-contact-double_opt_in_status_help",
 "choices": [
 {
 "value": 0,
 "display_name": "?"
 },
 {
 "value": 1,
 "display_name": "?"
 },
 {
 "value": 2,
 "display_name": "?"
 }
 ]
 },
 "www": {
 "type": "url",
 "required": false,
 "read_only": false,
 "label": "Www adresa",
 "help_text": "Vyplňte adresu Vašeho webu",
 "max_length": 255
 },
 "phone_home": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Telefon domů",
 "help_text": "Telefonní číslo uvádějte ve tvaru: +420123456789",
 "max_length": 50
 },
 "phone_work": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Telefon práce",
 "help_text": "Telefonní číslo uvádějte ve tvaru: +420123456789",
 "max_length": 50
 },
 "mobile": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Mobil",
 "help_text": "Telefonní číslo uvádějte ve tvaru: +420123456789",
 "max_length": 50
 },
 "address_work_street": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Ulice a číslo popisné",
 "help_text": "admin-adresa_prace_ulice_help",
 "max_length": 255
 },
 "address_work_city": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Město",
 "help_text": "admin-adresa_prace_mesto_help",
 "max_length": 255
 },
 "address_work_region": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Kraj",
 "help_text": "admin-adresa_prace_region_help",
 "max_length": 255
 },
 "address_work_zipcode": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "PSČ",
 "help_text": "Poštovní směrovací číslo uvádějte ve tvaru \"000 00\" nebo \"00000\"",
 "max_length": 20
 },
 "address_work_country": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Země",
 "help_text": "admin-adresa_prace_zeme_help",
 "max_length": 255
 },
 "address_home_street": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Ulice a číslo popisné",
 "help_text": "admin-adresa_domu_ulice_help",
 "max_length": 255
 },
 "address_home_city": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Město",
 "help_text": "admin-adresa_domu_mesto_help",
 "max_length": 255
 },
 "address_home_region": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Kraj",
 "help_text": "admin-adresa_domu_region_help",
 "max_length": 255
 },
 "address_home_zipcode": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "PSČ",
 "help_text": "Pro PSČ použijte formát 000 00 nebo 00000",
 "max_length": 20
 },
 "address_home_country": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Země",
 "help_text": "admin-adresa_domu_zeme_help",
 "max_length": 255
 },
 "custom_field_1": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Uživatelské pole 1",
 "max_length": 255
 },
 "custom_field_2": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Uživatelské pole 2",
 "max_length": 255
 },
 "custom_field_3": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Uživatelské pole 3",
 "max_length": 255
 },
 "custom_field_4": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Uživatelské pole 4",
 "max_length": 255
 },
 "custom_field_5": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Uživatelské pole 5",
 "max_length": 255
 },
 "custom_field_6": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Uživatelské pole 6",
 "max_length": 255
 },
 "tags": {
 "type": "field",
 "required": false,
 "read_only": true,
 "label": "Tags",
 "child": {
 "type": "nested object",
 "required": false,
 "read_only": true,
 "children": {
 "id": {
 "type": "integer",
 "required": false,
 "read_only": true,
 "label": "ID"
 },
 "created": {
 "type": "datetime",
 "required": false,
 "read_only": true,
 "label": "Vytvořeno",
 "help_text": "admin-vytvoreno_help"
 },
 "modified": {
 "type": "datetime",
 "required": false,
 "read_only": true,
 "label": "Změněno",
 "help_text": "admin-zmeneno_help"
 },
 "name": {
 "type": "string",
 "required": true,
 "read_only": false,
 "label": "Název",
 "help_text": "admin-tags-nazev_help",
 "max_length": 255
 },
 "contacts_count": {
 "type": "integer",
 "required": false,
 "read_only": true,
 "label": "api-contact-pocet_kontaktu_stitku"
 }
 }
 }
 },
 "note": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Poznámka",
 "help_text": "admin-poznamka_help"
 },
 "main_company": {
 "type": "nested object",
 "required": false,
 "read_only": true,
 "label": "Main company",
 "children": {
 "id": {
 "type": "integer",
 "required": false,
 "read_only": true,
 "label": "ID"
 },
 "name": {
 "type": "string",
 "required": true,
 "read_only": false,
 "label": "Název firmy",
 "help_text": "ABC, a.s.",
 "max_length": 255
 }
 }
 },
 "owner": {
 "type": "field",
 "required": false,
 "read_only": false,
 "label": "Vlastník kontaktu",
 "help_text": "Vlastník kontaktu je jeden z Uživatelů uložených v Quandě."
 },
 "erp_ident_num": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Helios person number",
 "help_text": "admin-kontakt-erp_ident_num_pl_help"
 },
 "content_categories": {
 "type": "field",
 "required": false,
 "read_only": true,
 "label": "Content categories",
 "child": {
 "type": "nested object",
 "required": false,
 "read_only": true,
 "children": {
 "identifier": {
 "type": "string",
 "required": true,
 "read_only": false,
 "label": "Identifier"
 },
 "is_enabled": {
 "type": "boolean",
 "required": true,
 "read_only": false,
 "label": "Is enabled"
 },
 "timestamp": {
 "type": "datetime",
 "required": false,
 "read_only": true,
 "label": "Timestamp"
 }
 }
 }
 },
 "companies": {
 "type": "field",
 "required": false,
 "read_only": true,
 "label": "Companies",
 "child": {
 "type": "nested object",
 "required": false,
 "read_only": true,
 "children": {
 "id": {
 "type": "integer",
 "required": false,
 "read_only": true,
 "label": "ID"
 },
 "name": {
 "type": "string",
 "required": true,
 "read_only": false,
 "label": "Název firmy",
 "help_text": "ABC, a.s.",
 "max_length": 255
 }
 }
 }
 },
 "purposes_of_processing": {
 "type": "field",
 "required": false,
 "read_only": true,
 "label": "Purposes of processing",
 "child": {
 "type": "nested object",
 "required": false,
 "read_only": true,
 "children": {
 "purpose_of_processing": {
 "type": "integer",
 "required": true,
 "read_only": false,
 "label": "Purpose of processing"
 },
 "status": {
 "type": "choice",
 "required": false,
 "read_only": false,
 "label": "Status zasílání e-mailů",
 "help_text": "admin-contact-ucel_zpracovani-status_help",
 "choices": [
 {
 "value": 1,
 "display_name": "Zasílat e-maily"
 },
 {
 "value": 2,
 "display_name": "Nemůžeme zasílat (odhlášení)"
 },
 {
 "value": 3,
 "display_name": "Nemůžeme zasílat (vypršel souhlas)"
 },
 {
 "value": 4,
 "display_name": "Nemůžeme zasílat (čekáme na souhlas)"
 }
 ]
 },
 "status_valid_to": {
 "type": "datetime",
 "required": false,
 "read_only": false,
 "label": "Platnost do",
 "help_text": "admin-contact-ucel_zpracovani-status_platny_do_help"
 },
 "status_paused_to": {
 "type": "datetime",
 "required": false,
 "read_only": false,
 "label": "Admin-contact-ucel_zpracovani-status_pozastaven_do",
 "help_text": "admin-contact-ucel_zpracovani-status_pozastaven_do_help"
 },
 "legal_title_legitimate_interest_of_administrator": {
 "type": "boolean",
 "required": false,
 "read_only": false,
 "label": "Oprávněný zájem správce"
 },
 "legal_title_legitimate_fulfilling_legal_obligation": {
 "type": "boolean",
 "required": false,
 "read_only": false,
 "label": "Plnění právní povinnosti"
 },
 "legal_title_contract_fulfilling_or_negotiation_of_conclusion": {
 "type": "boolean",
 "required": false,
 "read_only": false,
 "label": "Plnění smlouvy nebo jednání o jejím uzavření"
 },
 "legal_title_legitimate_consent_to_processing_personal_data": {
 "type": "boolean",
 "required": false,
 "read_only": false,
 "label": "Souhlas se zpracováním osobních údajů"
 },
 "legal_title_public_interest": {
 "type": "boolean",
 "required": false,
 "read_only": false,
 "label": "Veřejný zájem"
 },
 "legal_title_legitimate_vital_interest": {
 "type": "boolean",
 "required": false,
 "read_only": false,
 "label": "Životně důležitý zájem"
 }
 }
 }
 }
 }
 }
}

Odpověď

200 OK Content-Type: application/json

{
 "contact_id": 9649947
}

Odpověď v případě překročení počtu kontaktů nastavený tarifem

200 OK Content-Type: application/json

{
 "contact_id": 9667546,
 "warnings": [
 {
 "code": "001",
 "message": "Došlo k překročení limitu počtu kontaktů nastaveným aktuálním tarifem zákazníka. Kontaktujte prosím Quanda support."
 }
 ]
}

Odpověď v případě omezení tarifem zákazníka

400 Bad Request Content-Type: application/json

{
 "errors": [
 {
 "code": "501",
 "message": "Tarif zákazníka omezil přidávání nových kontaktů. Kontaktujte prosím Quanda support."
 }
 ]
}

Detail kontaktu

GEThttps://api.onquanda.com/api/contact/contacts/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID kontaktu

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "id": 9649947,
 "created": "2021-12-15T12:35:40.833792",
 "modified": "2024-06-20T11:19:20.794174",
 "email": "petr.novak@quanda.cz",
 "title_before": "Ing.",
 "first_name": "Petr",
 "second_name": "",
 "last_name": "Novák",
 "title_after": "",
 "salutation": "",
 "salutation_last_name": "Vážený pane Nováku",
 "salutation_first_name": "Dobrý den, Petře",
 "salutation_last_name_vocative": "Nováku",
 "salutation_first_name_vocative": "Petře",
 "email_2": "",
 "email_3": "",
 "sex": "male",
 "source": "Veletrh",
 "recommended_by": "",
 "birthdate": "1981-05-06",
 "anniversary": "2023-06-29",
 "occupation": "Ekonom",
 "double_opt_in_status": 0,
 "www": "",
 "phone_home": "+420602123456",
 "phone_work": "+420987654321",
 "mobile": "+42603123456",
 "address_work_street": "Jarní 58",
 "address_work_city": "Praha 9",
 "address_work_region": "",
 "address_work_zipcode": "19000",
 "address_work_country": "CZ",
 "address_home_street": "",
 "address_home_city": "",
 "address_home_region": "",
 "address_home_zipcode": "",
 "address_home_country": "",
 "custom_field_1": "ForArch2019",
 "custom_field_2": "Odesílatel: Quanda International s.r.o., Národních hrdinů 44, Dolní Počernice, 190 12 Praha 9",
 "custom_field_3": "Obchodní sdělení.",
 "custom_field_4": "ahoj",
 "custom_field_5": "",
 "custom_field_6": "",
 "tags": [
 {
 "id": 66875,
 "created": "2023-10-31T16:48:03.105883",
 "modified": "2023-10-31T16:48:03.105909",
 "name": "OP356",
 "contacts_count": 5
 },
 {
 "id": 66874,
 "created": "2023-10-31T16:48:03.095789",
 "modified": "2023-10-31T16:48:03.095820",
 "name": "Praha",
 "contacts_count": 5
 },
 {
 "id": 45385,
 "created": "2018-03-23T09:05:09.057457",
 "modified": "2018-03-23T09:05:09.057490",
 "name": "VIP",
 "contacts_count": 109
 }
 ],
 "note": "Zasílat e-maily maximálně 2x týdně",
 "main_company": {
 "id": 1419671,
 "name": "ABC a.s."
 },
 "owner": null,
 "erp_ident_num": "A124578",
 "content_categories": [
 {
 "identifier": "d0mtuf",
 "is_enabled": true,
 "timestamp": null
 }
 ],
 "companies": [
 {
 "id": 1419671,
 "name": "ABC a.s."
 }
 ],
 "purposes_of_processing": [
 {
 "purpose_of_processing": 1,
 "status": 3,
 "status_valid_to": "2020-12-23T14:30:00",
 "status_paused_to": null,
 "legal_title_legitimate_interest_of_administrator": true,
 "legal_title_legitimate_fulfilling_legal_obligation": false,
 "legal_title_contract_fulfilling_or_negotiation_of_conclusion": false,
 "legal_title_legitimate_consent_to_processing_personal_data": false,
 "legal_title_public_interest": false,
 "legal_title_legitimate_vital_interest": false
 }
 ]
}

Odpověď v případě neexistujícího ID kontaktu

404 Not Found Content-Type: application/json

{
 "detail": "Nenalezeno."
}

Úprava kontaktu

Pro úpravu konaktu je možné využít stejný end point jako pro vytváření nového kontaktu. Podle potřeby je možné nastavit přepisování údajů a štíků pomocí parametrů:

"overwrite": true / false, "contact_tags_overwrite": true / false, "overwrite_companies": true / false, "company_tags_overwrite": true / false,

Více o používaní těchto parametrů najdte v části Hromadný import kontaktů, štítků a firem / Nastavení přepisování.

Smazání kontaktu

Při smazání kontaktu dochází ke smazání všech na kontakt napojených záznamů. Při smazání kontaktu se tak vymaže status zasílání (odhlášení), kontakt bude odebrán se všech seznamů - statistiky e-mailových kampaní, respondent dotazníku, respondent formuláře.

Mazání kontaktů je ve výchozím stavu zakázáno. Pokud potřebujete mazání kontaktů povolit, kontaktujte naši podporu na e-mailu: support@onquanda.com.

DELETEhttps://api.onquanda.com/api/contact/contacts/{id}/
TypeRequiredRead_onlyPopisMax-length
idintegerfalsetrueID

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

204 No content Content-Type: application/json

Štítky

Seznam štítků

GEThttps://api.onquanda.com/api/contact/contacttags/

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "count": 151,
 "next": "https://quanda.onquanda.com/api/contact/contacttags/?page=2",
 "previous": null,
 "results": [
 {
 "id": 31765,
 "name": "Praha",
 "contacts_count": 27
 },
 {
 "id": 25868,
 "name": "VIP",
 "contacts_count": 76
 },
 {
 "id": 25959,
 "name": "Dodavatel",
 "contacts_count": 69
 }
 ]
}

Nový štítek

POSThttps://api.onquanda.com/api/contact/contacttags/

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "name": "Název štítku"
}

Schema

{
"name": {
 "type": "string",
 "required": true,
 "read_only": false,
 "label": "Název",
 "max_length": 255
 }
}

Odpověď

200 OK Content-Type: application/json

{
 "id": 66828,
 "created": "2022-06-08T19:45:29.669932",
 "modified": "2022-06-08T19:45:29.670005",
 "name": "Název štítku",
 "contacts_count": 0
}

400 Bad Request Content-Type: application/json

[
    "Štítek, který chcete vytvořit již existuje"
]

Detail štítku

GEThttps://api.onquanda.com/api/contact/contacttags/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID štítku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "id": 66828,
 "created": "2022-06-08T19:45:29.669932",
 "modified": "2022-06-08T19:45:29.670005",
 "name": "Název štítku",
 "contacts_count": 488
}

404 Not Found Content-Type: application/json

{
 "detail": "Nenalezeno."
}

Úprava štítku

PUThttps://api.onquanda.com/api/contact/contacttags/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID štítku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "name": "Nový název štítku",
}

Schema

{
"name": {
 "type": "string",
 "required": true,
 "read_only": false,
 "label": "Název",
 "max_length": 255
 }
}

Odpověď

200 OK Content-Type: application/json

{
 "id": 31765,
 "created": "2017-05-16T16:21:41.402352",
 "modified": "2023-04-24T17:10:34.970675",
 "name": "Nový název štítku",
 "contacts_count": 100
}

400 Bad Request Content-Type: application/json

[
    "Štítek, který chcete vytvořit již existuje"
]

Smazání štítku

DELETEhttps://api.onquanda.com/api/contact/contacttags/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID štítku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

204 No Content Content-Type: application/json

Hromadný import kontaktů, štítků a firem

Odpovídá frontendové části funkci "Hromadný import kontaktů". Nepoužívají se id. Volání je synchronní, a proto je limit počtu záznamů omezen na 1 000 na jedno volání.

Základní popis

Kontakty

  • Povinný je pouze objekt Contact s definovaným atributem e-mail.
  • Při zadání "null" hodnoty do nepovinného pole bude tato hodnota interpretována jako vyprázdnění pole. U polí typu boolean je null hodnota považována za nevalidní.
  • Pokud je uveden objekt ContactPurposeOfProcessing, musí mít uveden všechny atributy.

Štítky kontaktů

  • Pro import štítků k importovanému kontaktu slouží "Contact.tags", který se zadává ve formátu, kdy jsou jednotlivé štítky odděleny čárkou. Např: VIP,štítek 27,muž.
  • Štítky začínající dvojicí znaků *# se nezpracují, ale jsou vyhodnoceny jako speciální kód. Takového štítky nelze pomocí této metody vložit.

Firmy

  • Pokud je uveden objekt Company, musí mít uveden atribut name, který je povinný.

Nastavení přepisování

ParametrTypDefaultPopisPoznámka
overwritebooleanfalseNastavení přepisování dat kontaktůPokud je nastavena hodnota "false", bude kontakt, který již v Quandě existuje, přeskočen bez jakékoliv aktualizace. Pokud je nastavena hodnota "true", dojde k přepsání původních dat daty novými. Pokud kontakt neexistuje, bude vytvořen.
overwrite_companiesbooleanfalseNastavení přepisování dat firemPokud je nastavena hodnota "false", bude firma, která již v Quandě existuje, přeskočena bez jakékoliv aktualizace. Pokud je nastavena hodnota "true", dojde k přepsání původních dat daty novými. Pokud firma neexistuje, bude vytvořena.
contact_tags_overwritebooleantrueNastavení přepisování štítků kontaktůPokud je nastavena hodnota "false", nové štítky se pouze doplní k již stávajícím. Pokud je nastavena hodnota na "true", původní štítky kontaktu budou smazány a nahrazeny novými. Neexistující štítky se automaticky založí.
company_tags_overwritebooleantrueNastavení přepisování štítků firemPokud je nastavena hodnota "false", nové štítky se pouze doplní k již stávajícím. Pokud je nastavena hodnota na "true", původní štítky firmy budou smazány a nahrazeny novými. Neexistující štítky se automaticky založí.

Hromadný import kontaktů

PUThttps://api.onquanda.com/api/contact/importer/

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "overwrite": true,
 "contact_tags_overwrite": true,
 "overwrite_companies": true,
 "company_tags_overwrite": true,
 "data": [
 {
 "Contact": {
 "email": "petr.novak@quanda.cz",
 "source": "Veletrh",
 "title_before": "Ing.",
 "first_name": "Petr",
 "last_name": "Novák",
 "sex": "Muž",
 "birthdate": "06.05.1981",
 "occupation": "Ekonom",
 "phone_home": "+420602123456",
 "phone_work": "+420987654321",
 "mobile": "+42603123456",
 "address_work_street": "Jarní 58",
 "address_work_city": "Praha 9",
 "address_work_zipcode": "19000",
 "address_work_country": "CZ",
 "main_company": "ABC a.s.",
 "note": "Zasílat e-maily maximálně 2x týdně",
 "custom_field_1": "ForArch2019",
 "erp_ident_num": "A124578",
 "salutation_last_name": "Vážený pane Nováku",
 "salutation_first_name": "Dobrý den, Petře",
 "salutation_last_name_vocative": "Nováku",
 "salutation_first_name_vocative": "Petře",
 "tags": "VIP,Praha,OP356"
 },
 "ContactPurposeOfProcessing": {
 "purpose_of_processing": 1,
 "status_valid_to": "23.12.2020 14:30:00",
 "status": 1,
 "legal_title_legitimate_interest_of_administrator": true
 },
 "Company": {
 "name": "ABC a.s.",
 "tags": "Dodavatel,Praha"
 }
 }
 ]
}

Schema

{
 "name": "Contact List",
 "description": "",
 "renders": [
 "application/json",
 "text/html"
 ],
 "parses": [
 "application/json",
 "application/x-www-form-urlencoded",
 "multipart/form-data"
 ],
 "actions": {
 "PUT": {
 "id": {
 "type": "integer",
 "required": false,
 "read_only": true,
 "label": "ID"
 },
 "created": {
 "type": "datetime",
 "required": false,
 "read_only": true,
 "label": "Vytvořeno",
 "help_text": "admin-vytvoreno_help"
 },
 "modified": {
 "type": "datetime",
 "required": false,
 "read_only": true,
 "label": "Změněno",
 "help_text": "admin-zmeneno_help"
 },
 "email": {
 "type": "email",
 "required": true,
 "read_only": false,
 "label": "E-mail (hlavní e-mail)",
 "help_text": "admin-email_help",
 "max_length": 150
 },
 "title_before": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Titul",
 "help_text": "admin-titul_help",
 "max_length": 255
 },
 "first_name": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Jméno",
 "help_text": "admin-jmeno_help",
 "max_length": 255
 },
 "second_name": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Prostřední jméno",
 "help_text": "admin-prostredni_jmeno_help",
 "max_length": 255
 },
 "last_name": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Příjmení",
 "help_text": "admin-prijmeni_help",
 "max_length": 255
 },
 "title_after": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Titul za",
 "help_text": "admin-titul_za_help",
 "max_length": 255
 },
 "salutation": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Oslovení",
 "help_text": "admin-osloveni_help",
 "max_length": 255
 },
 "salutation_last_name": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Kompletní oslovení s příjmením",
 "help_text": "admin-osloveni_komplet_prijmeni_help",
 "max_length": 255
 },
 "salutation_first_name": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Kompletní oslovení se jménem",
 "help_text": "admin-osloveni_komplet_krestni_help",
 "max_length": 255
 },
 "salutation_last_name_vocative": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Příjmení v 5 pádu",
 "help_text": "admin-osloveni_prijmeni_5_pad_help",
 "max_length": 255
 },
 "salutation_first_name_vocative": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Jméno v 5 pádu",
 "help_text": "admin-osloveni_krestni_5_pad_help",
 "max_length": 255
 },
 "email_2": {
 "type": "email",
 "required": false,
 "read_only": false,
 "label": "E-mail 2",
 "help_text": "admin-email_2_help",
 "max_length": 150
 },
 "email_3": {
 "type": "email",
 "required": false,
 "read_only": false,
 "label": "E-mail 3",
 "help_text": "admin-email_3_help",
 "max_length": 150
 },
 "sex": {
 "type": "choice",
 "required": false,
 "read_only": false,
 "label": "Pohlaví",
 "help_text": "admin-pohlavi_help",
 "choices": [
 {
 "value": "male",
 "display_name": "Muž"
 },
 {
 "value": "female",
 "display_name": "Žena"
 }
 ]
 },
 "source": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Zdroj",
 "help_text": "admin-zdroj_help",
 "max_length": 255
 },
 "recommended_by": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Doporučeno kým",
 "help_text": "admin-doporuceno_help",
 "max_length": 255
 },
 "birthdate": {
 "type": "date",
 "required": false,
 "read_only": false,
 "label": "Datum narození",
 "help_text": "admin-datum_narozeni_help"
 },
 "anniversary": {
 "type": "date",
 "required": false,
 "read_only": false,
 "label": "Datum svátku / výročí",
 "help_text": "Datum svátku nebo výročí uvádějte ve tvaru 1.1.2021 nebo 01.01.2021"
 },
 "occupation": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Funkce",
 "help_text": "admin-funkce_help",
 "max_length": 255
 },
 "double_opt_in_status": {
 "type": "choice",
 "required": false,
 "read_only": false,
 "label": "?",
 "help_text": "admin-contact-double_opt_in_status_help",
 "choices": [
 {
 "value": 0,
 "display_name": "?"
 },
 {
 "value": 1,
 "display_name": "?"
 },
 {
 "value": 2,
 "display_name": "?"
 }
 ]
 },
 "www": {
 "type": "url",
 "required": false,
 "read_only": false,
 "label": "Www adresa",
 "help_text": "Vyplňte adresu Vašeho webu",
 "max_length": 255
 },
 "phone_home": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Telefon domů",
 "help_text": "Telefonní číslo uvádějte ve tvaru: +420123456789",
 "max_length": 50
 },
 "phone_work": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Telefon práce",
 "help_text": "Telefonní číslo uvádějte ve tvaru: +420123456789",
 "max_length": 50
 },
 "mobile": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Mobil",
 "help_text": "Telefonní číslo uvádějte ve tvaru: +420123456789",
 "max_length": 50
 },
 "address_work_street": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Ulice a číslo popisné",
 "help_text": "admin-adresa_prace_ulice_help",
 "max_length": 255
 },
 "address_work_city": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Město",
 "help_text": "admin-adresa_prace_mesto_help",
 "max_length": 255
 },
 "address_work_region": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Kraj",
 "help_text": "admin-adresa_prace_region_help",
 "max_length": 255
 },
 "address_work_zipcode": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "PSČ",
 "help_text": "Poštovní směrovací číslo uvádějte ve tvaru \"000 00\" nebo \"00000\"",
 "max_length": 20
 },
 "address_work_country": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Země",
 "help_text": "admin-adresa_prace_zeme_help",
 "max_length": 255
 },
 "address_home_street": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Ulice a číslo popisné",
 "help_text": "admin-adresa_domu_ulice_help",
 "max_length": 255
 },
 "address_home_city": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Město",
 "help_text": "admin-adresa_domu_mesto_help",
 "max_length": 255
 },
 "address_home_region": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Kraj",
 "help_text": "admin-adresa_domu_region_help",
 "max_length": 255
 },
 "address_home_zipcode": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "PSČ",
 "help_text": "Pro PSČ použijte formát 000 00 nebo 00000",
 "max_length": 20
 },
 "address_home_country": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Země",
 "help_text": "admin-adresa_domu_zeme_help",
 "max_length": 255
 },
 "custom_field_1": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Uživatelské pole 1",
 "max_length": 255
 },
 "custom_field_2": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Uživatelské pole 2",
 "max_length": 255
 },
 "custom_field_3": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Uživatelské pole 3",
 "max_length": 255
 },
 "custom_field_4": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Uživatelské pole 4",
 "max_length": 255
 },
 "custom_field_5": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Uživatelské pole 5",
 "max_length": 255
 },
 "custom_field_6": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Uživatelské pole 6",
 "max_length": 255
 },
 "tags": {
 "type": "field",
 "required": false,
 "read_only": true,
 "label": "Tags",
 "child": {
 "type": "nested object",
 "required": false,
 "read_only": true,
 "children": {
 "id": {
 "type": "integer",
 "required": false,
 "read_only": true,
 "label": "ID"
 },
 "created": {
 "type": "datetime",
 "required": false,
 "read_only": true,
 "label": "Vytvořeno",
 "help_text": "admin-vytvoreno_help"
 },
 "modified": {
 "type": "datetime",
 "required": false,
 "read_only": true,
 "label": "Změněno",
 "help_text": "admin-zmeneno_help"
 },
 "name": {
 "type": "string",
 "required": true,
 "read_only": false,
 "label": "Název",
 "help_text": "admin-tags-nazev_help",
 "max_length": 255
 },
 "contacts_count": {
 "type": "integer",
 "required": false,
 "read_only": true,
 "label": "api-contact-pocet_kontaktu_stitku"
 }
 }
 }
 },
 "note": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Poznámka",
 "help_text": "admin-poznamka_help"
 },
 "main_company": {
 "type": "nested object",
 "required": false,
 "read_only": true,
 "label": "Main company",
 "children": {
 "id": {
 "type": "integer",
 "required": false,
 "read_only": true,
 "label": "ID"
 },
 "name": {
 "type": "string",
 "required": true,
 "read_only": false,
 "label": "Název firmy",
 "help_text": "ABC, a.s.",
 "max_length": 255
 }
 }
 },
 "owner": {
 "type": "field",
 "required": false,
 "read_only": false,
 "label": "Vlastník kontaktu",
 "help_text": "Vlastník kontaktu je jeden z Uživatelů uložených v Quandě."
 },
 "erp_ident_num": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Helios person number",
 "help_text": "admin-kontakt-erp_ident_num_pl_help"
 },
 "content_categories": {
 "type": "field",
 "required": false,
 "read_only": true,
 "label": "Content categories",
 "child": {
 "type": "nested object",
 "required": false,
 "read_only": true,
 "children": {
 "identifier": {
 "type": "string",
 "required": true,
 "read_only": false,
 "label": "Identifier"
 },
 "is_enabled": {
 "type": "boolean",
 "required": true,
 "read_only": false,
 "label": "Is enabled"
 },
 "timestamp": {
 "type": "datetime",
 "required": false,
 "read_only": true,
 "label": "Timestamp"
 }
 }
 }
 },
 "Company": {
 "name": {
 "type": "string",
 "required": false,
 "label": "Název firmy",
 "max_length": 255
 },
 "ident_num": {
 "type": "string",
 "required": false,
 "label": "IČ",
 "max_length": 30
 },
 "vat_num": {
 "type": "string",
 "required": false,
 "label": "DIČ",
 "max_length": 30
 },
 "business_branch": {
 "type": "string",
 "required": false,
 "label": "Obor podnikání",
 "max_length": 255
 },
 "category": {
 "type": "string",
 "required": false,
 "label": "Kategorie",
 "max_length": 255
 },
 "employees": {
 "type": "integer",
 "required": false,
 "label": "Počet zaměstnanců"
 },
 "bank_account_number": {
 "type": "string",
 "required": false,
 "label": "Číslo účtu",
 "max_length": 255
 },
 "bank": {
 "type": "string",
 "required": false,
 "label": "Banka",
 "max_length": 255
 },
 "custom_field_1": {
 "type": "string",
 "required": false,
 "label": "Uživatelské pole 1",
 "max_length": 255
 },
 "custom_field_2": {
 "type": "string",
 "required": false,
 "label": "Uživatelské pole 2",
 "max_length": 255
 },
 "custom_field_3": {
 "type": "string",
 "required": false,
 "label": "Uživatelské pole 3",
 "max_length": 255
 },
 "address_headquarter_street": {
 "type": "string",
 "required": false,
 "label": "Ulice a číslo popisné",
 "max_length": 255
 },
 "address_headquarter_city": {
 "type": "string",
 "required": false,
 "label": "Město",
 "max_length": 255
 },
 "address_headquarter_region": {
 "type": "string",
 "required": false,
 "label": "Kraj",
 "max_length": 255
 },
 "address_headquarter_zipcode": {
 "type": "string",
 "required": false,
 "label": "PSČ",
 "max_length": 20
 },
 "address_headquarter_country": {
 "type": "string",
 "required": false,
 "label": "Země",
 "max_length": 255
 },
 "address_postal_street": {
 "type": "string",
 "required": false,
 "label": "Ulice a číslo popisné",
 "max_length": 255
 },
 "address_postal_city": {
 "type": "string",
 "required": false,
 "label": "Město",
 "max_length": 255
 },
 "address_postal_region": {
 "type": "string",
 "required": false,
 "label": "Kraj",
 "max_length": 255
 },
 "address_postal_zipcode": {
 "type": "string",
 "required": false,
 "label": "PSČ",
 "max_length": 20
 },
 "address_postal_country": {
 "type": "string",
 "required": false,
 "label": "Země",
 "max_length": 255
 },
 "email": {
 "type": "email",
 "required": false,
 "label": "E-mail",
 "max_length": 255
 },
 "www": {
 "type": "string",
"required": false,
 "label": "www adresa",
 "max_length": 255
 },
 "note": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Poznámka"
 }
 },
 "purposes_of_processing": {
 "type": "field",
 "required": false,
 "read_only": true,
 "label": "Purposes of processing",
 "child": {
 "type": "nested object",
 "required": false,
 "read_only": true,
 "children": {
 "purpose_of_processing": {
 "type": "integer",
 "required": true,
 "read_only": false,
 "label": "Purpose of processing"
 },
 "status": {
 "type": "choice",
 "required": false,
 "read_only": false,
 "label": "Status zasílání e-mailů",
 "help_text": "admin-contact-ucel_zpracovani-status_help",
 "choices": [
 {
 "value": 1,
 "display_name": "Zasílat e-maily"
 },
 {
 "value": 2,
 "display_name": "Nemůžeme zasílat (odhlášení)"
 },
 {
 "value": 3,
 "display_name": "Nemůžeme zasílat (vypršel souhlas)"
 },
 {
 "value": 4,
 "display_name": "Nemůžeme zasílat (čekáme na souhlas)"
 }
 ]
 },
 "status_valid_to": {
 "type": "datetime",
 "required": false,
 "read_only": false,
 "label": "Platnost do",
 "help_text": "admin-contact-ucel_zpracovani-status_platny_do_help"
 },
 "status_paused_to": {
 "type": "datetime",
 "required": false,
 "read_only": false,
 "label": "Admin-contact-ucel_zpracovani-status_pozastaven_do",
 "help_text": "admin-contact-ucel_zpracovani-status_pozastaven_do_help"
 },
 "legal_title_legitimate_interest_of_administrator": {
 "type": "boolean",
 "required": false,
 "read_only": false,
 "label": "Oprávněný zájem správce"
 },
 "legal_title_legitimate_fulfilling_legal_obligation": {
 "type": "boolean",
 "required": false,
 "read_only": false,
 "label": "Plnění právní povinnosti"
 },
 "legal_title_contract_fulfilling_or_negotiation_of_conclusion": {
 "type": "boolean",
 "required": false,
 "read_only": false,
 "label": "Plnění smlouvy nebo jednání o jejím uzavření"
 },
 "legal_title_legitimate_consent_to_processing_personal_data": {
 "type": "boolean",
 "required": false,
 "read_only": false,
 "label": "Souhlas se zpracováním osobních údajů"
 },
 "legal_title_public_interest": {
 "type": "boolean",
 "required": false,
 "read_only": false,
 "label": "Veřejný zájem"
 },
 "legal_title_legitimate_vital_interest": {
 "type": "boolean",
 "required": false,
 "read_only": false,
 "label": "Životně důležitý zájem"
 }
 }
 }
 }
 }
 }
}

Odpověď

200 OK Content-Type: application/json

{
 "stats": {
 "total": 1,
 "invalid": 0,
 "skipped": 0,
 "updated": 0,
 "created": 1
 },
 "stats_v2": {
 "total": 1,
 "total_contacts": 1,
 "total_companies": 1,
 "created_contacts": 1,
 "created_companies": 0,
 "invalid": 0,
 "updated_contacts": 0,
 "updated_companies": 1,
 "skipped": 0,
 "ignored_contact_tags": 0,
 "ignored_company_tags": 0,
 "ignored_contactpurposeofprocessing_status": 0
 },
 "invalid_list": [],
 "warnings": [],
 "errors": []
}

Odpověď v případě překročení počtu kontaktů nastavený tarifem

200 OK Content-Type: application/json

{
 "stats": {
 "total": 1,
 "invalid": 0,
 "skipped": 0,
 "updated": 0,
 "created": 1
 },
 "stats_v2": {
 "total": 1,
 "total_contacts": 1,
 "total_companies": 1,
 "created_contacts": 1,
 "created_companies": 1,
 "invalid": 0,
 "updated_contacts": 0,
 "updated_companies": 0,
 "skipped": 0,
 "ignored_contact_tags": 0,
 "ignored_company_tags": 0,
 "ignored_contactpurposeofprocessing_status": 0
 },
 "invalid_list": [],
 "warnings": [
 {
 "code": "001",
 "message": "Došlo k překročení limitu počtu kontaktů nastaveným aktuálním tarifem zákazníka. Kontaktujte prosím Quanda support."
 }
 ],
 "errors": []
}

Odpověď v případě omezení importu tarifem zákazníka

200 OK Content-Type: application/json

{
 "stats": {
 "total": 0,
 "invalid": 0,
 "skipped": 0,
 "updated": 0,
 "created": 0
 },
 "stats_v2": {
 "total": 0,
 "total_contacts": 0,
 "total_companies": 0,
 "created_contacts": 0,
 "created_companies": 0,
 "invalid": 0,
 "updated_contacts": 0,
 "updated_companies": 0,
 "skipped": 0,
 "ignored_contact_tags": 0,
 "ignored_company_tags": 0,
 "ignored_contactpurposeofprocessing_status": 0
 },
 "invalid_list": [],
 "warnings": [],
 "errors": [
 {
 "code": "501",
 "message": "Tarif zákazníka omezil přidávání nových kontaktů. Kontaktujte prosím Quanda support."
 }
 ]
}

Odpověď v případě překročení počtu povolených záznamů na jedno volání

413 Request Entity Too Large Byl

překročen maximální počet povolených záznamů na jedno volání.

Import více objektů k jednomu objektu Contact

K jednomu objektu Contact lze přiřadit více objektů Company a více objektů ContactPurposeOfProcessing. Toho lze docílit dvěma způsoby.

1. způsob

K jednomu objektu Contact přiřazujeme maximálně jeden objekt Company nebo jeden objekt ContactPurposeOfProcessing nebo oba současně.

Company

PolePříkladPoznámka
Company{“name”: ...}Pole Company obsahuje pole name, společnost s názvem name se založí nebo aktualizuje dle dalších uvedených polí a kontakt je této firmě přiřazen.
Company{}U nového kontaktu se nevytvoří žádná firma, ani se do žádné nepřiřadí, u již existujícího se neprovede žádná změna pro firmu.
CompanynullU nového kontaktu se nevytvoří žádná firma, ani se do žádné nepřiřadí, u již existujícího se odstraní přiřazení kontaktu do firmy.
Company není vůbec uvedenoStejné jako v případě Company: {}

ContactPurposeOfProcessing

PolePříkladPoznámka
ContactPurposeOfProcessing{“purpose_of_processing”: … }Účel zpracování s názvem purpose_of_processing se založí pro účet daného zákazníka, pokud již neexistuje, a následně přiřadí danému kontaktu. Pokud by již daný kontakt k tomuto účelu zpracování přiřazen byl, dojde k aktualizaci atributů tohoto přiřazení.
ContactPurposeOfProcessing{}K žádnému vytvoření účelu zpracování na účtu daného zákazníka nedojde. Nedojde ani k přiřazení žádného účelu zpracování pro daný kontakt. Pokud pole ContactPurposeOfProcessing není uvedeno nebo je prázdné a dochází k vytvoření nového kontaktu, pak tomuto kontaktu je přiřazen výchozí účel zpracování pro daný účet zákazníka a hodnota statusu tohoto účelu zpracování je nastavena na 1 ("Zasílat e-maily").
ContactPurposeOfProcessing není vůbec uvedenoStejné jako v případě ContactPurposeOfProcessing: {}. Pokud pole ContactPurposeOfProcessing není uvedeno nebo je prázdné a dochází k vytvoření nového kontaktu, pak tomuto kontaktu je přiřazen výchozí účel zpracování pro daný účet zákazníka a hodnota statusu tohoto účelu zpracování je nastavena na 1 ("Zasílat e-maily").

2. způsob

K jednomu objektu Contact přiřazujeme více objektů Company nebo ContactPurposeOfProcessing.

Companies

PolePříkladPoznámka
Companies[ { “name”: … }, {“name”: … }, … ]Pole Companies obsahuje list společností definovaných stejně jako ve způsobu 1. Pokud je parametr overwrite_companies nastaven na hodnotu True, kontakt je nejprve odebrán ze všech dosavadních společností a poté přidán do společností v poli Companies. Pokud některá ze společností v poli Companies neexistuje, bude vytvořena a kontakt bude zvolen jako hlavní kontakt této společnosti. Pokud je parametr overwrite_companies nastaven na hodnotu False, kontakt je přidán do Companies. Pokud kontakt v některé z Companies již figuruje, je tato Company ignorována. Pokud některá ze společností v poli Companies neexistuje, bude vytvořena a kontakt bude zvolen jako hlavní kontakt této společnosti.
Companies[]V závislosti na parametru overwrite_companies je kontakt odebrán ze všech firem, ve kterých figuruje nebo počet firem, ve kterých kontakt figuruje zůstane neměnný (viz bod výše).
Pole Companies není vůbec uvedenoStejné jako v případě Companies: [].

ContactPurposesOfProcessing

PolePříkladPoznámka
ContactPurposesOfProcessing[ { “purpose_of_processing”: … }, {“purpose_of_processing”: … }, … ]Pole ContactPurposesOfProcessing obsahuje list účelů zpracování kontaktu definovaných stejně jako ve způsobu 1.
ContactPurposesOfProcessing[]Stejné jako v případě ContactPurposeOfProcessing: [] ve způsobu 1.
Pole ContactPurposesOfProcessing není vůbec uvedenoStejné jako v případě ContactPurposesOfProcessing: [].

Oba způsoby jsou navzájem disjunktní, tudíž stav, kdy data jsou ve formátu obou způsobů není definován.

Data pro "ContactPurposeOfProcessing"

PoleTypeRequiredPopisPoznámka
"purpose_of_processing"fieldtrueÚčel zpracování osobních údajůHodnoty viz "Používané číselníky" níže.
"status"choicefalseStatus zasílání e-mailůHodnoty viz "Používané číselníky" níže.
"contactpurposeofprocessing_status_ignore"booleanfalseNepřepisovat uložený status odesíláníUmožňuje zachovat a nepřepisovat aktuálně uložený status odesílání i při nastavení přepisování stávajících kontaktů na "overwrite".
"status_valid_to"datetimefalsePlatnost doDatum a čas
"legal_title_legitimate_interest_of_administrator"booleanfalseOprávněný zájem správcePrávní titul
"legal_title_legitimate_fulfilling_legal_obligation"booleanfalsePlnění právní povinnostiPrávní titul
"legal_title_contract_fulfilling_or_negotiation_of_conclusion"booleanfalsePlnění smlouvy nebo jednání o jejím uzavřeníPrávní titul
"legal_title_legitimate_consent_to_processing_personal_data"booleanfalseSouhlas se zpracováním osobních údajůPrávní titul
"legal_title_public_interest"booleanfalseVeřejný zájemPrávní titul
"legal_title_legitimate_vital_interest"booleanfalseŽivotně důležitý zájemPrávní titul

Data pro "Company"

PoleTypeRequiredPopisMax-length
"name"stringtrueNázev firmy255
"ident_num"stringfalse30
"vat_num"stringfalseDIČ30
"business_branch"stringfalseObor podnikání255
"category"stringfalseKategorie255
"employees"integerfalsePočet zaměstnanců255
"bank_account_number"stringfalseČíslo účtu255
"bank"stringfalseBanka255
"custom_field_1"stringfalseUživatelské pole 1255
"custom_field_2"stringfalseUživatelské pole 2255
"custom_field_3"stringfalseUživatelské pole 3255
"address_headquarter_street"stringfalseUlice a číslo popisné255
"address_headquarter_city"stringfalseMěsto255
"address_headquarter_region"stringfalseKraj255
"address_headquarter_zipcode"stringfalsePSČ255
"address_headquarter_country"stringfalseZemě255
"address_postal_street"stringfalseUlice a číslo popisné255
"address_postal_city"stringfalseMěsto255
"address_postal_region"stringfalseKraj255
"address_postal_zipcode"stringfalsePSČ255
"address_postal_country"stringfalseZemě255
"email"emailfalseE-mail255
"www"stringfalsewww adresa255
"tags"stringfalseŠtítky firmy255
"assigned_customeruser"emailfalsePřiděleno uživateli"dependencies"

E-mailové kampaně

Seznam e-mailových kampaní

GEThttps://api.onquanda.com/api/newsletter/campaigns/{campaign_type}/
URI ParametersTypeRequiredPoznámka
campaign_typeintegerfalseTyp e-mailové kampaně: 10 = Jednoduchá e-mailová kampaň 20 = Logická e-mailová kampaň 30 = E-mailový seriál 40 = Narozeninová e-mailová kampaň 50 = E-mailová kampaň pro výročí a svátky 60 = E-mailová kampaň s A/B testováním 70 = Transakční e-mail

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "count": 3,
 "next": null,
 "previous": null,
 "results": [
 {
 "id": 43491,
 "name": "10 most common mistakes to avoid in the implementation of the online survey",
 "state": 20,
 "activated_at": "2017-12-02T17:10:08.643985",
 "email_subject": "10 most common mistakes to avoid in the implementation of the online survey"
 },
 {
 "id": 43492,
 "name": "10 nejčastějších chyb při realizaci online průzkumů",
 "state": 20,
 "activated_at": "2017-12-02T17:10:08.643985",
 "email_subject": "10 nejčastějších chyb při realizaci online průzkumů"
 },
 {
 "id": 43500,
 "name": "10 způsobů, jak připravit obsah",
 "state": 20,
 "activated_at": "2017-12-02T17:10:08.643985",
 "email_subject": "10 způsobů, jak připravit kvalitní a hodnotný obsah Vašeho e-mailu"
 }
 ]
}

Seznam e-mailů

GEThttps://api.onquanda.com/api/newsletter/newsletters/?campaing_name=Novinky&content_name=1 díl&content_email_subject=Květnové novinky z naší firmy

Query parameters

ParametersPopisPoznámka
campaing_namestring příklad: campaing_name=NovinkyFiltrování seznamu odeslaných e-mailových kampaní podle názvu kampaně
content_namestring příklad: content_name=1 dílFiltrování seznamu odeslaných e-mailových kampaní podle názvu e-mailu
content_email_subjectstring content_email_subject=Květnové novinky z naší firmyFiltrování seznamu odeslaných e-mailových kampaní podle předmětu e-mailu

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "count": 491,
 "next": "https://quanda.onquanda.com/api/newsletter/newsletters/?page=2",
 "previous": null,
 "results": [
 {
 "id": 99716,
 "campaign_name": "Seriál pro nové zákazníky",
 "content_name": "Díl 3.",
 "content_email_subject": "Odešlete jednoduchou e-mailovou kampaň."
 },
 {
 "id": 99941,
 "campaign_name": "Seriál pro nové zákazníky",
 "content_name": "Díl 5.",
 "content_email_subject": "Vytvořte a odešlete dotazník."
 },
 {
 "id": 160983,
 "campaign_name": "Novinky z naší firmy",
 "content_name": "",
 "content_email_subject": "Květnové novinky"
 }
]
}

E-mailové kampaně, které nepoužívají "Název e-mailu" mají prázdnou hodnotu v části "content_name".

Seznam odeslaných kampaní po určitém datumu a čase

Umožňuje omezit seznam odeslaných e-mailů pouze na takové, které byly odeslány po určitém datu a čase. Jedná se o řetězec, který odpovídá formátu pro datum a čas ISO 8601.

GET/api/newsletter/newsletters/?sent_after=2020-7-1T09:00:00.00

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
    "count": 6,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 160710,
            "campaign_name": "test Q",
            "content_name": "",
            "content_email_subject": "nové API"
        },
        {
            "id": 103347,
            "campaign_name": "2. Díl - Trial: Naimportujte své kontakty do Quandy.",
            "content_name": "2. Díl",
            "content_email_subject": "Naimportujte své kontakty do Quandy."
        },
        {
            "id": 103432,
            "campaign_name": "5. Díl - Trial: Vytvořte a odešlete dotazník.",
            "content_name": "5. Díl",
            "content_email_subject": "Vytvořte a odešlete dotazník."
        },
        {
            "id": 159474,
            "campaign_name": "Přání k svátkům 2",
            "content_name": "Přání k svátku",
            "content_email_subject": "{{ contact_salutation_first_name_vocative }}, všechno nejlepší k dnešnímu svátku!"
        },
        {
            "id": 103351,
            "campaign_name": "4. Díl - Trial: Vytvořte formulář a umístěte ho na svůj web.",
            "content_name": "4. Díl",
            "content_email_subject": "Vytvořte formulář a umístěte ho na svůj web."
        },
        {
            "id": 81103,
            "campaign_name": "Příklady předmětů z blogu",
            "content_name": "60+ příkladů na předmět emailu",
            "content_email_subject": "60+ příkladů pro poutavý předmět emailu"
        }
    ]
}

Detail a statistiky kampaně

GEThttps://api.onquanda.com/api/newsletter/newsletters/{id}/
URI ParametersTypeRequiredPoznámka
idintegerfalsenewsletters/{id} = ID kampaně

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "id": 159995,
 "created": "2024-07-02T10:14:18.768038",
 "modified": "2024-07-02T13:00:37.096525",
 "started": "2024-07-02T13:00:36.211077",
 "resolve_in": 7,
 "resolved": false,
 "position": 0,
 "sent_recipients_count": 1,
 "delivered_recipients_count": 1,
 "not_delivered_recipients_count": 0,
 "recipients_tracked_count_sum": 2,
 "tracked_recipients_count": 1,
 "delivered_not_tracked_recipients_count": 0,
 "recipients_clicked_links_count": 0,
 "unsubscribed_recipients_count": 0,
 "url_stats": "https://quanda.onquanda.com/newsletter/campaign/141076/stats_detail/159995/",
 "label": "Novinky z naší firmy",
 "last_sent": "2024-07-02T13:00:36.775487"
}
AtributTypPopis
idintegerID
createddatetimeVytvořeno
modifieddatetimeZměněno
starteddatetimeČas spuštění
resolve_inintegerVyhodnotit za
resolvedbooleanVyhodnoceno
positionintegerPořadí
sent_recipients_countintegerPočet odeslaných e-mailů
delivered_recipients_countintegerPočet doručených e-mailů
not_delivered_recipients_countintegerPočet nedoručených e-mailů
recipients_tracked_count_sumintegerPočet otevřených e-mailů celkem
tracked_recipients_countintegerPočet otevřených e-mailů unikátně
delivered_not_tracked_recipients_countintegerPočet neotevřených e-mailů
recipients_clicked_links_countintegerPočet unikátních prokliků
unsubscribed_recipients_countintegerPočet odhlášených příjemců
url_statsurlURL adresa pro zobrazení statistik
labelstringNázev kampaně - Název e-mailu

Obsah e-mailu

GEThttps://api.onquanda.com/api/newsletter/newsletters/{id}/content/
URI ParametersTypeRequiredPoznámka
idintegertruenewsletters/{id} = ID kampaně

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "id": 17128,
 "created": "2015-08-26T14:19:21.509501",
 "modified": "2018-09-25T13:43:59.052404",
 "name": "Název e-mailu č.1",
 "email_subject": "Plánová údržba systému Quanda",
 "email_body_html": "<html><head><style>\n@media only screen {\n html {\n min-height: 100%;\n background: #f3f3f3;\n }\n}\n@media only screen and (max-width: 596px) {\n .small-float-center {\n margin: 0 auto !important;\n float: none !important;\n text-align: center !important;\n }\n\n .small-text-center {\n text-align: center !important;\n }\n\n .small-text-left {\n text-align: left !important;\n }\n\n .small-text-right {\n text-align: right !important;\n }\n}\n@media only screen and (max-width: 596px) {\n .hide-for-large {\n display: block !important;\n width: auto !important;\n overflow: visible !important;\n max-height: none !important;\n font-size: inherit !important;\n line-height: inherit !important;\n }\n}\n@media only screen and (max-width: 596px) {\n .hide-for-mobile {\n mso-hide: all;\n display: none !important;\n width: 0 !important;\n overflow: hidden !important;\n max-height: 0 !important;\n font-size: 0 !important;\n line-height: 0 !important;\n }\n\n .fullwidth-mobile {\n width: 100% !important;\n }\n\n .fullwidth-mobile img {\n max-width: none !important;\n }\n}\n@media only screen and (max-width: 596px) {\n table.body table.container .hide-for-large,\ntable.body table.container .row.hide-for-large {\n display: table !important;\n width: 100% !important;\n }\n}\n@media only screen and (max-width: 596px) {\n table.body table.container .callout-inner.hide-for-large {\n display: table-cell !important;\n width: 100% !important;\n }\n}\n@media only screen and (max-width: 596px) {\n table.body table.container .show-for-large {\n display: none !important;\n width: 0;\n mso-hide: all;\n overflow: hidden;\n }\n}\n@media only screen and (max-width: 596px) {\n table.body img {\n max-width: none !important;\n height: auto;\n }\n\n .special-button table {\n min-width: 200px;\n }\n\n table.body center {\n min-width: 0 !important;\n }\n\n table.body .container {\n width: 100% !important;\n }\n\n table.body .help-container {\n width: 100% !important;\n }\n\n table.body .columns,\ntable.body .column {\n height: auto !important;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n table.body .columns .column,\ntable.body .columns .columns,\ntable.body .column .column,\ntable.body .column .columns {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n\n table.body .collapse .columns,\ntable.body .collapse .column {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n\n td.small-1,\nth.small-1 {\n display: inline-block !important;\n width: 8.33333% !important;\n }\n\n td.small-2,\nth.small-2 {\n display: inline-block !important;\n width: 16.66667% !important;\n }\n\n td.small-3,\nth.small-3 {\n display: inline-block !important;\n width: 25% !important;\n }\n\n td.small-4,\nth.small-4 {\n display: inline-block !important;\n width: 33.33333% !important;\n }\n\n td.small-5,\nth.small-5 {\n display: inline-block !important;\n width: 41.66667% !important;\n }\n\n td.small-6,\nth.small-6 {\n display: inline-block !important;\n width: 50% !important;\n }\n\n td.small-7,\nth.small-7 {\n display: inline-block !important;\n width: 58.33333% !important;\n }\n\n td.small-8,\nth.small-8 {\n display: inline-block !important;\n width: 66.66667% !important;\n }\n\n td.small-9,\nth.small-9 {\n display: inline-block !important;\n width: 75% !important;\n }\n\n td.small-10,\nth.small-10 {\n display: inline-block !important;\n width: 83.33333% !important;\n }\n\n td.small-11,\nth.small-11 {\n display: inline-block !important;\n width: 91.66667% !important;\n }\n\n td.small-12,\nth.small-12 {\n display: inline-block !important;\n width: 100% !important;\n }\n\n .columns td.small-12,\n.column td.small-12,\n.columns th.small-12,\n.column th.small-12 {\n display: block !important;\n width: 100% !important;\n }\n\n table.body td.small-offset-1,\ntable.body th.small-offset-1 {\n margin-left: 8.33333% !important;\n Margin-left: 8.33333% !important;\n }\n\n table.body td.small-offset-2,\ntable.body th.small-offset-2 {\n margin-left: 16.66667% !important;\n Margin-left: 16.66667% !important;\n }\n\n table.body td.small-offset-3,\ntable.body th.small-offset-3 {\n margin-left: 25% !important;\n Margin-left: 25% !important;\n }\n\n table.body td.small-offset-4,\ntable.body th.small-offset-4 {\n margin-left: 33.33333% !important;\n Margin-left: 33.33333% !important;\n }\n\n table.body td.small-offset-5,\ntable.body th.small-offset-5 {\n margin-left: 41.66667% !important;\n Margin-left: 41.66667% !important;\n }\n\n table.body td.small-offset-6,\ntable.body th.small-offset-6 {\n margin-left: 50% !important;\n Margin-left: 50% !important;\n }\n\n table.body td.small-offset-7,\ntable.body th.small-offset-7 {\n margin-left: 58.33333% !important;\n Margin-left: 58.33333% !important;\n }\n\n table.body td.small-offset-8,\ntable.body th.small-offset-8 {\n margin-left: 66.66667% !important;\n Margin-left: 66.66667% !important;\n }\n\n table.body td.small-offset-9,\ntable.body th.small-offset-9 {\n margin-left: 75% !important;\n Margin-left: 75% !important;\n }\n\n table.body td.small-offset-10,\ntable.body th.small-offset-10 {\n margin-left: 83.33333% !important;\n Margin-left: 83.33333% !important;\n }\n\n table.body td.small-offset-11,\ntable.body th.small-offset-11 {\n margin-left: 91.66667% !important;\n Margin-left: 91.66667% !important;\n }\n\n table.body table.columns td.expander,\ntable.body table.columns th.expander {\n display: none !important;\n }\n\n table.body .right-text-pad,\ntable.body .text-pad-right {\n padding-left: 10px !important;\n }\n\n table.body .left-text-pad,\ntable.body .text-pad-left {\n padding-right: 10px !important;\n }\n\n table.menu {\n width: 100% !important;\n }\n\n table.menu td,\ntable.menu th {\n width: auto !important;\n display: inline-block !important;\n }\n\n table.menu.vertical td,\ntable.menu.vertical th,\ntable.menu.small-vertical td,\ntable.menu.small-vertical th {\n display: block !important;\n }\n\n table.menu[align=\"center\"] {\n width: auto !important;\n }\n\n table.button.small-expand,\ntable.button.small-expanded {\n width: 100% !important;\n }\n\n table.button.small-expand table,\ntable.button.small-expanded table {\n width: 100%;\n }\n\n table.button.small-expand table a,\ntable.button.small-expanded table a {\n text-align: center !important;\n width: 100% !important;\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n\n table.button.small-expand center,\ntable.button.small-expanded center {\n min-width: 0;\n }\n}\n</style><link href=\"https://fonts.googleapis.com/css?family=Anton|Lobster|Montserrat:400,700|Oswald:400,700|Playfair+Display:400,700|Raleway:400,700|Roboto+Condensed:400,700|Roboto:400,500,700&subset=latin-ext\" rel=\"stylesheet\"><!--[if gte mso 7]><xml>\n <o:OfficeDocumentSettings>\n <o:AllowPNG/>\n <o:PixelsPerInch>96</o:PixelsPerInch>\n </o:OfficeDocumentSettings>\n</xml><![endif]--><!--[if gte mso 9]>\n <style>\n li {\n text-indent: -1em; /* Normalise space between bullets and text */\n }\n </style>\n <![endif]--></link></head><body style=\"min-width: 100%; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; margin: 0; Margin: 0; padding: 0; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; mso-line-height-rule: exactly; font-size: 16px; width: 100%;\"><table class=\"body\" height=\"100%\" style=\"border-spacing: 0; border-collapse: collapse; padding: 0; vertical-align: top; text-align: left; background: #f3f3f3; height: 100%; width: 100%; mso-line-height-rule: exactly; font-size: 16px; background-color: #eeeeee;\" width=\"100%\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td align=\"center\" class=\"float-center\" style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; mso-line-height-rule: exactly; font-size: 16px; margin: 0 auto; Margin: 0 auto; float: none; text-align: center; border-collapse: collapse;\" valign=\"top\"><div class=\"hide-for-mobile\"><div><center style=\"width: 100%; min-width: 580px;\"><table align=\"center\" class=\"container float-center\" style=\"border-spacing: 0; border-collapse: collapse; padding: 0; vertical-align: top; margin: 0 auto; Margin: 0 auto; float: none; text-align: center; background-color: #eeeeee; width: 650px;\" width=\"650\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td colspan=\"3\" height=\"0\" style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; height: 0px; line-height: 0px; border-collapse: collapse;\"></td></tr><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; width: 0px; border-collapse: collapse;\" width=\"0\"></td><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; border-collapse: collapse;\"><table class=\"row\" style=\"border-spacing: 0; border-collapse: collapse; vertical-align: top; text-align: left; padding: 0; width: 100%; position: relative; display: table;\" width=\"100%\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><th class=\"large-6 small-12 last right content-exclude\" style=\"mso-line-height-rule: exactly; font-size: 16px; padding-top: 0; padding-bottom: 0; text-align: right; width: 274px; padding-left: 8px; padding-right: 16px; padding: 0px;\"><table style=\"border-spacing: 0; border-collapse: collapse; padding: 0; vertical-align: top; text-align: left; width: 100%;\" width=\"100%\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td colspan=\"3\" height=\"15\" style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; height: 15px; line-height: 15px; border-collapse: collapse;\"></td></tr><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; width: 0px; border-collapse: collapse;\" width=\"0\"></td><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; border-collapse: collapse;\"><div class=\"sc-bdVaJa gzwiaj\" style=\"text-align: right; box-sizing: border-box; font-family: Roboto, helvetica, arial, sans-serif; font-size: 12px; font-weight: 400; font-style: normal; text-decoration: none; color: #000000;\">Zobrazit <a class=\"content-exclude hide-for-mobile\" href=\"{{ html_link }}\" style=\"mso-line-height-rule: exactly; text-decoration: underline; color: #000000;\">v prohlížeči</a></div></td><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; width: 0px; border-collapse: collapse;\" width=\"0\"></td></tr><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td colspan=\"3\" height=\"25\" style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; height: 25px; line-height: 25px; border-collapse: collapse;\"></td></tr></tbody></table></th></tr></tbody></table></td><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; width: 0px; border-collapse: collapse;\" width=\"0\"></td></tr></tbody></table></center></div></div><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-spacing: 0; border-collapse: collapse; padding: 0; vertical-align: top; text-align: left;\" width=\"100%\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; background-color: #eeeeee; background-repeat: no-repeat; background-size: auto; background-position: center center; background-image: url(); border-collapse: collapse;\"><div><center style=\"width: 100%; min-width: 580px;\"><table align=\"center\" class=\"container float-center\" style=\"border-spacing: 0; border-collapse: collapse; padding: 0; vertical-align: top; margin: 0 auto; Margin: 0 auto; float: none; text-align: center; width: 650px;\" width=\"650\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; background-color: #ffffff; background-repeat: no-repeat; background-size: auto; background-position: center center; background-image: url(); border-collapse: collapse;\"><table class=\"row\" style=\"border-spacing: 0; border-collapse: collapse; vertical-align: top; text-align: left; padding: 0; width: 100%; position: relative; display: table;\" width=\"100%\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: center;\"><th style=\"mso-line-height-rule: exactly; font-size: 16px; padding-top: 0; padding-bottom: 0; width: 0px; padding: 0px;\" width=\"0px\"></th><th class=\"small-12 columns large-12 first last\" style=\"mso-line-height-rule: exactly; font-size: 16px; padding-top: 0; padding-bottom: 0; margin: 0 auto; Margin: 0 auto; padding-left: 0px; padding-right: 0px; width: 650px;\"><table style=\"border-spacing: 0; border-collapse: collapse; padding: 0; vertical-align: top; text-align: left; width: 100%;\" width=\"100%\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><th class=\"hide-for-mobile\" style=\"mso-line-height-rule: exactly; font-size: 16px; padding-top: 0; padding-bottom: 0; width: 0px; padding: 0px;\" width=\"0px\"></th><th style=\"mso-line-height-rule: exactly; font-size: 16px; padding-top: 0; padding-bottom: 0; padding: 0px;\"><table align=\"center\" cellpadding=\"0\" cellspacing=\"0\" class=\"container float-center\" style=\"border-spacing: 0; border-collapse: collapse; padding: 0; vertical-align: top; margin: 0 auto; Margin: 0 auto; float: none; text-align: center; width: 100%;\" width=\"100%\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td colspan=\"3\" height=\"25\" style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; height: 25px; line-height: 25px; border-collapse: collapse;\"></td></tr><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; width: 25px; border-collapse: collapse;\" width=\"25\"></td><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; border-collapse: collapse;\"><div class=\"sc-bwzfXH fICNhB\" color=\"#000000\" font-family=\"georgia,palatino,Times New Roman,Georgia,serif\" font-size=\"16px\" font-style=\"normal\" font-weight=\"400\" style=\"font-family: georgia, palatino, 'Times New Roman', Georgia, serif; font-size: 16px; color: #000000; font-weight: 400; font-style: normal; text-decoration: none; line-height: 24px; width: 100%;\" text-decoration=\"none\"><p style=\"Margin: 0 0 0 10px; mso-line-height-rule: exactly; margin: 0px; hyphens: none; font-family: georgia, palatino, 'Times New Roman', Georgia, serif; font-size: 16px; color: #000000; font-weight: 400; font-style: normal; text-decoration: none; line-height: 24px;\"><p style=\"margin: 0px; line-height: 24px;\"> <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; margin: 0px;\" width=\"100%\"><tr><td><img alt=\"\" height=\"128\" src=\"http://quanda.onquanda.com/media/uploaded/27/ba/9259ce6d21d3d893b660fe451686/upgrade.png\" style=\"display: block;\" width=\"160\"/></td></tr></table></p>\n<p style=\"margin: 0px; line-height: 24px;\"><br/>{{ contact_salutation }},<br/><br/>dnes <strong>26.8. 2015 od 16:00</strong> proběhne plánovaná<strong> údržba systému Quanda</strong>. Systém bude nedostupný cca 20-30 minut.</p>\n<p style=\"margin: 0px; line-height: 24px;\">Všechny e-maily budou v pořádku odeslány a doručeny.<br/><br/></p>\n<p style=\"margin: 0px; line-height: 24px;\"><span style=\"line-height: 1.6;\">Děkujeme za pochopení.</span></p>\n<p style=\"margin: 0px; line-height: 24px;\"><span style=\"line-height: 1.6;\">V případě jakýchkoliv dotazů nás, prosím, kontaktujte na telefonu +420 603 734 514 nebo na e-mailu support@onquanda.com.<br/><br/></span></p>\n<p style=\"margin: 0px; line-height: 24px;\">Hezký den,<br/><br/><span style=\"line-height: 1.6;\">tým Quanda<br/></span></p>\n<p style=\"margin: 0px; line-height: 24px;\"><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; margin: 0px;\" width=\"100%\"><tr><td><img alt=\"\" height=\"37\" src=\"http://quanda.onquanda.com/media/uploaded/4b/e9/2cf63dc0c23bd1a5d770a2e3af40/logo_quanda-2_1.png\" style=\"display: block;\" width=\"147\"/></td></tr></table></p></p></div></td><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; width: 25px; border-collapse: collapse;\" width=\"25\"></td></tr><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td colspan=\"3\" height=\"25\" style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; height: 25px; border-collapse: collapse;\"></td></tr></tbody></table></th><th class=\"hide-for-mobile\" style=\"mso-line-height-rule: exactly; font-size: 16px; padding-top: 0; padding-bottom: 0; width: 0px; padding: 0px;\" width=\"0px\"></th><th class=\"expander\" style=\"mso-line-height-rule: exactly; font-size: 16px; padding-top: 0; padding-bottom: 0; visibility: hidden; width: 0; padding: 0;\"></th></tr></tbody></table></th><th style=\"mso-line-height-rule: exactly; font-size: 16px; padding-top: 0; padding-bottom: 0; width: 0px; padding: 0px;\" width=\"0px\"></th></tr></tbody></table></td></tr></tbody></table></center></div></td></tr></tbody></table><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-spacing: 0; border-collapse: collapse; padding: 0; vertical-align: top; text-align: left;\" width=\"100%\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; background-color: #eeeeee; background-repeat: no-repeat; background-size: auto; background-position: center center; background-image: url(); border-collapse: collapse;\"><div><center style=\"width: 100%; min-width: 580px;\"><table align=\"center\" class=\"container float-center\" style=\"border-spacing: 0; border-collapse: collapse; padding: 0; vertical-align: top; margin: 0 auto; Margin: 0 auto; float: none; text-align: center; width: 650px;\" width=\"650\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; background-color: #eeeeee; background-repeat: no-repeat; background-size: auto; background-position: center center; background-image: url(); border-collapse: collapse;\"><table class=\"row\" style=\"border-spacing: 0; border-collapse: collapse; vertical-align: top; text-align: left; padding: 0; width: 100%; position: relative; display: table;\" width=\"100%\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: center;\"><th style=\"mso-line-height-rule: exactly; font-size: 16px; padding-top: 0; padding-bottom: 0; width: 0px; padding: 0px;\" width=\"0px\"></th><th class=\"small-12 columns large-12 first last\" style=\"mso-line-height-rule: exactly; font-size: 16px; padding-top: 0; padding-bottom: 0; margin: 0 auto; Margin: 0 auto; padding-left: 0px; padding-right: 0px; width: 650px;\"><table style=\"border-spacing: 0; border-collapse: collapse; padding: 0; vertical-align: top; text-align: left; width: 100%;\" width=\"100%\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><th class=\"hide-for-mobile\" style=\"mso-line-height-rule: exactly; font-size: 16px; padding-top: 0; padding-bottom: 0; width: 0px; padding: 0px;\" width=\"0px\"></th><th style=\"mso-line-height-rule: exactly; font-size: 16px; padding-top: 0; padding-bottom: 0; padding: 0px;\"><table align=\"center\" cellpadding=\"0\" cellspacing=\"0\" class=\"container float-center\" style=\"border-spacing: 0; border-collapse: collapse; padding: 0; vertical-align: top; margin: 0 auto; Margin: 0 auto; float: none; text-align: center; width: 100%;\" width=\"100%\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td colspan=\"3\" height=\"25\" style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; height: 25px; line-height: 25px; border-collapse: collapse;\"></td></tr><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; width: 25px; border-collapse: collapse;\" width=\"25\"></td><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; border-collapse: collapse;\"><div class=\"sc-bwzfXH aEdEw\" color=\"#000000\" font-family=\"georgia,palatino,Times New Roman,Georgia,serif\" font-size=\"14px\" font-style=\"normal\" font-weight=\"400\" style=\"font-family: georgia, palatino, 'Times New Roman', Georgia, serif; font-size: 14px; color: #000000; font-weight: 400; font-style: normal; text-decoration: none; line-height: 21px; width: 100%;\" text-decoration=\"none\"><p style=\"Margin: 0 0 0 10px; mso-line-height-rule: exactly; margin: 0px; hyphens: none; font-family: georgia, palatino, 'Times New Roman', Georgia, serif; font-size: 14px; color: #000000; font-weight: 400; font-style: normal; text-decoration: none; line-height: 21px;\"><p style=\"margin: 0px; line-height: 24px;\">{{ contact_custom_field_3 }}</p>\n<p style=\"margin: 0px; line-height: 24px;\">{{ contact_custom_field_4 }}</p></p></div></td><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; width: 25px; border-collapse: collapse;\" width=\"25\"></td></tr><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td colspan=\"3\" height=\"25\" style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; height: 25px; border-collapse: collapse;\"></td></tr></tbody></table></th><th class=\"hide-for-mobile\" style=\"mso-line-height-rule: exactly; font-size: 16px; padding-top: 0; padding-bottom: 0; width: 0px; padding: 0px;\" width=\"0px\"></th><th class=\"expander\" style=\"mso-line-height-rule: exactly; font-size: 16px; padding-top: 0; padding-bottom: 0; visibility: hidden; width: 0; padding: 0;\"></th></tr></tbody></table></th><th style=\"mso-line-height-rule: exactly; font-size: 16px; padding-top: 0; padding-bottom: 0; width: 0px; padding: 0px;\" width=\"0px\"></th></tr></tbody></table></td></tr></tbody></table></center></div></td></tr></tbody></table><div><div><center style=\"width: 100%; min-width: 580px;\"><table align=\"center\" class=\"container float-center\" style=\"border-spacing: 0; border-collapse: collapse; padding: 0; vertical-align: top; margin: 0 auto; Margin: 0 auto; float: none; text-align: center; background-color: #eeeeee; width: 650px;\" width=\"650\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; width: 0px; border-collapse: collapse;\" width=\"0\"></td><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; border-collapse: collapse;\"><table class=\"row\" style=\"border-spacing: 0; border-collapse: collapse; vertical-align: top; text-align: left; padding: 0; width: 100%; position: relative; display: table;\" width=\"100%\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><th class=\"large-12 small-12 first last center content-exclude\" style=\"mso-line-height-rule: exactly; font-size: 16px; padding-top: 0; padding-bottom: 0; text-align: center; width: 564px; padding-left: 16px; padding-right: 16px; padding: 0px;\"><table style=\"border-spacing: 0; border-collapse: collapse; padding: 0; vertical-align: top; text-align: left; width: 100%;\" width=\"100%\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td colspan=\"3\" height=\"25\" style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; height: 25px; line-height: 25px; border-collapse: collapse;\"></td></tr><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; width: 0px; border-collapse: collapse;\" width=\"0\"></td><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; border-collapse: collapse;\"><div class=\"sc-bdVaJa gzwiaj\" style=\"text-align: center; box-sizing: border-box; font-family: Roboto, helvetica, arial, sans-serif; font-size: 12px; font-weight: 400; font-style: normal; text-decoration: none; color: #000000;\">Pokud nechcete dostávat další e-maily, snadno se můžete <a class=\"content-exclude\" href=\"{{ unsubscribe_link }}\" style=\"mso-line-height-rule: exactly; text-decoration: underline; color: #000000;\">odhlásit.</a></div></td><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; width: 0px; border-collapse: collapse;\" width=\"0\"></td></tr><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td colspan=\"3\" height=\"0\" style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; height: 0px; line-height: 0px; border-collapse: collapse;\"></td></tr></tbody></table></th></tr><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><th class=\"large-12 small-12 first last center content-exclude\" style=\"mso-line-height-rule: exactly; font-size: 16px; padding-top: 0; padding-bottom: 0; text-align: center; width: 564px; padding-left: 16px; padding-right: 16px; padding: 0px;\"><table style=\"border-spacing: 0; border-collapse: collapse; padding: 0; vertical-align: top; text-align: left; width: 100%;\" width=\"100%\"><tbody><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td colspan=\"3\" height=\"25\" style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; height: 25px; line-height: 25px; border-collapse: collapse;\"></td></tr><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td colspan=\"3\" height=\"15\" style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; height: 15px; line-height: 15px; border-collapse: collapse;\"></td></tr></tbody></table></th></tr></tbody></table></td><td style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; width: 0px; border-collapse: collapse;\" width=\"0\"></td></tr><tr style=\"padding: 0; vertical-align: top; text-align: left;\"><td colspan=\"3\" height=\"0\" style=\"-webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; padding: 0; vertical-align: top; text-align: left; mso-line-height-rule: exactly; font-size: 16px; height: 0px; line-height: 0px; border-collapse: collapse;\"></td></tr></tbody></table></center></div></div></td></tr></tbody></table></body></html>",
 "email_body_plain": "Zobrazit \n{{ contact_salutation }},dnes 26.8. 2015 od 16:00\n proběhne plánovaná údržba systému Quanda\n. Systém bude nedostupný cca 20-30 minut.\nVšechny e-maily budou v pořádku odeslány a doručeny.\nDěkujeme za pochopení.\nV případě jakýchkoliv dotazů nás, prosím, kontaktujte na telefonu +420 603 734 514 nebo na e-mailu support@onquanda.com.\nHezký den,tým Quanda\n{{ contact_custom_field_3 }}\n{{ contact_custom_field_4 }}\nPokud nechcete dostávat další e-maily, snadno se můžete ",
 "email_footer": "<p>{{ contact_custom_field_3 }}</p>\r\n<p>{{ contact_custom_field_4 }}</p>",
 "is_spam": false,
 "spam_score": 0.0,
 "spam_data": "",
 "url_public_html_preview": "https://quanda.onquanda.com/newsletter/html-preview/b74e6909902edf35a1c9c5e97c769216/"
}
AtributyTypeRequiredRead_onlyPopisMax-length
idintegerfalsetrueID
createddatetimefalsetrueVytvořeno
modifieddatetimefalsetrueZměněno
namestringtruefalseNázev e-mailu255
email_subjectstringtruefalsePředmět e-mailu
email_body_htmlstringtruefalseObsah e-mailu v HTML
email_body_plainstringtruefalseObsah e-mailu jak "plain text"
email_footerstringfalsefalsePatička e-mailu
is_spambooleanfalsetrueSPAM ANO / NE
spam_scorefloatfalsetrueSpam skóre
spam_datastringfalsetrueDetailní report k Spam skóre
url_public_html_previewurlfalsetrueURL adresa pro náhled e-mailu

Typ e-mailové kampaně

GEThttps://api.onquanda.com/api/newsletter/newsletters/{id}/campaign/
URI ParametersTypeRequiredPoznámka
idintegerfalseID kampaně

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "id": 17438,
 "created": "2015-09-14T13:29:32.143661",
 "modified": "2022-01-18T11:50:40.377976",
 "name": "Průzkum spokojenosti zaměstnanců 2015",
 "campaign_type": 10,
 "backward_write_to_erp_enabled": false,
 "crm_activity_metadata": "..."
}
AtributyTypeRequiredRead_onlyLabelMax-length
idintegerfalsetrueID
createddatetimefalsetrue
modifieddatetimefalsetrue
namestringtruefalse255
campaign_typechoicetruefalse
backward_write_to_erp_enabledbooleanfalsefalse
crm_activity_metadatastringfalsefalse

Omezení

Atributy "backward_write_to_erp_enabled" a "crm_activity_metadata" jsou vráceny, pouze pokud to tarif zákazníka umožňuje.

Jednoduchá e-mailová kampaň

Odeslání v jednom kroku

Odeslní e-mailové kampaně v jednom kroku umožňuje rychlé odeslání připravené jednoduché e-mailové kampaně. V jednom kroku se tak nastaví příjemci pomocí uvedených e-mailů nebo štítků a zadá se čas odeslání. Před odesláním projde e-mail běžnou kontrolou obsahu a kontrolou na SPAM. Nejsou však odeslány testovací e-maily. Proto doporučujeme vše předem důkladně otestovat a nastavit přímo v Quandě.

Čas odeslání kampaně není povinný údaj. Pokud čas odeslání není uveden, dojde k odeslání e-mailové kampaně ihned.

POSThttps://api.onquanda.com/api/newsletter/campaigns/{campaign_id}/one-step-send/
URI ParametersTypeRequiredPoznámka
campaign_idintegertrueID jednoduché e-mailové kampaně

Request(Varianta s výběrem příjemců pomocí e-mailů)

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "send_datetime": "20250228T162480.000Z",
 "emails": ["example1@example.com", "example2@example.com"]
}

Uvedené e-maily slouží k vyhledání kontaktů v Quandě. Pokud jsou nalezeny, z kontaktů se vytvoří Příjemci e-mailové kampaně.

Příjemci se nevytvořína základě uvedených e-mailových adres, pokud uvedená e-mailová adresa:

  • neexistuje (není nalezena mezi již vytvořenými kontakty),
  • je odhlášena,
  • je neplatná,
  • je blacklistovaná,
  • nená přihlášenou kategorii obsahu zvolenou v nastavení dané e-mailové kampaně.

Odpověď

200 OK Content-Type: application/json

{
"not_found_emails": ["example2@example.com"]
}

Request(Varianta s výběrem příjemců pomocí štítků)

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "send_datetime": "20250228T162480.000Z",
 "tags": [1, 2],
 "tags_behavior": "or" (nebo "and")
}

Odpověď

200 OK Content-Type: application/json

Odpověď v případě blokace tarifem

403 Not available Content-Type: application/json

"Váš současný tarif nedovoluje vytvářet a odesílat jednoduché e-mailové kampaně pomocí API. Kontaktujte podporu na support@onquanda.com."

Odpověď v případě nenalazeného id e-mailové kampaně

404 Not Found Content-Type: application/json

{
 "detail": "Nenalezeno."
}

Odpověď v případě, že zvolená e-mailová kampaň již byla odeslána

400 Bad Request Content-Type: application/json

"E-mailová kampaň již byla odeslaná a není možné ji dále upravovat ani znova odesílat."

Odpověď v případě překročení maximálního počtu vložených e-mailových adres (50 000)

400 Bad Request Content-Type: application/json

{
"emails": ["Byl překročen maximální počet vložených e-mailových adres (50 000) na jeden požadavek."]
}

Nová kampaň a obsahu e-mailu

POSThttps://api.onquanda.com/api/newsletter/campaigns/10/

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "name": "Název kampaně",
 "content_category": "d0mtuf",
 "language": "cs",
 "manager_id": 708,
 "assigned_customerusers": [2847,5273],
 "template_id": 3636,
 "html": "<!DOCTYPE html><html lang=\"cs\"><head><meta charset=\"UTF-8\"><title></title></head><body><p>Pokud nechcete dostávat další e-maily, snadno můžete jejich zasílání <a href=\"{{ unsubscribe_link }}\">úplně zrušit</a>.</p></body></html>",
 "email_subject": "Předmět kampaně",
 "sender_type": 10,
 "sender_id": 493,
 "custom_template_variables": {
 "key_1": "value_1",
 "key_2": "value_2",
 "key_3": "value_3"
 }
}

Obsah e-mailu pomocí uložené šablony nebo vlastního HTML

Quanda umožňuje vytvořit obsah e-mailu pomocí uložené šablony na všem účtu nebo pomocí vlastního HTML. Pokud chcete obsah e-mailu vytvořit pomocí vlastní šablony použijte v API volání parametr "template_id" s uvedením id šablony, kterou chcete použít.

Pokud chcete obsah e-mailu vytvořit pomocí vlastního HTML použijte v API volání parametr „html“ a připojte kompletní HTML kód e-mailu.

Důležité upozornění: Aby bylo možné pomocí vlastní HTML kódu e-mail odeslat musí obsahovat značku pro odhlášení {{ unsubscribe_link }}, například v podobě:

<p style="margin:0; font-family:Arial,Helvetica,sans-serif; font-size:11px; color:#ffffff; line-height:18px; mso-line-height-rule:exactly; text-align:center;">
  Pokud už nechcete dostávat tyto e-maily, můžete
  <a href="{{ unsubscribe_link }}" style="color:#ffffff; text-decoration:underline;">zrušit jejich odběr</a>.
</p>

Vlastní obsah šablony definovaný pomocí vložených značek

Aby bylo možné do zvolené šablony, dle "template_id", vložit html obsah zaslaný pomocí API požadavku v "custom_template_variables", musí šablona obsahovat značky {{ key_1 }}, {{ key_2 }} atd. Tyto značky jsou pak v e-mailové šabloně nahrazeny obsahem zaslaným pomocí "value_1", "value_2" atd.

Příklad značky a hodnoty

"key_1" ve značce {{ key_1 }} můžeme nahradit vlastní hodnotou. Pomocí "value_1" pak do e-mailu vložíme například text. Výsledný formát bude:

{
 "name": "Název kampaně",
 "content_category": "d0mtuf",
 "language": "cs",
 "manager_id": 708,
 "assigned_customerusers": [2847,5273],
 "template_id": 3636,
 "html": "",
 "email_subject": "Předmět kampaně",
 "sender_type": 10,
 "sender_id": 493,
 "custom_template_variables": {
 "email_body_text_1": "Text, který se vloží do e-mailu na místo uvedené značky"
 }
}

Tímto způsobem můžete do e-mailové šablony vkládat:

  • texty,
  • odkazy nebo jejich části,
  • obrázky a jejich názvy.

Jak postupovat?

  • Vytvořte nový e-mail.
  • Do míst v e-mailu, která mají být nahrazena obsahem zaslaným pomocí API, vložte přílušné značky. Značky pojmenjte dle potřeby. Například {{ nadpis_1 }}, {{ text_1 }}, {{ url_obrazku_1 }}, {{ url_odkazu_obrazku_1 }} apod.
  • Vždy dodržujte správný formát značky ve tvaru: {{ ... }}.
  • Značky pro text můžete formátovat a zarovnávat dle požadavků na výsledný formát, barvu a umístění.
  • Uložte e-mail jako novou šablonu.
  • Na přehledu šablon, po najetí myší na danou šablonu, zjistíte její ID.
  • Odešlete API požadavek, který bude obsahovat jednotlivé značky (značky v API požadavku se musí shodovat s těmi, které máte umístěny v e-mailové šabloně) a jejich obsah.
  • Manuálně nebo pomocí API odešlete testovací e-mail a ovřete, že se vše zobrazuje správně. Pokud ne, ověřte, zda značky odpovídají API požadavku a jsou součástí e-mailové šablony. Pokud si nebudete vědět rady, napište nám na e-mail: support@onquanda.com.

Příklad e-mailové šablony se značkami

V e-mailové šabloně nastavte řádky a sloupce dle potřeby výsledného formátu e-mailu. Můžete kombinovat obrázky, text, další obsah, systémové značky a vaše vlastní značky.

Příklad šablony e-mailu s vlastními značkami pro API obsah

Odpověď

201 Created Content-Type: application/json

{
 "id": 89432,
 "name": "Název kampaně",
 "content_category": "d0mtuf",
 "manager_id": 708,
 "language": "cs",
 "assigned_customerusers": [
 2847,
 5273
 ],
 "sender_type": 10,
 "sender_id": 493,
 "reply_to_id": null
}

Odpověď v případě blokace tarifem

403 Not available Content-Type: application/json

"Váš současný tarif nedovoluje vytvářet a odesílat jednoduché e-mailové kampaně pomocí API. Kontaktujte podporu na support@onquanda.com."

Odpověď v případě chaby validace HTML obsahu

400 Bad Request Content-Type: application/json

"Vložený HTML kód obsahuje chyby a proto z něj není možné vytvořit validní e-mail. Zkontrolujte vložené HTML, najděte chyby a opravte je. Pokud si nevíte rady využijte pro opravu nalezení a opravu chyb například Claude Code AI."

Odpověď v případě, že id kategorie obsahu neexistuje

400 Bad Request Content-Type: application/json

"Objekt s identifier=d0mtuf neexistuje."

Odpověď v případě, že id manažera kampaně neexistuje, id spolupracovníka neexistuje nebo id odesílatele neexistuje

400 Bad Request Content-Type: application/json

"Chybný primární klíč \"7080\" - objekt neexistuje."

Odpověď v případě, že id šablony e-mailu nebylo nalezeno

400 Bad Request Content-Type: application/json

"ID e-mailové šablony nebylo nalezeno."

Odpověď v případě nesprávně uvedeného id typu e-mailové kampaně

400 Bad Request Content-Type: application/json

"\"323\" není platnou možností."

Úprava obsahu e-mailu

Platí pouze pro jednoduchou e-mailovou kampaň.

PUThttps://api.onquanda.com/api/newsletter/campaigns/{campaign_id}/content/
URI ParametersTypeRequiredPoznámka
{campaign_id}integertrue{campaign_id} = ID kampaně

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "html": "<!DOCTYPE html><html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:o=\"urn:schemas-microsoft-com:office:office\"><head><meta charset=\"UTF-8\"><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"><meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"><meta name=\"x-apple-disable-message-reformatting\"><meta name=\"color-scheme\" content=\"light dark\"><meta name=\"supported-color-schemes\" content=\"light dark\"><title>Quanda pro neziskové organizace</title><!--[if gte mso 15]><xml><o:OfficeDocumentSettings><o:AllowPNG/><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]--><style>:root { color-scheme: light dark; } body, table, td, a { -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } table, td { mso-table-lspace: 0pt; mso-table-rspace: 0pt; } img { -ms-interpolation-mode: bicubic; border: 0; height: auto; line-height: 100%; outline: none; text-decoration: none; }...",
 "email_subject": "Nový předmět kampaně"
}

Důležité upozornění:

Aby bylo možné pomocí vlastní HTML kódu e-mail odeslat musí obsahovat značku pro odhlášení {{ unsubscribe_link }}, například v podobě:

<p style="margin:0; font-family:Arial,Helvetica,sans-serif; font-size:11px; color:#ffffff; line-height:18px; mso-line-height-rule:exactly; text-align:center;">
 Pokud už nechcete dostávat tyto e-maily, můžete
 <a href="{{ unsubscribe_link }}" style="color:#ffffff; text-decoration:underline;">zrušit jejich odběr</a>.
</p>

Odpověď

200 OK Content-Type: application/json

Odpověď v případě chaby validace HTML obsahu

400 Bad Request Content-Type: application/json

"Vložený HTML kód obsahuje chyby a proto z něj není možné vytvořit validní e-mail. Zkontrolujte vložené HTML, najděte chyby a opravte je. Pokud si nevíte rady využijte pro opravu nalezení a opravu chyb například Claude Code AI."

Odpověď v případě blokace tarifem

403 Not available Content-Type: application/json

"Váš současný tarif nedovoluje vytvářet a odesílat jednoduché e-mailové kampaně pomocí API. Kontaktujte podporu na support@onquanda.com."

Odpověď v případě, že se nejedná o jednoduchou e-mailovou kampaň

404 Not Found Content-Type: application/json

"Nenalezeno."

Odpověď v případě, že uvedená kampaň již byla odeslána

400 Bad Request Content-Type: application/json

"E-mailová kampaň již byla odeslána. Není možné ji upravovat."

Příjemci

POSThttps://api.onquanda.com/api/newsletter/campaigns/{campaign_id}/add-contacts/

Příjemce je možné vybírat pomocí vyjmenovaných e-mailových adres nebo pomocí štítků. Oba způsoby není možné kombinovat mezi sebou.

Request(Varianta s výběrem příjemců pomocí e-mailů)

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "emails": ["example1@example.com", "example2@example.com"]
}

Uvedené e-maily slouží k vyhledání kontaktů v Quandě. Pokud jsou nalezeny, z kontaktů se vytvoří Příjemci e-mailové kampaně.

Příjemci se nevytvořína základě uvedených e-mailových adres, pokud uvedená e-mailová adresa:

  • neexistuje (není nalezena mezi již vytvořenými kontakty),
  • je odhlášena,
  • je neplatná,
  • je blacklistovaná,
  • nená přihlášenou kategorii obsahu zvolenou v nastavení dané e-mailové kampaně.

Odpověď

200 OK Content-Type: application/json

{
"not_found_emails": ["example2@example.com"]
}

Request(Varianta s výběrem příjemců pomocí štítků)

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "tags": [1, 2],
 "tags_behavior": "or" (nebo "and")
}

Odpověď

200 OK Content-Type: application/json

Odpověď v případě blokace tarifem

403 Not available Content-Type: application/json

"Váš současný tarif nedovoluje vytvářet a odesílat jednoduché e-mailové kampaně pomocí API. Kontaktujte podporu na support@onquanda.com."

Odpověď v případě nenalazeného id e-mailové kampaně

404 Not Found Content-Type: application/json

{
 "detail": "Nenalezeno."
}

Odpověď v případě chybně zvoleného typu e-mailové kampaně

400 Bad Request Content-Type: application/json

"Přidávání příjemců pomocí e-mailových adres nebo štíků je podporováno pouze pro jednouché e-mailové kamapně. Zvolené id kampaně odpovídá jinému typu e-mailové kampaně."

Odpověď v případě že zvolená e-mailová kampaň již byla odeslána

400 Bad Request Content-Type: application/json

"Do této e-mailové kampaně není možné přidat příjemce. E-mailová kampaň již byla odeslaná a není možné ji dále upravovat."

Odpověď v případě překročení maximálního počtu vložených e-mailových adres (50 000) na jeden požadavek

400 Bad Request Content-Type: application/json

{
"emails": ["Byl překročen maximální počet vložených e-mailových adres (50 000) na jeden požadavek."]
}

Odeslání testovacích e-mailů

POSThttps://api.onquanda.com/api/newsletter/campaigns/{campaign_id}/send-test/

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
"emails": ["example1@example.com", "example2@example.com"]
}

Odpověď

200 OK Content-Type: application/json

Odpověď v případě blokace tarifem

403 Not available Content-Type: application/json

"Váš současný tarif nedovoluje vytvářet a odesílat jednoduché e-mailové kampaně pomocí API. Kontaktujte podporu na support@onquanda.com."

Odpověď v případě překročení celkového limitu počtu odeslaných testovacích e-mailů

403 Not available Content-Type: application/json

"Váš limit pro počet odeslaných testovacích e-mailů byl překročen. Kontaktujte podporu na support@onquanda.com."

Odpověď v případě, že uvedená e-mailová kampaň nebyla nalezena

404 Not Found Content-Type: application/json

Odpověď v případě chybného formátu e-mailové adresy, na kterou má být odeslán testovací e-mail

400 Bad Request Content-Type: application/json

{
 "emails": [
 "Vložte platnou e-mailovou adresu."
 ]
}

Odpověď v případě překročení limitu pro počet zadaných e-mailových adres, na které má být odeslán testovací e-mail

400 Bad Request Content-Type: application/json

"Byl překročen maximální počet (3) zadaných e-mailových adres pro odeslání testovacího e-mailu."

Odpověď v případě, že e-mail neprošel kontrolou obsahu

400 Bad Request Content-Type: application/json

{
 "Nepovolená slova nebo slovní spojení": [
 "Moneta"
 ],
 "Nepovolené domény nebo url adresy": []
}

Odpověď v případě, že e-mailová kampaň nemá vybrané žádné příjemce

400 Bad Request Content-Type: application/json

"Testovací e-mail není možné odeslat. E-mailová kampaň nemá vybrané žádné příjemce."

Odeslání kampaně

POSThttps://api.onquanda.com/api/newsletter/campaigns/{campaign_id}/send/

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
"send_datetime": "20250228T162480.000Z"
}

Odpověď

200 OK Content-Type: application/json

Odpověď v případě blokace tarifem

403 Not available Content-Type: application/json

"Váš současný tarif nedovoluje vytvářet a odesílat jednoduché e-mailové kampaně pomocí API. Kontaktujte podporu na support@onquanda.com."

Odpověď v případě nenalazeného id e-mailové kampaně

404 Not Found Content-Type: application/json

{
 "detail": "Nenalezeno."
}

Odpověď v případě že zvolená e-mailová kampaň již byla odeslána

400 Bad Request Content-Type: application/json

"E-mailová kampaň již byla odeslaná a není možné ji dále upravovat ani znova odesílat."

Transakční e-maily

Odeslání transakčního e-mailu

PUThttps://api.onquanda.com/api/newsletter/campaign/{transactional_campaign_id}/add-contact/{contact_id}/
URI ParametersTypeRequiredPoznámka
transactional_campaign_idintegertrueID transakčního e-mailu
contact_idintegertrueID kontaktu

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "send_anyway": true,
 "attachments": ["https://www.quanda.cz/media/download/ebook-jak-napsat-predmet-emailu/e-book-jak-napsat-predmet-e-mailu.pdf"],
 "custom_template_variables": {
 "key_1": "value_1",
 "key_2": "value_2",
 "key_3": "value_3"
 }
}

Schema

{
 "send_anyway": {
 "type": "boolean",
 "required": false,
 "read_only": false,
 "label": "Odeslat vždy",
 "help": "Pokud je uvedeno true, transakční e-mail je odeslán vždy a to i v případě, že je daný kontakt odhlášen"
 },
 "attachments": {
 "type": "string",
 "required": false,
 "read_only": false,
 "label": "Příloha",
 "help": "URL adresa souboru, který má být odeslán jako příloha transakčního e-mailu"
 },
 "custom_template_variables": {
 "type": "collection",
 "required": false,
 "read_only": false,
 "label": "Proměnné šablony",
 "help": "Vlastní proměnné pro šablonu e-mailu ve formátu klíč–hodnota",
 "spec": [
 {
 "name": "key_1",
 "type": "string",
 "label": "Klíč 1"
 },
 {
 "name": "key_2",
 "type": "string",
 "label": "Klíč 2"
 },
 {
 "name": "key_3",
 "type": "string",
 "label": "Klíč 3"
 }
 ]
 }
}

Povolené typy příloh

doc, docx, xls, xlsx, ppt, pptx, jpeg, jpg, gif, png, bmp a pdf

Maximální velikost přílohy

20MB

Vlastní obsah šablony definovaný pomocí vložených značek

Definujte páry klíč–hodnota pro nahrazení vlastních značek v šabloně e-mailu. Klíč musí odpovídat názvu značky použité v e-mailové šabloně (např. klíč 'order_number' nahradí značku {{ order_number }} v e-mailové šabloně).

Aby bylo možné do zvolené šablony, dle "template_id", vložit html obsah zaslaný pomocí API požadavku v "custom_template_variables", musí šablona e-mailu obsahovat značky {{ key_1 }}, {{ key_2 }} atd. Tyto značky jsou pak v e-mailové šabloně nahrazeny obsahem zaslaným pomocí "value_1", "value_2" atd.

Odpověď

201 Created Content-Type: application/json

Odpověď v případě nepovoleného typu přílohy

400 Bad Request Content-Type: application/json

{
 "attachments": [
 "Příloha typu .exe není povolena"
 ]
}

Odpověď v případě neplatné url nebo neexistujícího souboru na dané url

400 Bad Request Content-Type: application/json

{
 "error": "Na uvedené adrese se nenachází žádný soubor nebo uvedená url adresa není platná. Zkontrolujte zadanou adresu: https://ww.quanda.cz/media/download/ebook-jak-napsat-predmet-emailu/e-book-jak-napsat-predmet-e-mailu.pdf"
}

Odpověď v případě neexistujícího ID kampaně nebo ID kontaktu

404 Not Found Content-Type: application/json

{
 "detail": "Nenalezeno."
}

Odeslání transakčního e-mailu s pozvánkou do dotazníku s předvyplněnými odpověďmi

  • Odesílaný transakční e-mail musí obsahovat odkaz do dotazníku.
  • Jednotlivé ID otázek a odpovědí je možné získat pomocí samostatného API dotazu uvedeného v sekci Dotazníky.
  • Předvyplněné odpovědi není možné dál v dotazníku upravovat.
  • Pokud některá odpověď předvyplněna není, respondent ji může zvolit.
PUThttps://api.onquanda.com/api/newsletter/campaign/{transactional_campaign_id}/add-contact/{contact_id}/
URI ParametersTypeRequiredPoznámka
transactional_campaign_idintegertrueID transakčního e-mailu
contact_idintegertrueID kontaktu

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "survey_data": {
 "question_answers": [
 {
 "_comment": "Krátký text",
 "question_id": 58888,
 "answer": "Ahoj"
 },
 {
 "_comment": "Delší text",
 "question_id": 58889,
 "answer": "Dodnes je to druhé nejprodávanější album v historii. Ale vznikalo ve velkých bolestech po smrti zpěváka AC/DC. Ostatní chtěli kapelu rozpustit, nakonec nahráli album, ze kterého temné pocity přímo kapou. Back in Black se navždy zapsalo do uší a srdcí posluchačů."
 },
 {
 "_comment": "Text (více řádků)",
 "question_id": 58890,
 "subquestion_answers": [
 {
 "subquestion_id": 1654,
 "answer": "Kšiltovka"
 },
 {
 "subquestion_id": 1655,
 "answer": "Černé"
 },
 {
 "subquestion_id": 1656,
 "answer": "Zimní"
 }
 ]
 },
 {
 "_comment": "Datum",
 "question_id": 58891,
 "answer": "2025-07-25"
 },
 {
 "_comment": "Datum (více řádků)",
 "question_id": 58892,
 "subquestion_answers": [
 {
 "subquestion_id": 145,
 "answer": "2025-07-01"
 },
 {
 "subquestion_id": 146,
 "answer": "2025-07-02"
 },
 {
 "subquestion_id": 147,
 "answer": "2025-07-03"
 }
 ]
 },
 {
 "_comment": "Číslo",
 "question_id": 58893,
 "answer": "100"
 },
 {
 "_comment": "Číslo (více řádků)",
 "question_id": 58894,
 "subquestion_answers": [
 {
 "subquestion_id": 2015,
 "answer": "101"
 },
 {
 "subquestion_id": 2016,
 "answer": "102"
 },
 {
 "subquestion_id": 2017,
 "answer": "103"
 }
 ]
 },
 {
 "_comment": "Jedna odpověď",
 "question_id": 58895,
 "option_id": 46813
 },
 {
 "_comment": "Více odpovědí",
 "question_id": 58896,
 "option_id": 31734
 },
 {
 "question_id": 58896,
 "option_id": 31736
 },
 {
 "question_id": 58896,
 "option_id": 31738
 },
 {
 "_comment": "Rozbalovací menu",
 "question_id": 58897,
 "option_id": 16164
 },
 {
 "_comment": "Škála spokojenosti",
 "question_id": 58898,
 "subquestion_answers": [
 {
 "subquestion_id": 29,
 "option_id": 69
 }
 ]
 },
 {
 "_comment": "Škála souhlasu",
 "question_id": 58899,
 "subquestion_answers": [
 {
 "subquestion_id": 19,
 "option_id": 31
 }
 ]
 },
 {
 "_comment": "% škála - předvyplněná hodnota 80 %",
 "question_id": 58900,
 "subquestion_answers": [
 {
 "subquestion_id": 15,
 "answer": 80
 }
 ]
 },
 {
 "_comment": "Hvězdičkové hodnocení",
 "question_id": 58901,
 "subquestion_answers": [
 {
 "subquestion_id": 48,
 "option_id": 370
 }
 ]
 },
 {
 "_comment": "Smajlíkové hodnocení",
 "question_id": 58902,
 "subquestion_answers": [
 {
 "subquestion_id": 39,
 "option_id": 143
 }
 ]
 },
 {
 "_comment": "Škála postojů - předvyplněné hodnoty dle řádků jsou -2, 3 a -3",
 "question_id": 58903,
 "subquestion_answers": [
 {
 "subquestion_id": 11,
 "answer": -2
 },
 {
 "subquestion_id": 12,
 "answer": 3
 },
 {
 "subquestion_id": 13,
 "answer": -3
 }
 ]
 },
 {
 "_comment": "NPS - Net promoter Score",
 "question_id": 58904,
 "subquestion_answers": [
 {
 "subquestion_id": 112,
 "option_id": 1227
 }
 ]
 },
 {
 "_comment": "Tabulka (jedna odpověď)",
 "question_id": 58905,
 "subquestion_answers": [
 {
 "subquestion_id": 5320,
 "option_id": 4005
 },
 {
 "subquestion_id": 5321,
 "option_id": 4007
 }
 ]
 },
 {
 "_comment": "Tabulka (více odpověďí)",
 "question_id": 58906,
 "subquestion_answers": [
 {
 "subquestion_id": 5434,
 "option_id": 3938
 },
 {
 "subquestion_id": 5435,
 "option_id": 3937
 }
 ]
 },
 {
 "_comment": "Vytvořit kontakt",
 "question_id": 58907,
 "subquestion_answers": [
 {
 "subquestion_id": 52,
 "answer": "Jan"
 },
 {
 "subquestion_id": 53,
 "answer": "Spáčil"
 },
 {
 "subquestion_id": 54,
 "answer": "spacil+1@quanda.com"
 }
 ]
 }

 ]
 }
}

Poznámka

Body může kromě předvyplněných odpovědí obsahovat i položky "send_anyway" a "attachments".

Odpověď

201 Created Content-Type: application/json

Odpověď v případě neexistujícího ID kampaně nebo ID kontaktu

404 Not Found Content-Type: application/json

{
 "detail": "Nenalezeno."
}

Příjemci e-mailů

Seznam příjemců

Seznam příjemců může být filtrován pomocí níže uvedených parametrů.

GEThttps://api.onquanda.com/api/newsletter/newsletters/{id}/recipients/
URI ParametersTypeRequiredPoznámka
idintegerfalsenewsletters/{id} = ID kampaně
GEThttps://api.onquanda.com/api/newsletter/newsletters/{id}/recipients/?message_id={id}
Query ParametersTypeRequiredPříkladPoznámka
message_idintegerfalsemessage_id=805501ID specifického e-mailu. Například pro transakční e-mail vrátí konkrétního příjemce. Volání bez tohoto parametru vrátí seznam všech příjemců, kterým byl daný transakční e-mail odeslán.

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 126878177,
"email": "info@quanda.cz",
"tracked": true,
"clicked": true,
"unsubscribed": false,
"status": "delivered",
"sent_at": "2020-09-10T10:00:40.983297"
}
]
}

Detail a statistika příjemce

GEThttps://api.onquanda.com/api/newsletter/newsletters/{newsletters_id}/recipients/{recipient_id}/
URI ParametersTypeRequiredPoznámka
newsletters_idintegerfalseID odeslaného e-mailu
recipient_idintegerfalseID příjemce

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "id": 277631513,
 "email": "spacil+4002@quanda.com",
 "tracked": true,
 "opened": true,
 "opened_at": "2024-09-13T13:47:44",
 "last_opened_at": "2024-09-13T13:50:43",
 "opened_at_list": [
 "2024-09-13T13:47:44",
 "2024-09-13T13:47:51",
 "2024-09-13T13:47:51",
 "2024-09-13T13:48:16",
 "2024-09-13T13:48:16",
 "2024-09-13T13:48:12",
 "2024-09-13T13:48:18",
 "2024-09-13T13:48:20",
 "2024-09-13T13:49:57",
 "2024-09-13T13:50:43"
 ],
 "clicked": true,
 "unsubscribed": false,
 "unsubscribed_at": null,
 "status": "delivered",
 "data": null,
 "sent_at": "2024-09-13T13:47:37",
 "link_clicks": [
 {
 "link": {
 "url": "http://www.quanda.cz",
 "social_type": null,
 "position_type": "button",
 "text": "Zjistěte více",
 "title": "Zjistěte více"
 },
 "clicked_at": "2024-09-13T13:47:57"
 }
 ],
 "spam_complained_at": null,
 "bounce_reason": null,
 "not_delivered_at": null,
 "user_agent": "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)"
}

Dotazníky

Seznam dotazníků

GEThttps://api.onquanda.com/api/survey/surveys/

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "count": 5,
 "next": null,
 "previous": null,
 "results": [
 {
 "id": 32505
 },
 {
 "id": 74913
 },
 {
 "id": 6260
 },
 {
 "id": 8852
 },
 {
 "id": 21373
 }
 ]
}

Detail dotazníku

GEThttps://api.onquanda.com/api/survey/surveys/{id}/
URI ParametersTypeRequiredPoznámka
idintegerfalseID dotazníku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "id": 32505,
 "name": "Trendy e-mail marketingu 2017"
}

Seznam respondentů dotazníku

Každý odeslaný a uložený dotazník má přiděleného respondeta. Respondent ID neodpovídá Contact ID. Pro zjištění kontaktu, který odpovídá Respondent ID, je potřeba samostatné API volání. Contact ID u uloženého dotazníku je dostupný pouze v případě, že došlo k úspěšné identifikaci kontaktu, který dotazník vyplnil. K identifikaci kontaktu dochází pouze v případě, pokud tento kontakt vstoupil do dotazníku proklikem z e-mailové pozvánky odeslané z Quandy.

GEThttps://api.onquanda.com/api/survey/surveys/{id}/respondents/
URI ParametersTypeRequiredPoznámka
idintegerfalsesurveys/{id} = ID dotazníku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "count": 5,
 "next": "https://quanda.onquanda.com/api/survey/surveys/32505/respondents/?page=2",
 "previous": null,
 "results": [
 {
 "id": 120073
 },
 {
 "id": 120686
 },
 {
 "id": 120688
 },
 {
 "id": 120689
 },
 {
 "id": 120690
 }
 ]
}

Detail vyplněného dotazníku

Pokud je v dotazníku použita otázka typu Tabulka (jedna odpověď) nebo Tabulka (více odpovědí) je ve výsledném jasonu použit "subtitle", který odpovídá položce "Název řádku pro odpověď" při zadávání otázky.

GEThttps://api.onquanda.com/api/survey/surveys/{survey_id}/respondents/{respondent_id}/
URI ParametersTypeRequiredPoznámka
survey_idintegerfalseID dotazníku
respondent_idintegerfalseID respondenta

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "id": 127681,
 "url_questionnaire": "https://quanda.onquanda.com/survey/respondent/32505/127681/",
 "survey_name": "Trendy e-mail marketingu 2017",
 "answers": [
 {
 "title": "Jak často měníte svou e-mailovou adresu?",
 "answer": "Nikdy",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "U jakého poskytovatele máte registrovaný e-mail, který nejčastěji používáte?",
 "answer": "Používám svůj firemní e-mail",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Jakého e-mailové klienta nejčastěji používáte?",
 "answer": "Outlook",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Používáte synchronizaci e-mailů mezi mobilním telefonem a PC?",
 "answer": "Ano",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Používáte automatické třídění e-mailů v doručené poště?",
 "answer": "Ne",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Na jakém zařízení nejčastěji čtete Vaše e-maily?",
 "subtitle": "v práci / kanceláři",
 "answer": "Stolní počítač",
 "type": 12,
 "is_answered": true
 },
 {
 "title": "Na jakém zařízení nejčastěji čtete Vaše e-maily?",
 "subtitle": "mimo práci / kancelář",
 "answer": "Mobil",
 "type": 12,
 "is_answered": true
 },
 {
 "title": "Očekáváte, že obsah e-mailu, který Vám přijde:",
 "answer": "bude kompletní a nebude již potřeba navštívit web pro zobrazení všech informací",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Jaký preferujete formát, ve kterém dostáváte e-maily?",
 "answer": "HTML (e-mail s obrázky, odkazy atd.)",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Očekáváte, že e-maily, které Vám přijdou, budou obsahovat:",
 "answer": "Kombinaci obrázků a textu, kde text převažuje",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Očekáváte, že obsah e-mailu, který Vám přijde, se po otevření:",
 "answer": "zobrazí tak, že vidíte hlavní informace na obrazovce a nevadí Vám rolovat, pokud je e-mail delší",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Svou e-mailovou schránku kontrolujete o víkendu",
 "answer": "vždy (i v sobotu i v neděli)",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Na co se podíváte jako první, když se rozhodujete, zda otevřete e-mail, který jste dostali?",
 "answer": "Jméno (adresa) odesílatele",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Cítili jste se někdy zmanipulováni k otevření prodejního e-mailu jeho předmětem?",
 "answer": "Ano",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Navštívili jste někdy stránky firmy, jako výsledek přijatého e-mailu, který jste ale neotevřeli?",
 "answer": "Ano",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Nakoupili jste někdy od firmy, jako výsledek přijatého e-mailu, který jste ale neotevřeli?",
 "answer": "Ne",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Kolik registrací k pravidelnému odběru newsletterů, tipů apod. aktuálně máte?",
 "answer": "6 - 10",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Když dostanete nevyžádaný obchodní e-mail poprvé, jak zareagujete?",
 "answer": "Vymažu ho",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Když dostanete nevyžádaný obchodní e-mail od stejného odesílatele opakovaně, jak zareagujete?",
 "answer": "Odhlásím se z odběru",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Když dostanete nevyžádaný obchodní e-mail, který neobsahuje odkaz (link) pro odhlášení, jak zareagujete?",
 "answer": "Označím jako spam",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Používáte při registracích a odběru novinek svůj běžný e-mail nebo máte zřízený speciální e-mail pro tyto účely?",
 "answer": "Používám svou běžnou (hlavní) e-mailovou adresu",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Jak často si kupujete produkty nebo služby na základě e-mailů, které dostanete?",
 "answer": "Dvakrát ročně",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Kolik obchodních e-mailů, které Vám přijdou, si skutečně přečtete?",
 "answer": "Většinu",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Vaše zaměstnání",
 "answer": "Podnikatel / živnostník",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Jste",
 "answer": "Žena",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Váš věk",
 "answer": "51 - 65 let",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Vaše nejvyšší dosažené vzdělání",
 "answer": "Vysokoškolské",
 "type": 9,
 "is_answered": true
 },
 {
 "title": "Chci poslat celkové výsledky tohoto průzkumu na e-mailovou adresu",
 "answer": "langerova@audica.cz",
 "type": 14,
 "is_answered": true
 }
 ]
}

Struktura dotazníku

GEThttps://api.onquanda.com/api/survey/surveys/{survey_id}/questions/
URI ParametersTypeRequiredPoznámka
survey_idintegertrueID dotazníku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

[
 {
 "id": 58888,
 "type": 1,
 "text": "Krátký text",
 "questions": [],
 "question_answer_options": [],
 "question_metadata": {}
 },
 {
 "id": 58889,
 "type": 2,
 "text": "Delší text",
 "questions": [],
 "question_answer_options": [],
 "question_metadata": {}
 },
 {
 "id": 58890,
 "type": 3,
 "text": "Text (více řádků)",
 "questions": [
 {
 "id": 1654,
 "text": "Čepice"
 },
 {
 "id": 1655,
 "text": "Kalhoty"
 },
 {
 "id": 1656,
 "text": "Bunda"
 }
 ],
 "question_answer_options": [],
 "question_metadata": {}
 },
 {
 "id": 58891,
 "type": 6,
 "text": "Datum",
 "questions": [],
 "question_answer_options": [],
 "question_metadata": {}
 },
 {
 "id": 58892,
 "type": 7,
 "text": "Datum (více řádků)",
 "questions": [
 {
 "id": 145,
 "text": "První termín"
 },
 {
 "id": 146,
 "text": "Druhý termín"
 },
 {
 "id": 147,
 "text": "Třetí termín"
 }
 ],
 "question_answer_options": [],
 "question_metadata": {
 "input_type": "only_date"
 }
 },
 {
 "id": 58893,
 "type": 4,
 "text": "Číslo",
 "questions": [],
 "question_answer_options": [],
 "question_metadata": {
 "max": 100.0,
 "min": 10.0,
 "decimal_places": 1
 }
 },
 {
 "id": 58894,
 "type": 5,
 "text": "Číslo (více řádků)",
 "questions": [
 {
 "id": 2015,
 "text": "Hmotnost 1"
 },
 {
 "id": 2016,
 "text": "Hmotnost 2"
 },
 {
 "id": 2017,
 "text": "Hmotnost 3"
 }
 ],
 "question_answer_options": [],
 "question_metadata": {
 "min": 10,
 "max": 100,
 "sum": 100,
 "sum_is_checked": true
 }
 },
 {
 "id": 58895,
 "type": 9,
 "text": "Jedna odpověď",
 "questions": [],
 "question_answer_options": [
 {
 "id": 46812,
 "text": "modrá"
 },
 {
 "id": 46813,
 "text": "zelená"
 },
 {
 "id": 46814,
 "text": "červená"
 },
 {
 "id": 46815,
 "text": "žlutá"
 },
 {
 "id": 46816,
 "text": "fialová"
 },
 {
 "id": 46817,
 "text": "šedá"
 }
 ],
 "question_metadata": {}
 },
 {
 "id": 58896,
 "type": 10,
 "text": "Více odpovědí",
 "questions": [],
 "question_answer_options": [
 {
 "id": 31734,
 "text": "Banán"
 },
 {
 "id": 31735,
 "text": "Jablko"
 },
 {
 "id": 31736,
 "text": "Hruška"
 },
 {
 "id": 31737,
 "text": "Broskev"
 },
 {
 "id": 31738,
 "text": "Meruňka"
 }
 ],
 "question_metadata": {
 "max_checked_options": null
 }
 },
 {
 "id": 58897,
 "type": 8,
 "text": "Rozbalovací menu",
 "questions": [],
 "question_answer_options": [
 {
 "id": 16162,
 "text": "Škoda"
 },
 {
 "id": 16163,
 "text": "BMW"
 },
 {
 "id": 16164,
 "text": "Mercedes"
 },
 {
 "id": 16165,
 "text": "Peugeot"
 },
 {
 "id": 16166,
 "text": "Opel"
 }
 ],
 "question_metadata": {}
 },
 {
 "id": 58898,
 "type": 12,
 "text": "Škála spokojenosti",
 "questions": [
 {
 "id": 29,
 "text": "Rychlost"
 },
 {
 "id": 43,
 "text": "Komunikace"
 },
 {
 "id": 44,
 "text": "Kompetentnost"
 }
 ],
 "question_answer_options": [
 {
 "id": 66,
 "text": "Velmi nespokojen"
 },
 {
 "id": 67,
 "text": "Spíše nespokojen"
 },
 {
 "id": 68,
 "text": "Něco mezi"
 },
 {
 "id": 69,
 "text": "Spíše spokojen"
 },
 {
 "id": 70,
 "text": "Velmi spokojen"
 }
 ],
 "question_metadata": {}
 },
 {
 "id": 58899,
 "type": 12,
 "text": "Škála souhlasu?",
 "questions": [
 {
 "id": 19,
 "text": "Vaše hodnocení"
 }
 ],
 "question_answer_options": [
 {
 "id": 31,
 "text": "Rozhodně nesouhlasím"
 },
 {
 "id": 32,
 "text": "Spíše nesouhlasím"
 },
 {
 "id": 33,
 "text": "Něco mezi"
 },
 {
 "id": 34,
 "text": "Spíše souhlasím"
 },
 {
 "id": 35,
 "text": "Rozhodně souhlasím"
 }
 ],
 "question_metadata": {}
 },
 {
 "id": 58900,
 "type": 11,
 "text": "% škála",
 "questions": [
 {
 "id": 15,
 "text": "Vaše hodnocení"
 }
 ],
 "question_answer_options": [],
 "question_metadata": {
 "range_start": 0,
 "range_end": 100,
 "range_step": 10
 }
 },
 {
 "id": 58901,
 "type": 11,
 "text": "Hvězdičkové hodnocení",
 "questions": [
 {
 "id": 48,
 "text": "Rychlost"
 },
 {
 "id": 80,
 "text": "Komunikace"
 }
 ],
 "question_answer_options": [
 {
 "id": 367,
 "text": "Bez hodnocení"
 },
 {
 "id": 368,
 "text": "1"
 },
 {
 "id": 369,
 "text": "2"
 },
 {
 "id": 370,
 "text": "3"
 },
 {
 "id": 371,
 "text": "4"
 },
 {
 "id": 372,
 "text": "5"
 }
 ],
 "question_metadata": {}
 },
 {
 "id": 58902,
 "type": 11,
 "text": "Smajlíkové hodnocení",
 "questions": [
 {
 "id": 39,
 "text": "Design"
 },
 {
 "id": 80,
 "text": "Kvalita"
 }
 ],
 "question_answer_options": [
 {
 "id": 139,
 "text": "Bez hodnocení"
 },
 {
 "id": 140,
 "text": "1"
 },
 {
 "id": 141,
 "text": "2"
 },
 {
 "id": 142,
 "text": "3"
 },
 {
 "id": 143,
 "text": "4"
 },
 {
 "id": 144,
 "text": "5"
 }
 ],
 "question_metadata": {}
 },
 {
 "id": 58903,
 "type": 11,
 "text": "Škála postojů",
 "questions": [
 {
 "id": 11,
 "text": "Pomalý - Rychlý"
 },
 {
 "id": 12,
 "text": "Špinavý - Čistý"
 },
 {
 "id": 13,
 "text": "Malý - Velký"
 }
 ],
 "question_answer_options": [],
 "question_metadata": {
 "range_start": -3,
 "range_end": 3,
 "range_step": 1
 }
 },
 {
 "id": 58904,
 "type": 16,
 "text": "NPS skóre",
 "questions": [
 {
 "id": 112,
 "text": "odpoved"
 }
 ],
 "question_answer_options": [
 {
 "id": 1222,
 "text": "0"
 },
 {
 "id": 1223,
 "text": "1"
 },
 {
 "id": 1224,
 "text": "2"
 },
 {
 "id": 1225,
 "text": "3"
 },
 {
 "id": 1226,
 "text": "4"
 },
 {
 "id": 1227,
 "text": "5"
 },
 {
 "id": 1228,
 "text": "6"
 },
 {
 "id": 1229,
 "text": "7"
 },
 {
 "id": 1230,
 "text": "8"
 },
 {
 "id": 1231,
 "text": "9"
 },
 {
 "id": 1232,
 "text": "10"
 }
 ],
 "question_metadata": {}
 },
 {
 "id": 58905,
 "type": 12,
 "text": "Tabulka (jedna odpověď)",
 "questions": [
 {
 "id": 5320,
 "text": "Paprika"
 },
 {
 "id": 5321,
 "text": "Mrkev"
 }
 ],
 "question_answer_options": [
 {
 "id": 4005,
 "text": "Ano"
 },
 {
 "id": 4006,
 "text": "Nevim"
 },
 {
 "id": 4007,
 "text": "Ne"
 }
 ],
 "question_metadata": {}
 },
 {
 "id": 58906,
 "type": 13,
 "text": "Tabulka (více odpovědí)",
 "questions": [
 {
 "id": 5434,
 "text": "Auto"
 },
 {
 "id": 5435,
 "text": "Autobus"
 }
 ],
 "question_answer_options": [
 {
 "id": 3937,
 "text": "Ano"
 },
 {
 "id": 3938,
 "text": "Nevím"
 },
 {
 "id": 3939,
 "text": "Ne"
 }
 ],
 "question_metadata": {}
 },
 {
 "id": 58907,
 "type": 7,
 "text": "Vytvořit kontakt",
 "questions": [
 {
 "id": 52,
 "text": "Jméno"
 },
 {
 "id": 53,
 "text": "Příjmení"
 },
 {
 "id": 54,
 "text": "E-mail"
 },
 {
 "id": 55,
 "text": "Pohlaví"
 }
 ],
 "question_answer_options": [],
 "question_metadata": {}
 }
]

Uživatelé

Seznam uživatelů

GEThttps://api.onquanda.com/api/customer/users/

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "count": 3,
 "next": null,
 "previous": null,
 "results": [
 {
 "id": 2847,
 "email": "uzivatel_1@firma.cz",
 "verified_email": true
 },
 {
 "id": 6197,
 "email": "uzivatel_2@firma.cz",
 "verified_email": false
 },
 {
 "id": 6121,
 "email": "uzivatel_3@firma.cz",
 "verified_email": false
 }
 ]
}

Webhooky

Webhook je nástroj pro zasílání notifikací o změnách v Quandě do externího systému skrz protokol HTTP. Notifikace jsou odesílány jako požadavky typu POST na zvolené URL adresy.

Každý webhook má nastaveny vlastnosti: url, event a případně filters. Pokud v Quandě nastane událost, vyhodnotí se nad vstupním objektem všechny nastavené filtry z filters. V případě, že jsou všechny podmínky filtrů splněny, dojde k odeslání webhooku na zadanou URL.

Odpověď

Odpověď musí být kód HTTP 200 OK.

V opačném případě se volání maximálně 5x zopakuje postupně:

  • 1. pokus: 30 s
  • 2. pokus: 300 s (5 minut)
  • 3. pokus: 3000 s (50 minut)
  • 4. pokus: 30000 s (8:20 hodin)
  • 5. pokus: 300000 s (3,5 dne)

Seznam webhooků

GEThttps://api.onquanda.com/api/webhook/webhooks/

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

200 OK Content-Type: application/json

{
 "count": 1,
 "next": null,
 "previous": null,
 "results": [
 {
 "id": 26213,
 "url": "URL pro zasílání webhooku",
 "event": "Typ události",
 "filters": {}
 }
 ]
}

Odeslání e-mailu

Nový webhook

POSThttps://api.onquanda.com/api/webhook/webhooks/

Událost newsletter_newsletter_sent nastává po úspěšném odeslání všech e-mailů z odesílky na e-mailový server. Pro tuto událost lze specifikovat dva typy filtrů:

FiltrTypPříkladPopis
contacts.tag.idinteger{ "contacts.tag.id": integer, }Filtruje události pouze na ty, kde existuje vazba objektu alespoň na jeden kontakt se štítkem s id specifikovaným hodnotou klíče.
contacts.tag.namestring{ "contacts.tag.name": string, }Filtruje události pouze na ty, kde existuje vazba objektu alespoň na jeden kontakt se štítkem s názvem specifikovaným hodnotou klíče.

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "url": "URL adresa pro zasílání webhooku",
 "event": newsletter_newsletter_sent,
 "filters": null
}

Schema

{
 "url": {
 "type": "url",
 "required": true,
 "read_only": false,
 "label": "Vložte platnou URL",
 "max_length": 1024
 },
 "event": {
 "type": "choice",
 "required": true,
 "read_only": false,
 "label": "Zvolte událost",
 "choices": [
 {
 "value": "newsletter_newsletter_sent",
 "display_name": "Odeslání e-mailu"
 },
 {
 "value": "newsletter_recipient_updated",
 "display_name": "Změna stavu příjemce"
 },
 {
 "value": "recipient_clicked",
 "display_name": "Klik na odkaz v e-mailu"
 },
 {
 "value": "recipient_opened",
 "display_name": "Otevření e-mailu"
 },
 {
 "value": "recipient_unsubscribe",
 "display_name": "Odhlášení"
 },
 {
 "value": "questionnaire_sent",
 "display_name": "Uložení vyplněného dotazníku"
 }
 ]
 },
 "filters": {
 "type": "field",
 "required": false,
 "read_only": false,
 "label": "Filters"
 }
}

Odpověď

201 Created Content-Type: application/json

{
 "id": 26428,
 "created": "2023-04-12T14:35:34.320552",
 "modified": "2023-04-12T14:35:34.320566",
 "url": "URL pro zasílání webhooku",
 "event": "newsletter_newsletter_sent",
 "filters": {}
}

Struktura zaslaná na url webhooku po odeslání e-mailu

Příklad

{
 "newsletter": {
 "id": 61471
 },
 "webhook": {
 "occured": "2023-04-11T20:23:10.803103",
 "id": 15628,
 "event": "newsletter_newsletter_sent"
 },
 "campaign": {
 "campaign_type": 70
 },
 "message": {
 "id": 805501
 }
}

"newsletter id" je ID e-mailové kampaně. Ta v sobě může zahrnovat více odesílek pod samostatnými "message id". Například "newsletter id" pro transakční e-mail je vždy stejné. Avšak každý jednotlivý odeslaný e-mail má své vlastní "message id". Pod jedním "newsletter id" tak může být i několik desítek nebo stovek "message id". Jednoduchá e-mailová kampaň naopak obsahuje pro jedno "newsletter id" pouze jedno "message id".

Detail webhooku

GEThttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

201 Created Content-Type: application/json

{
 "id": 26428,
 "created": "2023-04-12T14:35:34.320552",
 "modified": "2023-04-12T14:35:34.320566",
 "url": "URL pro zasílání webhooku",
 "event": "newsletter_newsletter_sent",
 "filters": {}
}

Upravení webhooku

PUThttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "url": "URL pro zasílání webhooku",
 "event": "newsletter_newsletter_sent",
 "filters": {
 "contacts.tag.name": "VIP"
 }
}

Odpověď

200 OK Content-Type: application/json

{
 "id": 26429,
 "created": "2023-04-12T16:42:42.657397",
 "modified": "2023-04-12T16:46:20.523741",
 "url": "URL pro zasílání webhooku",
 "event": "newsletter_newsletter_sent",
 "filters": {
 "contacts.tag.name": "VIP"
 }
}

Smazání webhooku

DELETEhttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

204 No Content Content-Type: application/json

Změna stavu příjemce

Nový webhook

POSThttps://api.onquanda.com/api/webhook/webhooks/

Pro událost newsletter_recipient_updated lze specifikovat jeden filtr:

FiltrTypPříkladPopis
campaign.typechoice{ "campaign.type": 70, }Filtruje události pouze na typ e-mailové kampaně dle následujícího číselníku: 10 = Jednoduchá, 20 = Logická, 30 = E-mailový seriál, 40 = Narozeninová, 50 = Výročí a svátky, 60 = A / B testování, 70 = Transakční.

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "url": "URL adresa pro zasílání webhooku",
 "event": newsletter_recipient_updated,
 "filters": null
}

Schema

{
 "url": {
 "type": "url",
 "required": true,
 "read_only": false,
 "label": "Vložte platnou URL",
 "max_length": 1024
 },
 "event": {
 "type": "choice",
 "required": true,
 "read_only": false,
 "label": "Zvolte událost",
 "choices": [
 {
 "value": "newsletter_newsletter_sent",
 "display_name": "Odeslání e-mailu"
 },
 {
 "value": "newsletter_recipient_updated",
 "display_name": "Změna stavu příjemce"
 },
 {
 "value": "recipient_clicked",
 "display_name": "Klik na odkaz v e-mailu"
 },
 {
 "value": "recipient_opened",
 "display_name": "Otevření e-mailu"
 },
 {
 "value": "recipient_unsubscribe",
 "display_name": "Odhlášení"
 },
 {
 "value": "questionnaire_sent",
 "display_name": "Uložení vyplněného dotazníku"
 }
 ]
 },
 "filters": {
 "type": "field",
 "required": false,
 "read_only": false,
 "label": "Filters"
 }
}

Odpověď

201 Created Content-Type: application/json

{
 "id": 26428,
 "created": "2023-04-12T14:35:34.320552",
 "modified": "2023-04-12T14:35:34.320566",
 "url": "URL pro zasílání webhooku",
 "event": "newsletter_recipient_updated",
 "filters": {}
}

Struktura zaslaná na url webhooku po změně stavu příjemce

Příklad struktury webhooku po odeslání e-mailu

{
 "newsletter": {
 "id": 61471
 },
 "webhook": {
 "occured": "2023-04-12T17:33:12.666395",
 "id": 15631,
 "event": "newsletter_recipient_updated"
 },
 "recipient": {
 "blacklist_type": null,
 "updated_data": {
 "status": {
 "old_value": 5,
 "new_value": 2
 }
 },
 "id": 160103722
 }
}

Hodnoty pro pole status jsou:

1 = e-mail nebyl odeslán (čeká ve frontě)
2 = e-mail byl doručen
3 = e-mail nebyl doručen
4 = e-mail byl vyřazen z odesílání z důvodu blacklistace kontaktu
5 = e-mail byl odeslán
6 = e-mail byl vyřazen z odesílání z důvodu nastaveného omezovače (pouze pro ERP automatizace)

Příklad struktury webhooku při zaznamenání otevření

{
 "newsletter": {
 "id": 61471
 },
 "webhook": {
 "occured": "2023-04-12T17:37:04.050773",
 "id": 15631,
 "event": "newsletter_recipient_updated"
 },
 "recipient": {
 "blacklist_type": null,
 "updated_data": {
 "last_tracked_at": {
 "old_value": null,
 "new_value": "2023-04-12T17:37:00"
 },
 "tracked_count": {
 "old_value": 0,
 "new_value": 1
 },
 "tracked_at": {
 "old_value": null,
 "new_value": "2023-04-12T17:37:00"
 },
 "tracked": {
 "old_value": false,
 "new_value": true
 },
 "tracked_count_unique": {
 "old_value": 0,
 "new_value": 1
 },
 "tracked_agent": {
 "old_value": null,
 "new_value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0 Thunderbird/102.9.1"
 }
 },
 "id": 160103722
 }
}

Příklad struktury webhooku při opakovaném otevření e-mailu

{
 "newsletter": {
 "id": 61471
 },
 "webhook": {
 "occured": "2023-04-12T20:44:10.381694",
 "id": 15631,
 "event": "newsletter_recipient_updated"
 },
 "recipient": {
 "blacklist_type": null,
 "updated_data": {
 "last_tracked_at": {
 "old_value": "2023-04-12T20:18:03",
 "new_value": "2023-04-12T20:34:02"
 },
 "tracked_count": {
 "old_value": 5,
 "new_value": 6
 }
 },
 "id": 160103722
 }
}

Příklad struktury webhooku při zaznamenání prokliku

{
 "newsletter": {
 "id": 61471
 },
 "webhook": {
 "occured": "2023-04-12T17:38:24.969181",
 "id": 15631,
 "event": "newsletter_recipient_updated"
 },
 "recipient": {
 "blacklist_type": null,
 "updated_data": {
 "clicked_at": {
 "old_value": null,
 "new_value": "2023-04-12T17:38:24.958933"
 },
 "clicked_agent": {
 "old_value": null,
 "new_value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"
 },
 "clicked": {
 "old_value": false,
 "new_value": true
 }
 },
 "id": 160103722
 }
}

Detail webhooku

GEThttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

201 Created Content-Type: application/json

{
 "id": 26428,
 "created": "2023-04-12T14:35:34.320552",
 "modified": "2023-04-12T14:35:34.320566",
 "url": "URL pro zasílání webhooku",
 "event": "newsletter_recipient_updated",
 "filters": {}
}

Upravení webhooku

PUThttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "url": "URL pro zasílání webhooku",
 "event": "newsletter_recipient_updated",
 "filters": {"campaign.type": 70}
}

Odpověď

200 OK Content-Type: application/json

{
 "id": 26429,
 "created": "2023-04-12T16:42:42.657397",
 "modified": "2023-04-12T16:46:20.523741",
 "url": "URL pro zasílání webhooku",
 "event": "newsletter_recipient_updated",
 "filters": {
 "campaign.type": 70
 }
}

Smazání webhooku

DELETEhttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

204 No Content Content-Type: application/json

Klik na odkaz v e-mailu

Nový webhook

POSThttps://api.onquanda.com/api/webhook/webhooks/

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "url": "URL adresa pro zasílání webhooku",
 "event": recipient_clicked,
}

Schema

{
 "url": {
 "type": "url",
 "required": true,
 "read_only": false,
 "label": "Vložte platnou URL",
 "max_length": 1024
 },
 "event": {
 "type": "choice",
 "required": true,
 "read_only": false,
 "label": "Zvolte událost",
 "choices": [
 {
 "value": "newsletter_newsletter_sent",
 "display_name": "Odeslání e-mailu"
 },
 {
 "value": "newsletter_recipient_updated",
 "display_name": "Změna stavu příjemce"
 },
 {
 "value": "recipient_clicked",
 "display_name": "Klik na odkaz v e-mailu"
 },
 {
 "value": "recipient_opened",
 "display_name": "Otevření e-mailu"
 },
 {
 "value": "recipient_unsubscribe",
 "display_name": "Odhlášení"
 },
 {
 "value": "questionnaire_sent",
 "display_name": "Uložení vyplněného dotazníku"
 }
 ]
 },
 "filters": {
 "type": "field",
 "required": false,
 "read_only": false,
 "label": "Filters"
 }
}

Odpověď

201 Created Content-Type: application/json

{
 "id": 26428,
 "created": "2023-04-12T14:35:34.320552",
 "modified": "2023-04-12T14:35:34.320566",
 "url": "URL pro zasílání webhooku",
 "event": "recipient_clicked",
 "filters": {}
}

Struktura zaslaná na url webhooku po kliku na odkaz v e-mailu

Příklad

{
 "newsletter": {
 "id": 61471
 },
 "webhook": {
 "occured": "2023-04-13T11:27:59.071136",
 "id": 15633,
 "event": "recipient_clicked"
 },
 "contact": {
 "id": 5954884
 },
 "link": {
 "id": 1138717,
 "url": "http://www.quanda.cz?utm_source=Quanda&utm_medium=email&utm_campaign=18+zp%C5%AFsob%C5%AF%2C+jak+budovat+datab%C3%A1zi&utm_content=18+zp%C5%AFsob%C5%AF%2C+jak+budovat+vlastn%C3%AD+rozs%C3%A1hlou+datab%C3%A1zi"
 },
 "recipient": {
 "id": 160103855
 },
 "campaign": {
 "id": 43502
 },
 "timestamp": "2023-04-13T11:27:59.049783"
}

Detail webhooku

GEThttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

201 Created Content-Type: application/json

{
 "id": 26428,
 "created": "2023-04-12T14:35:34.320552",
 "modified": "2023-04-12T14:35:34.320566",
 "url": "URL pro zasílání webhooku",
 "event": "recipient_clicked",
 "filters": {}
}

Upravení webhooku

PUThttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "url": "URL pro zasílání webhooku",
 "event": "recipient_clicked",
}

Odpověď

200 OK Content-Type: application/json

{
 "id": 26429,
 "created": "2023-04-12T16:42:42.657397",
 "modified": "2023-04-12T16:46:20.523741",
 "url": "URL pro zasílání webhooku",
 "event": "recipient_clicked",
 "filters": {}
}

Smazání webhooku

DELETEhttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

204 No Content Content-Type: application/json

Otevření e-mailu

Nový webhook

POSThttps://api.onquanda.com/api/webhook/webhooks/

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "url": "URL adresa pro zasílání webhooku",
 "event": recipient_opened,
}

Schema

{
 "url": {
 "type": "url",
 "required": true,
 "read_only": false,
 "label": "Vložte platnou URL",
 "max_length": 1024
 },
 "event": {
 "type": "choice",
 "required": true,
 "read_only": false,
 "label": "Zvolte událost",
 "choices": [
 {
 "value": "newsletter_newsletter_sent",
 "display_name": "Odeslání e-mailu"
 },
 {
 "value": "newsletter_recipient_updated",
 "display_name": "Změna stavu příjemce"
 },
 {
 "value": "recipient_clicked",
 "display_name": "Klik na odkaz v e-mailu"
 },
 {
 "value": "recipient_opened",
 "display_name": "Otevření e-mailu"
 },
 {
 "value": "recipient_unsubscribe",
 "display_name": "Odhlášení"
 },
 {
 "value": "questionnaire_sent",
 "display_name": "Uložení vyplněného dotazníku"
 }
 ]
 },
 "filters": {
 "type": "field",
 "required": false,
 "read_only": false,
 "label": "Filters"
 }
}

Odpověď

201 Created Content-Type: application/json

{
 "id": 26428,
 "created": "2023-04-12T14:35:34.320552",
 "modified": "2023-04-12T14:35:34.320566",
 "url": "URL pro zasílání webhooku",
 "event": "recipient_opened",
 "filters": {}
}

Struktura zaslaná na url webhooku po otevření e-mailu

Příklad

{
 "newsletter": {
 "id": 61471
 },
 "webhook": {
 "occured": "2023-04-13T13:25:05.955656",
 "id": 15634,
 "event": "recipient_opened"
 },
 "contact": {
 "id": 5955025
 },
 "recipient": {
 "id": 160103875
 },
 "campaign": {
 "id": 43502
 },
 "timestamp": "2023-04-13T13:25:02"
}

Detail webhooku

GEThttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

201 Created Content-Type: application/json

{
 "id": 26428,
 "created": "2023-04-12T14:35:34.320552",
 "modified": "2023-04-12T14:35:34.320566",
 "url": "URL pro zasílání webhooku",
 "event": "recipient_opened",
 "filters": {}
}

Upravení webhooku

PUThttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "url": "URL pro zasílání webhooku",
 "event": "recipient_opened",
}

Odpověď

200 OK Content-Type: application/json

{
 "id": 26429,
 "created": "2023-04-12T16:42:42.657397",
 "modified": "2023-04-12T16:46:20.523741",
 "url": "URL pro zasílání webhooku",
 "event": "recipient_opened",
 "filters": {}
}

Smazání webhooku

DELETEhttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

204 No Content Content-Type: application/json

Odhlášení

Nový webhook

POSThttps://api.onquanda.com/api/webhook/webhooks/

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "url": "URL adresa pro zasílání webhooku",
 "event": recipient_unsubscribe,
}

Schema

{
 "url": {
 "type": "url",
 "required": true,
 "read_only": false,
 "label": "Vložte platnou URL",
 "max_length": 1024
 },
 "event": {
 "type": "choice",
 "required": true,
 "read_only": false,
 "label": "Zvolte událost",
 "choices": [
 {
 "value": "newsletter_newsletter_sent",
 "display_name": "Odeslání e-mailu"
 },
 {
 "value": "newsletter_recipient_updated",
 "display_name": "Změna stavu příjemce"
 },
 {
 "value": "recipient_clicked",
 "display_name": "Klik na odkaz v e-mailu"
 },
 {
 "value": "recipient_opened",
 "display_name": "Otevření e-mailu"
 },
 {
 "value": "recipient_unsubscribe",
 "display_name": "Odhlášení"
 },
 {
 "value": "questionnaire_sent",
 "display_name": "Uložení vyplněného dotazníku"
 }
 ]
 },
 "filters": {
 "type": "field",
 "required": false,
 "read_only": false,
 "label": "Filters"
 }
}

Odpověď

201 Created Content-Type: application/json

{
 "id": 26428,
 "created": "2023-04-12T14:35:34.320552",
 "modified": "2023-04-12T14:35:34.320566",
 "url": "URL pro zasílání webhooku",
 "event": "recipient_unsubscribe",
 "filters": {}
}

Struktura zaslaná na url webhooku po odhlášení příjemce

Příklad

{
 "newsletter": {
 "id": 61471
 },
 "webhook": {
 "occured": "2023-04-13T10:27:40.808893",
 "id": 15632,
 "event": "recipient_unsubscribe"
 },
 "contact": {
 "id": 2638657
 },
 "recipient": {
 "id": 160103854
 },
 "campaign": {
 "id": 43502
 },
 "timestamp": "2023-04-13T10:27:40.683674"
}

Detail webhooku

GEThttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

201 Created Content-Type: application/json

{
 "id": 26428,
 "created": "2023-04-12T14:35:34.320552",
 "modified": "2023-04-12T14:35:34.320566",
 "url": "URL pro zasílání webhooku",
 "event": "recipient_unsubscribe",
 "filters": {}
}

Upravení webhooku

PUThttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "url": "URL pro zasílání webhooku",
 "event": "recipient_unsubscribe",
}

Odpověď

200 OK Content-Type: application/json

{
 "id": 26429,
 "created": "2023-04-12T16:42:42.657397",
 "modified": "2023-04-12T16:46:20.523741",
 "url": "URL pro zasílání webhooku",
 "event": "recipient_unsubscribe",
 "filters": {}
}

Smazání webhooku

DELETEhttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

204 No Content Content-Type: application/json

Uložení vyplněného dotazníku

Nový webhook

POSThttps://api.onquanda.com/api/webhook/webhooks/

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "url": "URL adresa pro zasílání webhooku",
 "event": questionnaire_sent,
}

Schema

{
 "url": {
 "type": "url",
 "required": true,
 "read_only": false,
 "label": "Vložte platnou URL",
 "max_length": 1024
 },
 "event": {
 "type": "choice",
 "required": true,
 "read_only": false,
 "label": "Zvolte událost",
 "choices": [
 {
 "value": "newsletter_newsletter_sent",
 "display_name": "Odeslání e-mailu"
 },
 {
 "value": "newsletter_recipient_updated",
 "display_name": "Změna stavu příjemce"
 },
 {
 "value": "recipient_clicked",
 "display_name": "Klik na odkaz v e-mailu"
 },
 {
 "value": "recipient_opened",
 "display_name": "Otevření e-mailu"
 },
 {
 "value": "recipient_unsubscribe",
 "display_name": "Odhlášení"
 },
 {
 "value": "questionnaire_sent",
 "display_name": "Uložení vyplněného dotazníku"
 }
 ]
 },
 "filters": {
 "type": "field",
 "required": false,
 "read_only": false,
 "label": "Filters"
 }
}

Odpověď

201 Created Content-Type: application/json

{
 "id": 26428,
 "created": "2023-04-12T14:35:34.320552",
 "modified": "2023-04-12T14:35:34.320566",
 "url": "URL pro zasílání webhooku",
 "event": "questionnaire_sent",
 "filters": {}
}

Struktura zaslaná na url webhooku při uložení vyplněného dotazníku

Příklad

{
 "webhook": {
 "occured": "2023-04-13T14:21:33.059464",
 "id": 15635,
 "event": "questionnaire_sent"
 },
 "survey": {
 "name": "Spokojenost se supportem",
 "id": 86755
 },
 "respondent": {
 "id": 324179
 },
 "timestamp": "2023-04-13T14:21:32.811107"
}

Detail webhooku

GEThttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

201 Created Content-Type: application/json

{
 "id": 26428,
 "created": "2023-04-12T14:35:34.320552",
 "modified": "2023-04-12T14:35:34.320566",
 "url": "URL pro zasílání webhooku",
 "event": "questionnaire_sent",
 "filters": {}
}

Upravení webhooku

PUThttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Body

{
 "url": "URL pro zasílání webhooku",
 "event": "questionnaire_sent",
}

Odpověď

200 OK Content-Type: application/json

{
 "id": 26429,
 "created": "2023-04-12T16:42:42.657397",
 "modified": "2023-04-12T16:46:20.523741",
 "url": "URL pro zasílání webhooku",
 "event": "questionnaire_sent",
 "filters": {}
}

Smazání webhooku

DELETEhttps://api.onquanda.com/api/webhook/webhooks/{id}/
URI ParametersTypeRequiredRead_onlyNázevPoznámka
idintegerfalsetrueIDID webhooku

Request

Headers

{
 "content-type": "application/json",
 "authorization": "Token 7654gftr43er56ttzhba7634kajrnvd4"
}

Odpověď

204 No Content Content-Type: application/json