Společnost FLET podniká v oblasti správy a investic do nemovitostí. V tomto oboru je firemní web stěžejním akvizičním kanálem: přivádí potenciální investory i majitele nemovitostí, kteří na stránkách procházejí třemi klíčovými formuláři – odesílají obecnou poptávku, žádají o audit portfolia, nebo si modelují výnosy v investiční kalkulačce. V PixelBrothers jsme dostali za úkol propojit jejich webové formuláře s HubSpot CRM tak, aby obchodní tým nemusel trávit čas mechanickou administrativou a žádná poptávka nezůstala bez odezvy.

Výchozí stav: Ztracený čas a zablokované obchodní automatizace

Do nasazení integrace fungoval sběr kontaktů způsobem, který zná většina rostoucích firem: každá odeslaná poptávka z webu dorazila pouze jako notifikační e‑mail do schránky obchodního oddělení. Obchodník musel zprávu otevřít a údaje ručně přepsat do CRM, případně poptávku vyřídil přímo z poštovního klienta – v takovém případě se o ní ale systém vůbec nedozvěděl.

Tento manuální proces přinášel tři zásadní komplikace:

  • Ztráta drahocenného času: Obchodníci trávili hodiny týdně rutinním přepisováním dat namísto aktivního jednání a péče o klienty.
  • Neúplná data v databázi: Co se nestihlo ručně zapsat, to pro CRM jednoduše neexistovalo. Vedení i obchod tak přicházeli o ucelený přehled nad stavem pipeline.
  • Zablokované procesy: Klient má v HubSpotu precizně nastavené obchodní fáze (Investice, Správa) s navazující komunikací, e‑maily a upomínkami pro tým. Poptávka, která zůstala viset v e‑mailové schránce, tyto automatizace logicky nemohla spustit.

Zadání: Automatizace bez kompromisů v čistotě dat

Cílem bylo vytvořit spolehlivý most mezi webovou platformou (postavenou na PHP) a HubSpotem. Projekt stál na čtyřech pevných pilířích:

  • Do CRM patří jen reálné leady: Reakce na pracovní pozice nebo obecné provozní dotazy do prodejního CRM nepatří. Zbytečně by zanášely databázi a zkreslovaly konverzní statistiky.
  • Stoprocentní spolehlivost: Ani při případném výpadku HubSpot API se nesmí ztratit jediná poptávka.
  • Samoobsluha pro tým: Interní tým FLET musí mít možnost spravovat přiřazení i vytvářet nová pole v HubSpotu přímo z administrace webu bez pomoci vývojáře.
  • Bezpečné přechodné období: Než se ověří stoprocentní spolehlivost přenosu, musí běžet paralelně e‑mailové notifikace i zápis do CRM s možností kdykoliv režim přepnout za plného provozu.

Architektura: Asynchronní fronta úloh na pozadí

Při návrhu technického řešení jsme vsadili na asynchronní zpracování postavené na PHP 8.3, vlastní MVC architektuře a oficiálním klientovi HubSpot CRM API v3.

Pokud by formulář odesílal data do HubSpot API přímo v momentě odeslání, návštěvník webu by musel čekat na odezvu externího serveru. Pomalé spojení nebo chvilkový výpadek CRM by navíc znamenaly chybu při odeslání. Místo toho se poptávka na webu okamžitě uloží do databáze a zařadí do fronty úloh. Návštěvník dostane ihned potvrzení a samotný přenos do CRM proběhne na pozadí pomocí plánovače (cronu).

Pokud API zrovna neodpovídá, úloha zůstává bezpečně ve frontě a systém ji zkusí odeslat znovu. Fronta má limit pěti pokusů. Pokud by přenos selhal i po nich, záznam nezmizí – objeví se v administraci webu, kde může administrátor zasáhnout ručně.

Třístupňový filtr: Čistá databáze bez balastu

Aby HubSpot zůstal přehledným nástrojem a nezaplnil se nerelevantními kontakty, navrhli jsme třístupňový vstupní filtr. Každé zamítnutí navíc zapisuje přesný důvod do systémového logu:

  • Interní adresy: Poptávky z vlastní firemní domény (například interní testování formulářů) jsou automaticky odfiltrovány.
  • Klasifikace formuláře: Systém ověřuje, zda je konkrétní formulář nastaven jako zdroj obchodních příležitostí.
  • Typ leadu: Převodník typů leadů funguje nejen jako překladač, ale i jako filtr. Pokud je u daného typu nastavena volba „neposílat“, do HubSpotu se nepošle vůbec nic a zpráva se vyřídí běžnou e‑mailovou cestou.

