Marketing Contact w HubSpot to nie bug ani fanaberia - to mechanizm rozliczeniowy, który decyduje, za ile kontaktów płacisz co miesiąc. Ten post tłumaczy logikę billingową, pokazuje jak zautomatyzować oznaczanie marketing contacts przez Segments i workflowy oraz ile realnie można zaoszczędzić na limicie kontaktów, kiedy konfiguracja jest poprawna.
Co to są Marketing Contacts w HubSpot
Marketing Contact to kontakt, do którego HubSpot pozwala Ci wysyłać marketing emaile, targetować reklamy i uruchamiać marketing actions w workflowach. Tylko te kontakty wliczają się do Twojego contact tier i wpływają na cenę subskrypcji Marketing Hub - non-marketing contacts siedzą w bazie za darmo.
Czyli system działa odwrotnie niż większość ludzi zakłada przy pierwszym logowaniu. Domyślne założenie: "kupiłem Marketing Hub, wszystkie kontakty w bazie są marketingowe". Realne działanie: każdy kontakt ma flagę "marketing/non-marketing", a Ty płacisz tylko za te z flagą marketing.
Konsekwencja praktyczna: jeżeli masz 8 000 kontaktów w bazie, ale tylko 2 500 z nich realnie dostaje newslettery, płacisz za tier 2 500 - nie 8 000. Pod warunkiem że pozostałe 5 500 ma flagę non-marketing. Większość portali które audytuję ma to ustawione na odwrót.
Dlaczego HubSpot zrobił to celowo (i co z tego masz)
Decyzja projektowa jest prosta: HubSpot oddziela "kogo masz w CRM" od "do kogo robisz marketing". Kontakty, które trzymasz dla sales, customer service albo jako historyczne dane, nie kosztują nic. Płacisz tylko za aktywną komunikację marketingową.
To inny model niż klasyczne tools typu Mailchimp, gdzie liczy się każdy adres w bazie. W HubSpot możesz trzymać 50 000 kontaktów, a płacić za tier 5 000 - jeżeli tylko 5 000 dostaje emaile.
Z tej decyzji wynikają konkretne tools, które działają tylko na marketing contacts:
- Marketing emails (w tym follow-upy po form submission)
- Contact segment audiences w ads tool
- Marketing actions w workflowach (Send email, Add to ads audience)
Jeżeli wyślesz kampanię do listy 3 000 kontaktów, a tylko 1 200 ma flagę marketing - emaile pójdą do 1 200. Reszta zostanie pominięta bez ostrzeżenia. To miejsce gdzie portale się sypią najczęściej, bo nikt nie sprawdza statusu przed wysyłką.
Kto powinien być marketing contact, a kto nie
Marketing contact: każdy do kogo realnie chcesz wysłać kampanię, newsletter, follow-up po webinarze, retargeting ads. Non-marketing: wszyscy inni - historyczne leady sprzed 2 lat bez interakcji, customer service contacts, vendor contacts, byli pracownicy, kontakty z importu który nigdy nie miał opt-in.
W praktyce u klientów B2B widzę taki rozkład po porządkach:
| Typ kontaktu | Marketing status | Przykład |
|---|---|---|
| Aktywny lead z form submission | Marketing | Pobrał whitepaper, opt-in tak |
| Klient w trakcie onboardingu | Non-marketing | Komunikacja przez Service Hub, nie newsletter |
| Cold lead z importu sprzed 18 miesięcy | Non-marketing | Brak opt-in, brak interakcji |
| Subscriber newslettera | Marketing | Opt-in przez form, otwiera emaile |
| Vendor / partner | Non-marketing | B2B kontakt operacyjny, nie target |
| Były pracownik / kontakt | Non-marketing | Brak business reason do marketingu |
U jednego klienta z produkcji opakowań po takim podziale zeszliśmy z tier 10 000 do tier 5 000. Roczna oszczędność: ~6 800 EUR na Marketing Hub Professional. Sama baza nie zmalała - 4 800 kontaktów po prostu przeszło na non-marketing, bo nigdy nie były targetem kampanii.
Ile to realnie kosztuje przy złej konfiguracji
Marketing Hub jest rozliczany per contact tier. Tiers idą skokowo, a progi i ceny zmieniają się w czasie, więc sprawdzaj je na swojej umowie, nie w cudzym zestawieniu. Przekroczenie tier'a o jeden kontakt = przejście na wyższy tier dopiero przy następnym anniversary, ale to znaczy że przez cały następny rok płacisz więcej.
Standardowy scenariusz, który widzę przy audytach:
- Klient kupuje Marketing Hub Pro z tier 2 000 marketing contacts.
- Integruje z formularzem na stronie + Salesmanago historycznym importem + LinkedIn Lead Gen Forms.
- Każde z tych źródeł domyślnie tworzy kontakty jako marketing (bo tak jest skonfigurowane w integracji).
- Po 6 miesiącach ma 4 500 marketing contacts i upgrade do tier 5 000.
- Z tych 4 500 realnie wysyła newsletter do ~1 800. Reszta to bounced emaile, klienci bez opt-in, duplikaty.
Różnica między tier 2 000 a tier 5 000 to kilka tysięcy EUR rocznie. Cała ta różnica wynika z tego, że nikt nie kontroluje na poziomie integracji, kto wpada jako marketing.
Jak zautomatyzować oznaczanie marketing contacts przez Segments i workflowy
Default approach który polecam: oznaczaj kontakt jako marketing tylko wtedy, kiedy spełnia konkretne kryteria business. Nie wszystkich z formularza. Nie wszystkich z importu. Konkretne kryteria.
Krok 1: Ustaw default status na non-marketing dla źródeł śmieciowych
Ustawienia HubSpot pozwalają zdecydować, jaki default status dostaje kontakt utworzony przez konkretny tool - formularz, chatflow, import, integrację. Default ustawiasz per tool. Dla importów historycznych i integracji z systemami zewnętrznymi default = non-marketing.
Dla integracji z trzecimi appkami jest osobne ustawienie - w Marketing Contacts settings dla każdej integracji wybierasz, czy kontakty mają być automatycznie marketing czy non-marketing. Dla Salesmanago migration albo LinkedIn import: non-marketing.
Krok 2: Zbuduj Segment "kandydaci na marketing contact"
Segments w HubSpot to listy z dynamicznym membershipem. Aktywny segment automatycznie aktualizuje przynależność - rekord wpada gdy spełnia kryteria, wypada gdy przestaje. Segments pozwalają filtrować po właściwościach innych obiektów, page views, form submissions i email interactions.
Przykładowe kryteria dla "kandydat na marketing contact" w B2B:
- Form submission w ciągu ostatnich 90 dni, AND
- Marketing email opt-in = subscribed, AND
- Lifecycle stage = lead OR MQL OR SQL, AND
- Email != bounced
Czyli segment łapie tylko ludzi którzy: dali zgodę, są w aktywnym cyklu sprzedażowym i mają działający email. Nikt inny.
Krok 3: Workflow flipuje marketing status
Workflow z triggerem "kontakt wpadł do segmentu X" odpala action "Set marketing contact status = marketing". Drugi workflow odwrotnie: kontakt wypadł z segmentu - flip na non-marketing. Workflowy na obiekcie contact wymagają Marketing Hub Professional lub Enterprise. Na Starter musisz oznaczać ręcznie albo przez bulk update.
Po wdrożeniu tego u klienta produkcyjnego: marketing contact count spadł z 4 200 do 1 850 w pierwszym tygodniu. Newslettery dalej szły do wszystkich aktywnych leadów, bo żaden aktywny lead nie wypadł. Wypadły tylko duplikaty, historyczne kontakty bez opt-in i bouncery.
Czego ten setup NIE robi (i co musisz zrobić ręcznie)
Automatyzacja przez Segments + workflowy załatwia ~80% przypadków. Pozostałe 20% wymaga decyzji człowieka:
- Klienci po zakupie. Czy customer dalej ma być marketing contact (cross-sell, retencja) czy non-marketing (komunikacja przez Service Hub)? To decyzja per segment biznesu, nie per workflow.
- Sales-owned kontakty bez form submission. SDR dorzucił kontakt z LinkedIn outreachu. Czy on jest marketing? Tylko jeżeli planujesz mu wysłać kampanię. Domyślnie - nie.
- Re-engagement campaigns. Kiedy chcesz spróbować obudzić cold leady, musisz tymczasowo wrzucić ich na marketing - i wyrzucić jeżeli nie zareagują w 30 dni.
Druga rzecz której ten setup nie zrobi: nie odpali Ci kampanii z Twojej domeny. Z domeną w From address nie wyślesz emaila, dopóki nie podłączysz tej domeny przez DKIM w HubSpot. To osobny setup, niezależny od marketing contact logic.
Marketing Contacts to NIE jest to samo co opt-in
Częste zamieszanie u klientów: "oznaczyłem kontakt jako marketing, więc mogę mu wysyłać". Nie. Marketing contact status to flaga billingowa - mówi HubSpotowi "za tego płacę i chcę go targetować". Opt-in to osobna property (Subscription type), która mówi "ten kontakt zgodził się na komunikację".
Żeby wysłać email marketing, kontakt musi mieć OBIE rzeczy: marketing contact = tak, AND subscription status = subscribed. Brak którejkolwiek = email nie idzie. Dlatego workflow z kroku 2 powyżej filtruje po obu kryteriach jednocześnie.