Práce s daty: Respekt k obchodníkům a záloha v JSON

Z jedné úspěšně zpracované poptávky vznikne v HubSpotu kontakt, lead v odpovídající pipeline a připojená poznámka s celým obsahem formuláře. Při ukládání dat jsme uplatnili dva klíčové principy:

1. Existující kontakty nepřepisujeme: Obchodníci v CRM své kontakty průběžně spravují a vedou si u nich poznámky. Pokud by automatický import bezhlavě přepsal existující profil novými daty z webu, mohl by smazat důležité manuální úpravy. Náš algoritmus proto existující hodnoty nemění a pouze doplňuje prázdná pole.

2. Kompletní formulář v JSON: Všechny odeslané odpovědi se vždy ukládají do vyhrazeného pole jako strukturovaný JSON. I když se formulář na webu v budoucnu rozšíří o novou otázku, pro kterou v CRM zatím nikdo nezaložil dedikované pole, žádná informace se neztratí – obchodník má kompletní kontext ihned k dispozici v poznámce.

Samoobsluha pro tým a automatická oprava schématu

Chtěli jsme, aby byl klient plně soběstačný. V administraci webu má tým k dispozici dynamický katalog načítaný přímo z jejich HubSpot portálu, takže přiřazovat hodnoty lze pouze k těm vlastnostem, které v CRM skutečně existují. A pokud je potřeba nové pole, administrátor jej může založit přímo z prostředí webu bez nutnosti přepínat do HubSpotu.

Systém jsme navíc vybavili automatickou opravou schématu: pokud by HubSpot API přesto odmítlo zápis kvůli chybějícímu poli, skript situaci zachytí, chybějící pole v CRM přes API sám vytvoří a zápis bez prodlení zopakuje.

Řízené přechodné období bez duplicitních zpráv

Přechod z e‑mailového odbavování na CRM systém proběhl hladce díky dvěma nezávislým přepínačům – zvlášť pro interní notifikace obchodu a zvlášť pro potvrzení odesílateli. Oba přepínače lze kdykoliv za provozu zapnout či vypnout.

Technicky šlo o promyšlený mechanismus: rozhodnutí o odeslání do CRM padá až ve frontě na pozadí, zatímco běžné e‑maily z webu odcházejí hned. Odeslání pošty jsme proto pozdrželi a řídíme ho až podle výsledku přenosu do CRM. Pokud by synchronizace selhala i po opakovaných pokusech, e‑mail neodejde automaticky naslepo, ale vyčká na rozhodnutí administrátora, aby nevznikaly nežádoucí duplicity v komunikaci.

Důkladné testování: Více než 60 ověřených scénářů

V PixelBrothers nekončíme u pouhého napsání integračního kódu. Abychom měli jistotu, že celé řešení obstojí v každodenním ostrém provozu, podrobili jsme všechny tři formuláře systematickému testování.

Připravili jsme přes 60 detailních testovacích scénářů pokrývajících různé kombinace uživatelských vstupů, validace, chování cache i okrajové stavy při simulovaných výpadcích sítě. Díky tomu jsme klientovi předali systém, na který se obchodní tým může stoprocentně spolehnout za jakéhokoliv zatížení.

Výsledky integrace v praxi

Společnost FLET má dnes stabilní, spolehlivý a plně automatizovaný systém pro práci se zájemci o nemovitosti:

  • Poptávky ze všech formulářů se bez zpoždění propisují do správných obchodních pipeline v HubSpotu.
  • CRM zůstává přehledné – interní testy a neobchodní dotazy se vyřizují e‑mailem a nezkreslují statistiky.
  • Data obchodníků jsou chráněna před nechtěným přepsáním a kompletní odpovědi jsou bezpečně zálohovány v JSON formátu.
  • Interní tým si mapování i nová pole řídí samostatně přímo z webové administrace bez zásahu programátorů.
  • Obchodní automatizace a navazující sekvence se spouštějí okamžitě po odeslání formuláře.

Plánujete napojení webu na HubSpot nebo jiné CRM?

V PixelBrothers s.r.o. navrhujeme a vyvíjíme weby, e‑shopy i komplexní integrační řešení na míru. Ať už potřebujete spolehlivě propojit webové formuláře s HubSpotem, Salesforce, Pipedrive nebo vlastním ERP systémem, postaráme se o neprůstřelnou architekturu, bezpečnost dat i důkladné otestování každého detailu. Prohlédněte si naše realizace a ozvěte se nám – rádi probereme vaše zadání u dobré kávy.