Wprowadzenie
Brosbots oferuje elastyczną architekturę integracji z zewnętrznymi usługami. Integracje konfigurujesz raz na poziomie organizacji, a potem włączasz je w poszczególnych agentach. Katalog w zakładce Integracje to jedna ciągła siatka kafelków. Zawężasz ją wyszukiwarką, filtrem kategorii i filtrem Wszystkie / Połączone / Niepołączone. Na początku siatki stoją narzędzia agenta - przekierowanie rozmowy, zakończenie rozmowy i własne HTTP API - bo potrzebuje ich prawie każdy agent; zob. Narzędzia. Obok katalogu jest zakładka Własne: kreator integracji z systemem, którego nie ma w katalogu. Buduje zapytania do Twojego API w trakcie rozmowy, webhooki ze zdarzeniami i adresy dla formularzy z leadami; zob. Własne integracje i Webhooki.Kategorie integracji
Numery telefonów
Numerami zarządza platforma - kupujesz je i przypisujesz agentom w panelu, w zakładce Numery. Nie potrzebujesz konta u zewnętrznego operatora.Kalendarz i rezerwacje
Rezerwacje w trakcie rozmowy dla biznesów wizytowych (salony, kliniki, restauracje).Kalendarz Google i Outlook
Agent widzi wolne terminy w Twoim kalendarzu i zapisuje w nim wizyty - logujesz się raz, bez kluczy API
Rezerwacje Cal.com
Pozwól rozmówcom umawiać wizyty bezpośrednio w trakcie rozmowy przez Cal.com
Leady i oddzwanianie
Agent może sam zadzwonić do nowego klienta: do osoby, która wypełniła formularz na stronie albo formularz Google Ads, zostawiła numer w reklamie na Facebooku, LinkedInie czy TikToku (szablony Make i Zapier), pojawiła się jako nowy kontakt w HubSpot albo Pipedrive albo nie dodzwoniła się na Twój numer.CRM i automatyzacje
Agent może w trakcie rozmowy lub po niej: zapisywać leady w HubSpot, Pipedrive lub Dakteli, wysyłać SMS-y i e-maile follow-up, powiadamiać na Slacku, wyzwalać Zapiera, uruchamiać workflow n8n albo scenariusz Make (i słyszeć, co odpowiedzą) oraz wysyłać webhooki do dowolnego systemu (własny backend). Potrafi też czytać: lookup w Google Sheets w trakcie rozmowy odpowiada na pytania na podstawie arkusza, który już prowadzisz - patrz Odczyt z arkusza w trakcie rozmowy. Może też sprawdzić coś, czego nikt mu nie wpisał - patrz Szukanie w internecie w trakcie rozmowy. Zamówienia i stany sklepu odczytuje z BaseLinkera - patrz BaseLinker: zamówienia i stany magazynowe - z Shopify, patrz Shopify: zamówienia i dostępność produktów, z WooCommerce, patrz WooCommerce: zamówienia i dostępność produktów - albo wprost z konta Allegro, patrz Allegro: zamówienia i oferty. Powiadomienie na Slacku, e-mail, Zapier i wpis do kalendarza agent potrafi wykonać jeszcze w trakcie rozmowy - patrz Slack, e-mail, Zapier i kalendarz w trakcie rozmowy. Konfigurację znajdziesz w panelu w zakładce Integracje oraz w ustawieniach poszczególnych agentów.SMS po rozmowie
Treść SMS-a piszesz w zakładce Integracje agenta. Pole ma menu Wstaw zmienną - wybierasz z listy tego, co ten konkretny agent zbiera w rozmowie, faktów o samym połączeniu ({{caller_number}}, {{call_date}},
{{call_time}}, {{call_duration}}, {{call_disposition}}, {{agent_name}})
i tego, co było znane przed rozmową - więc żadnej nazwy nie trzeba pamiętać.
Pod polem
widzisz, na ile płatnych SMS-ów rozbija się wiadomość, a gdy wyjdzie z jednej -
ostrzeżenie, że operator policzy ją tyle razy. Jeden SMS to 160 znaków, ale
już jeden polski ogonek skraca go do 70, o czym łatwo się przekonać dopiero na
fakturze. Licznik mierzy sam szablon; po podstawieniu zmiennych wiadomość
będzie dłuższa.
Limit 10 SMS na godzinę z numeru plfon
Operator plfon przyjmuje z jednego numeru 10 SMS na godzinę. Kolejne nie przepadają: platforma sama pilnuje limitu i odkłada nadmiar do kolejki, a SMS wychodzi, gdy numer znów może wysyłać (najpóźniej po około godzinie). W zakładce SMS taka wiadomość ma znacznik W kolejce z godziną wysyłki, na ekranie rozmowy status „w kolejce”. Raz na godzinę na numer dostajesz powiadomienie (dzwonek i e-mail, według Twoich ustawień), że SMS-y czekają. Opłata za SMS jest pobierana w chwili wysyłki, nie dodania do kolejki. Jeśli w międzyczasie odbiorca odpiszeSTOP albo trafi na
listę Nie dzwonić, SMS z kolejki
nie wychodzi i dostaje status „niewysłany”.
plfon nie wysyła potwierdzeń doręczenia, więc ostatni status SMS-a z numeru
plfon to wysłany: operator go przyjął. Czy telefon odbiorcy go dostał,
nie wiadomo. SMS-y z numerów Telnyx dostają status doręczony albo
niedoręczony od operatora.
SMS na stały numer (alert)
Drugi kierunek: wiadomość do Ciebie, nie do rozmówcy. W tej samej sekcji włączasz SMS na stały numer, podajesz numer (kilka oddziel przecinkiem) i piszesz treść alertu - np.Połączenie {{call_time}} od {{caller_number}}, wynik: {{call_disposition}}. Wybierasz też, kiedy alert ma iść: przy każdej
próbie, tylko po odebranych albo tylko po nieodebranych połączeniach.
Tylko w alercie działa {{call_summary_short}} - streszczenie przycięte do 140
znaków. Alert idzie z numeru agenta i jest rozliczany jak każdy inny SMS, więc
przy kilku odbiorcach płacisz za każdą wiadomość osobno.
Przycisk Zaproponuj treść czyta prompt systemowy agenta i proponuje kilka
gotowych wiadomości na różne cele rozmowy - potwierdzenie ustaleń,
podsumowanie z następnym krokiem, próbę kontaktu po nieodebranym połączeniu.
Każda propozycja mieści się w jednym SMS-ie - te dłuższe są odrzucane, zanim
je zobaczysz.
Propozycja wchodzi do pola dopiero, gdy ją wybierzesz, i nadal ją edytujesz.
Propozycje używają wyłącznie zmiennych, które naprawdę się wypełnią.
Google Sheets i kalendarze (Google, Outlook, Cal.com) działają już na
planie Free - agent zapisuje każdą rozmowę do Twojego arkusza i umawia
wizyty bez płacenia za nic. E-mail, Zapier, n8n, Make i webhooki zaczynają się
od planu Start, Slack i WhatsApp od Pro. Integracje CRM - HubSpot,
Pipedrive i Daktela - od planu Business.
Szukanie w integracjach
Strona Integracje ma wyszukiwarkę (obok zakładek kategorii) i filtr Wszystkie / Połączone / Niepołączone. Wyszukiwarka dopasowuje nazwę dostawcy, opis i nazwę kategorii, więc „kalendarz” albo „arkusz” znajdzie właściwy kafelek bez znajomości marki. Przy aktywnym wyszukiwaniu nagłówki kategorii znikają, a wyniki układają się jednym gridem. Ta sama para - wyszukiwarka i filtr Wszystkie / Włączone / Wyłączone - jest w zakładce Integracje agenta, nad kartami akcji. Karty wyłączone stoją po dwie w wierszu; włączona rozwija się na całą szerokość, bo tam pojawiają się jej ustawienia.Zapis sprawdza połączenie
Przycisk Zapisz połączenie najpierw sprawdza podane dane u dostawcy, a dopiero potem cokolwiek zapisuje. Jeśli sprawdzenie się nie powiedzie, nic nie zostaje zapisane, a pod formularzem zobaczysz konkretny powód - na przykład ucięty klucz prywatny albo arkusz nieudostępniony kontu serwisowemu. Najczęstszy błąd przy Google Sheets to skopiowanie klucza prywatnego z pliku JSON. Platforma sama radzi sobie ze znakami\n, cudzysłowami i przecinkiem
na końcu, a nawet z wklejeniem całego pliku JSON w pole klucza - ale klucz
ucięty w połowie zostanie odrzucony przy zapisie, a nie dopiero przy pierwszej
rozmowie.
Jeśli wiesz, że sprawdzenie jeszcze nie może przejść (np. arkusz udostępnisz
później), użyj przycisku Zapisz mimo to.
Zapisz mimo to nie przepuści klucza konta serwisowego Google, którego w
ogóle nie da się odczytać (uszkodzony, ucięty, to nie jest klucz prywatny):
połączenie nie zostanie zapisane, a formularz powie, co jest nie tak z
kluczem. Taki klucz nigdy nie dostanie tokenu, więc jego zapis przeniósłby
tylko błąd na każdą rozmowę. Zmiana nazwy istniejącego połączenia albo jego
domyślnej zakładki nie sprawdza klucza ponownie.
Co sprawdza która integracja
Slack, Zapier, n8n, Make i webhooki nie mają odczytu, więc jedynym sposobem sprawdzenia
jest wysłanie wiadomości. Przy pierwszym zapisie i po każdej zmianie adresu
zobaczysz na kanale wiadomość testową; sama zmiana nazwy połączenia niczego
nie wysyła.
Podłączenie HubSpota
HubSpot wycofał stare klucze API, więc połączenie korzysta z tokenu prywatnej aplikacji. Utwórz ją w HubSpocie w Settings > Integrations > Private Apps, a w zakładce Scopes zaznacz wszystkie trzy uprawnienia:
Zapisz aplikację, skopiuj jej token dostępu (zaczyna się od
pat-) i wklej go
w połączeniu.
Zapisz połączenie odczytuje uprawnienia tokenu z HubSpota i wypisuje te,
których brakuje - token z samym odczytem kontaktów zostanie odrzucony już tutaj,
a nie dopiero po pierwszej prawdziwej rozmowie. Późniejsze dodanie uprawnienia
nie wymaga nowego tokenu - zaznacz je w HubSpocie, zapisz aplikację i kliknij
Testuj połączenie.
Mapowanie pól po rozmowie
CRM i Google Sheets zapisują dane po zakończonej rozmowie według mapowań, które ustawiasz w konfiguracji agenta, w zakładce Integracje. Każde mapowanie to trzy elementy:
Nie musisz przepisywać nazw z pamięci - kliknij strzałkę w polu Źródło,
a zobaczysz listę zmiennych dostępnych dla wybranego kontekstu (dla
gathered razem z opisem, co agent ma ustalić). Listę zbieranych danych
znajdziesz i edytujesz w zakładce Zmienne - zob.
Zmienne szablonowe.
Żadnej z tych nazw nie trzeba pamiętać. Strzałka w polu Źródło pokazuje
zmienne dostępne w wybranym kontekście, a w polu Do którego pola CRM -
prawdziwe pola kontaktu z Twojego HubSpota, Pipedrive lub Dakteli, razem z ich etykietami
i polami własnymi. Przycisk Dopasuj pola z CRM wypełnia za jednym razem
wszystko, co da się rozpoznać po nazwie albo etykiecie. Nazwa pola pomylona o
jeden znak jest przyjmowana przez formularz i po cichu odrzucana przez CRM po
rozmowie - dlatego warto wybierać z listy.
Nowy kontakt czy aktualizacja istniejącego
Zapis do HubSpota nigdy nie tworzy drugiego kontaktu dla kogoś, kto już jest w CRM. Zanim cokolwiek powstanie, platforma szuka kontaktu w tej kolejności:- Numer telefonu - najpierw taki, jaki przyszedł z rozmowy, potem w postaci
E.164 (
+48537666648) i w samych cyfrach, więc numer wpisany w HubSpocie ze spacjami czy myślnikami też zostanie znaleziony. Sprawdzane są polaphone,mobilephoneorazhs_calculated_phone_number, czyli znormalizowana kopia HubSpota. - Adres e-mail - dopiero gdy numer nikogo nie znalazł, albo gdy rozmowa nie ma numeru dzwoniącego (widget na stronie).
Dopasowanie wymaga uprawnienia
crm.objects.contacts.read. Token bez niego
nadal zapisuje, ale nie potrafi rozpoznać istniejącego kontaktu i za każdym
razem tworzy nowy.Rozmowa na osi czasu kontaktu
Sam zapis właściwości mówi, co się zmieniło, ale nie mówi, o czym była rozmowa. Dlatego po zapisie kontaktu platforma dokłada mu aktywność typu rozmowa - tę samą, którą HubSpot pokazuje w Recent activities na karcie kontaktu:- podsumowanie rozmowy,
- kolejne kroki z listy zadań,
- wynik, nastawienie, tematy i nazwa agenta,
- link do nagrania,
- czas trwania i kierunek połączenia, w polach, które HubSpot sam wyświetla.
Kiedy zapis się odpala
Każda karta zapisu po rozmowie ma dwa filtry:- Kiedy wysyłać dane - Po każdej próbie połączenia (także nieodebranej) albo Tylko gdy rozmowa się odbyła. Nieodebrane i zajęte zdarzają się tylko w kampaniach wychodzących: przy połączeniach przychodzących obie opcje znaczą to samo. W kampanii z ponowieniami pierwsza opcja zapisze kilka wpisów dla tego samego numeru.
- Tylko przy wybranym wyniku rozmowy - lista pokazuje wyniki, które ten agent już zapisał w swoich rozmowach (np. „umówiono wizytę”, „brak zainteresowania”). To nie są narzędzia ani kroki scenariusza. Wynik, który jeszcze nie wystąpił, możesz dopisać ręcznie.
Dane z podsumowania rozmowy (kontekst call)
To, co widzisz w historii połączeń - podsumowanie, zadania do wykonania,
intencje, nastawienie - możesz zapisywać do arkusza albo do CRM tak samo jak
zwykłe pola. Wybierz kontekst call, a lista podpowie dostępne pozycje:
ID rozmowy znajdziesz w aplikacji w kolumnie ID historii rozmów oraz
w nagłówku samej rozmowy, gdzie kliknięcie kopiuje je do schowka.
Podsumowanie i analiza powstają w tle już po zakończeniu rozmowy. Gdy któreś
mapowanie ich używa, platforma czeka na wynik przed zapisem do arkusza, więc
kolumny nie przychodzą puste. Jeśli żadne mapowanie ich nie używa, analiza nie
jest wymuszana i nic Cię to nie kosztuje.
Google Sheets
Po wskazaniu połączenia platforma odczytuje sam arkusz, a formularz mapowań staje się tym arkuszem: jedna linia na każdą prawdziwą kolumnę, a przy niej jedna decyzja - co ma tam trafić albo nic. Nie ma nazwy kolumny do wpisania, więc nie ma czego pomylić. Dodasz kolumnę w arkuszu - Odśwież kolumny wciągnie ją tutaj; Dopasuj kolumny z arkusza wypełnia za jednym razem wszystko, co da się rozpoznać po nazwach kolumn. Kolumny dopasowywane są do tego, co agent zbiera, po nazwie albo po pytaniu, które za nią stoi - kolumnaemail i Adres e-mail trafią na tę samą zmienną.
Mapowanie wskazujące kolumnę, której nie ma w arkuszu, jest oznaczane, a nie po
cichu usuwane. Takie mapowania zbierają się w ramce „Brakuje tych kolumn w
arkuszu”: przy każdym widać nazwę nagłówka do dodania (z przyciskiem kopiowania,
a Kopiuj wszystkie nagłówki kopiuje je rozdzielone tabulatorem, do wklejenia
w pierwszy wiersz arkusza jednym ruchem) oraz opis tego, co się w niej znajdzie -
np. „Data rozmowy (Podsumowanie rozmowy). To zmienna systemowa - platforma
wylicza ją sama po rozmowie.”. Dodaj nagłówek w arkuszu, kliknij Odśwież
kolumny, a mapowanie przeskoczy do listy zwykłych kolumn.
Jeśli odczyt się nie powiedzie (błędne konto serwisowe lub ID arkusza, brak
udostępnienia arkusza kontu serwisowemu), pola nadal działają jako zwykły
tekst - wpiszesz nazwy ręcznie.
Jak wiersz trafia do kolumn
Mapowania to lista i domyślnie wiersz dopisywany jest w jej kolejności: pierwsze mapowanie ląduje w kolumnie A, drugie w B i tak dalej. Wpisana nazwa kolumny jest wtedy tylko etykietą dla Ciebie. To przestaje działać, gdy arkusz nie trzyma tej samej kolejności - ktoś wstawił kolumnę, zamienił dwie miejscami albo zbudował arkusz ręcznie z nazw zmiennych z zakładki Zmienne. Dlatego platforma najpierw czyta wiersz nagłówkowy i jeśli rozpozna każdą opisaną kolumnę, zapisuje wartości pod ich własnymi nagłówkami, w dowolnej kolejności. Kolumna jest rozpoznana, gdy jej nagłówek to:- nazwa kolumny podana w mapowaniu, albo
- źródło mapowania (
name,email,call_date, …), albo - nazwa zmiennej zebranej w rozmowie - kolumna o nagłówku
jaki_ma_wolumen_polaczenwypełnia się sama, bez mapowania.
Mapowania nie powstają automatycznie z Twoich zmiennych po utworzeniu agenta.
Domyślna lista budowana jest raz, przy tworzeniu agenta, z pól wybranych w
kreatorze. Zmienna dodana później trafi do arkusza albo po dodaniu dla niej
mapowania, albo gdy nazwiesz kolumnę dokładnie tak jak ją.
Logowanie przez Google
Najprostsze połączenie z arkuszem to logowanie: Integracje → Google Sheets → Zaloguj się przez Google i wybierz konto, które może edytować arkusz. Zaraz po powrocie z Google otworzy się lista arkuszy tego konta - wybierz ten, do którego agent ma zapisywać, a jego nazwa pojawi się przy połączeniu. Nie trzeba zakładać projektu w Google Cloud ani niczego udostępniać. BrosBots ma dostęp tylko do arkuszy wybranych z tej listy, nie do całego Dysku Google. Dlatego arkusz wybierasz przyciskiem Wybierz arkusz, a nie przez wklejenie adresu: wklejony adres zadziała tylko dla arkusza, który był już wcześniej wybrany z listy. Ten sam przycisk jest:- przy połączeniu w Integracje → Google Sheets (arkusz domyślny),
- w edytorze agenta: Integracje → kafelek arkusza, notatka albo wyszukiwanie → Arkusz tego agenta (inny arkusz dla tego agenta; puste pole = arkusz z połączenia),
- w kreatorze agenta przy adresie arkusza,
- w nowej kampanii ze źródłem Arkusz Google.
Połączenie zalogowane przed wprowadzeniem listy arkuszy pokazuje komunikat
„To połączenie powstało przed wyborem arkusza z listy”. Kliknij Zaloguj się
ponownie i wybierz arkusze z listy jeszcze raz - przy połączeniu i w każdym
agencie, który ma własny arkusz.
Udostępnij arkusz kontu serwisowemu
Dotyczy połączeń z kontem serwisowym zrobionych przed logowaniem przez Google. Konto serwisowe to osobny użytkownik Google i na start nie ma dostępu do niczego. Samo utworzenie klucza nie wystarczy: otwórz arkusz, kliknij Udostępnij, wklej Service Account Email (...@....iam.gserviceaccount.com) i nadaj mu rolę Edytor.
To krok pomijany najczęściej - dopóki go nie zrobisz, każdy zapis kończy się
odmową 403 PERMISSION_DENIED.
Notatka w trakcie rozmowy
Zapisz notatkę w Google Sheets, w zakładce Integracje agenta, dopisuje wiersz jeszcze na linii - prośbę o kontakt, wiadomość do przekazania, cokolwiek, co ktoś musi później obsłużyć. Korzysta z tego samego połączenia co zapis po rozmowie.
Kolumny decydują też, o co agent pyta: zmapujesz kolumnę na imię i nazwisko -
narzędzie dostaje argument, który model musi wypełnić; nie zmapujesz - agent
nigdy o nie nie pyta. Data, godzina i numer dzwoniącego uzupełniają się same z
kontekstu rozmowy (model zapytany o godzinę ją zmyśla). Wiersz układany jest
według nagłówków arkusza, więc przestawienie kolumn w Google Sheets niczego nie
psuje, a kolumna skonfigurowana, ale nieobecna w zakładce, wraca do agenta i do
logu zamiast zniknąć po cichu.
Odczyt z arkusza w trakcie rozmowy
Wszystko powyżej zapisuje. Wyszukaj wiersz w Google Sheets, w zakładce Integracje agenta, działa w drugą stronę: agent czyta arkusz, gdy rozmówca jest jeszcze na linii - status zamówienia, rezerwację, dane klienta, cenę. Korzysta z tego samego połączenia co zapis, więc nie trzeba niczego dodatkowo autoryzować. Zanim to powstało, jedynym obejściem był webhook n8n albo Make postawiony przed tym samym arkuszem - narzędzie HTTP samo nie wygeneruje tokenu konta serwisowego Google. To nadal działa i nadal jest odpowiedzią na wszystko, czego zwykły odczyt wiersza nie zrobi (zapis zwrotny, łączenie dwóch arkuszy, filtrowanie po kilku kolumnach naraz) - ale do “znajdź wiersz i powiedz, co w nim jest” webhook nie jest już potrzebny.Co ustawić
Wypełnij Co zawiera ten arkusz. Samo włączenie narzędzia nie wystarczy -
agent, któremu nikt nie powiedział, że arkusz istnieje, odpowie “nie mam takiej
informacji” zamiast sprawdzić. To właśnie to pole sprawia, że sprawdza.
Jak znajdowany jest wiersz
Wiersz 1 to nagłówki. Wszystko poniżej to dane, a agent szuka wartości podanej przez rozmówcę - numeru zamówienia, e-maila, kodu - we wszystkich kolumnach albo w jednej wskazanej. Znaleziony wiersz wraca jako pary nazwa kolumny / wartość, więc agent może odpowiedzieć dowolnym polem z niego. Dwie rzeczy są celowo pobłażliwe:- Wielkość liter i spacje nie mają znaczenia, więc
ANNA KOWALSKAznajdzieAnna Kowalska. - Numery telefonów porównywane są po ostatnich dziewięciu cyfrach. Caller ID
przychodzi jako
+48601234567, a w arkuszu jest to, co komu wygodniej -601-234-567,0048 601 234 567. Wszystkie trafią w ten sam wiersz.
Ograniczenia
Arkusz nie ma silnika zapytań, więc lookup czyta zakładkę i ją przeszukuje. Przy arkuszach, na których realnie stawia się agentów - do kilku tysięcy wierszy - to w porządku, a każde wyszukanie dokłada do rozmowy mniej więcej pół sekundy. Przeszukiwanie zatrzymuje się na 5000 wierszy. Powyżej agent dostaje informację, że arkusz został odczytany tylko częściowo, zamiast odpowiadać “nie znaleziono” na podstawie połowy danych. Arkusz tej wielkości to sygnał, że dane powinny być w bazie, a agent powinien sięgać do nich narzędziem HTTP API.Slack, e-mail, Zapier i kalendarz w trakcie rozmowy
Sześć akcji z zakładki Integracje agenta wykonuje się jeszcze na linii: Powiadomienie Slack, Wyślij e-mail, Wyzwalacz Zapier, Workflow n8n, Scenariusz Make i Umów spotkanie. Ustawia się je tak samo jak notatkę - poza wyborem połączenia mówisz agentowi, kiedy ma z akcji skorzystać i co ma w niej napisać. Workflow n8n i scenariusz Make jako jedyne potrafią odpowiedzieć: to, co odpowiedzą, agent przekazuje rozmówcy - patrz n8n i Make.
Rozmowa nie rozłącza się, dopóki akcja rozpoczęta w tej samej turze się nie
zakończy - notatka na Slacka wysyłana w chwili, gdy dzwoniący się żegna, nie
zostanie przerwana w połowie.
Powiadomienie Slack i e-mail wysłane w trakcie rozmowy zapisują się w panelu
Integracje przy rozmowie, tak samo jak wysyłki po rozmowie - wiadomość,
której agent nigdy nie wysłał, i wiadomość odrzuconą przez Slacka widać tam
osobno.
Powiadomienie po rozmowie to osobna integracja, ustawiana w tej samej
zakładce (podsumowanie, wynik i nagranie na kanał). Obie mogą działać naraz:
akcja w trakcie rozmowy alarmuje o tym, co dzieje się na linii, a wysyłka po
rozmowie podsumowuje.
Komu agent może wysłać SMS, WhatsApp i e-mail
Odbiorcę SMS-a, wiadomości WhatsApp, linku do płatności i e-maila w trakcie rozmowy wybiera model. Żeby tekst wgrany do bazy wiedzy, strona znaleziona w sieci albo sam rozmówca nie namówił agenta do wysyłki pod obcy numer czy adres, obowiązują dwie zasady:- Odbiorca. SMS, WhatsApp i link do płatności idą tylko na numer rozmówcy i na numery wpisane w polu Dodatkowi dozwoleni odbiorcy. E-mail idzie tylko na Domyślnego odbiorcę, adresy z tej samej listy i adres kontaktu z danych rozmowy (lead, kontakt kampanii). Inny odbiorca jest odrzucany, a agent mówi rozmówcy, że wiadomość nie wyszła.
- Limit na rozmowę. Najwyżej 3 SMS-y (linki do płatności się wliczają), 3 wiadomości WhatsApp i 3 e-maile w jednej rozmowie.
Agenty sprzed 19.10.2026, które wysyłały e-mail na adres podany przez
rozmówcę, po tej zmianie potrzebują tego przełącznika - inaczej e-mail
zostanie odrzucony.
Gdy nic się nie zapisało
Odpowiadają na to dwa miejsca, każde na inne pytanie:- Konkretna rozmowa - otwórz ją w historii rozmów. Panel Integracje obok transkrypcji pokazuje, co każda integracja zrobiła z tą rozmową i dlaczego nie zapisała wiersza, jeśli go nie zapisała. Przy udanym zapisie jest zdanie z miejscem zapisu (np. „Row written to ‘Leady’ (row 42)”), a pod nim Show what was sent rozwija wszystkie wartości, które poszły do poszczególnych kolumn albo pól CRM - tak samo jak dane rozmowy wyżej.
- Integracja włączona, ale bez żadnego wyniku dla tej rozmowy - panel oznacza to na żółto. Znaczy to, że zadanie po rozmowie nie doszło do tej integracji (błąd albo przekroczony czas), a nie że nic nie było skonfigurowane.
- Połączenie w ogóle - Ostatnie wysyłki na stronie Integracje listują próby z całej organizacji, od najnowszych.
Ponowienia i przycisk Ponów
Zapisy do HubSpota, Pipedrive, Daktela i Google Sheets same ponawiają próbę, gdy usługa dostawcy jest chwilowo niedostępna: przy odpowiedzi429 (za dużo
zapytań), 500, 502, 503, 504, przy nieudanym połączeniu albo przekroczonym
czasie odczytu. Każde zapytanie ma najwyżej trzy próby, w odstępie kilku
sekund; na Retry-After dłuższe niż 10 sekund zapis nie czeka. Jeśli zapis
potrzebował więcej niż jednej próby, panel Integracje rozmowy podaje ile.
Błędy, które same nie miną - cofnięty klucz (401), brak uprawnień (403),
dane odrzucone przez CRM (400) - nie są ponawiane. Nie jest też ponawiany
zapis kontaktu albo wiersza, któremu skończył się czas w połowie: mógł dojść,
a drugi raz zrobiłby duplikat.
Przy zapisie, który mimo to się nie udał, w panelu Integracje rozmowy jest
przycisk Ponów. Uruchamia ponownie tylko ten jeden zapis - nie SMS-a,
WhatsAppa, Slacka ani webhooków tej samej rozmowy - a wynik pojawia się w
panelu jako nowy wiersz po kilku sekundach. Zapis do CRM najpierw szuka
kontaktu, więc ponowienie zaktualizuje kontakt, który wcześniejsza próba mogła
już założyć, zamiast dodać drugi. Przycisk jest tylko przy najnowszym wyniku
danego zapisu: starszego błędu, który późniejsza próba już naprawiła, nie da
się powtórzyć.
Wiersz trafia bezpośrednio pod ostatni wypełniony wiersz zakładki - puste
wiersze poniżej danych (a tak wygląda arkusz zbudowany na Tabelach Google
albo z importu) są pomijane. Wcześniej zapis szedł przez „append” Google, który
w takim arkuszu ląduje za całym zarezerwowanym obszarem tabeli, czyli
kilkaset wierszy pod nagłówkiem. Jeśli szukasz starszych rozmów, których nie
ma pod nagłówkiem, przewiń arkusz w dół - najpewniej są tam.
Rozmowy przez przeglądarkę (WebRTC) zapisują wiersze dokładnie tak samo jak
telefoniczne. Jedyna różnica to
call.phone_number, które zostaje puste, bo nie
ma numeru do zapisania.Szukanie w internecie w trakcie rozmowy
Wszystko inne, co agent wie, ktoś mu wpisał: prompt, wgrane dokumenty, arkusz. To wystarcza do cen i godzin otwarcia, a nie wystarcza do niczego, co zmieniło się w tym tygodniu - jakie nabory są otwarte, co dziś mówi rejestr. Szukaj w internecie, w zakładce Integracje agenta, jest jedynym narzędziem, którego odpowiedzi nie ma w naszej bazie. Pod spodem jest Brave Search API: płatne API z licencją na zwracanie wyników, odpowiadające w jednym zapytaniu. Darmowy plan wystarcza na pojedyncze sprawdzenia w rozmowie.Konfiguracja
- Wejdź na brave.com/search/api, zarejestruj się i wybierz plan.
- Skopiuj token subskrypcji z zakładki API Keys.
- W panelu: Integracje → Brave Search → wklej klucz. Opcjonalnie podaj
kraj (
PL) i język zapytań (pl), żeby zawęzić wyniki do swojego rynku. - W agencie: zakładka Integracje → Szukaj w internecie → wybierz połączenie.
Bez wypełnienia Czego ma szukać agent i tak szuka, ale tylko wtedy, gdy sam
uzna, że nie zna odpowiedzi. To pole przesuwa granicę: mówi mu, w jakich
sprawach ma nie ufać własnej pamięci.
Co agent dostaje
Tytuł, fragment opisu i źródło, do trzech wyników. Celowo nie pobieramy treści stron: wczytanie i streszczenie trzech artykułów to kilka sekund ciszy w słuchawce, a wynik i tak trzeba powiedzieć w dwóch zdaniach. Agent czyta sedno, mówi skąd to ma i proponuje wysłanie linku SMS-em albo mailem, jeśli włączyłeś te narzędzia. Nieudane wyszukiwanie nie przerywa rozmowy. Wyczerpany limit, odrzucony klucz i przekroczony czas wracają jako zdanie, które agent mówi na głos („nie udało mi się tego sprawdzić”), zamiast ciszy albo zmyślonej odpowiedzi.AgentMail: własny adres agenta
Wysyłka przez SMTP i czytanie przez IMAP wymagają serwera, portu i hasła aplikacji. To najczęstsze źródło błędów przy konfiguracji, a sprawdzić je można dopiero wtedy, gdy coś nie zadziała. AgentMail zastępuje te dane jednym kluczem API i daje agentowi własny adres.Konfiguracja
- Wejdź na agentmail.to, zarejestruj się i skopiuj klucz API. Darmowy plan to trzy skrzynki i 3000 wiadomości miesięcznie.
- W panelu: Integracje → AgentMail → wklej klucz. Pole skrzynki zostaw
puste: przy zapisie zakładamy agentowi adres na
agentmail.toalbo używamy tego, który już masz na tym kluczu. - Własna domena (
agent@twojafirma.pl) podpina się w panelu AgentMail, razem z rekordami DKIM, SPF i DMARC.
Co to zmienia
W zakładce Integracje agenta lista połączeń przy narzędziu e-mail pokazuje
teraz zarówno połączenia SMTP, jak i AgentMail - agent wysyła tym, które
wybierzesz.
Odprawa bez IMAP-a
W sekcji Codzienna odprawa doszło pole Skąd czytać pocztę: własna skrzynka przez IMAP albo skrzynka agenta. Przy skrzynce agenta ustawiasz w swojej poczcie przekierowanie na jego adres (Gmail: Ustawienia → Przekazywanie), a odprawa czyta to, co przyszło - bez podawania nam jakiegokolwiek hasła.AgentMail nie czyta Twojego Gmaila. Wydaje nowe skrzynki, więc istniejąca
poczta trafia do agenta przekierowaniem. Bezpośredni odczyt konta Google to
albo IMAP z hasłem aplikacji, albo aplikacja OAuth z corocznym audytem
bezpieczeństwa Google - stąd ten wybór.
Gdy test mówi, że klucz został odrzucony
Testuj połączenie sprawdza najpierw klucz na liście skrzynek, więc “AgentMail odrzucił ten klucz API” oznacza teraz klucz i nic innego. Dwie inne odpowiedzi dotyczą pola Inbox:
Jeśli klucz faktycznie jest odrzucany, sprawdź go z terminala - to dokładnie
to samo wywołanie, które robi test:
200 znaczy, że klucz jest dobry i problemem jest skrzynka. 401 znaczy, że
AgentMail nie zna tego klucza: wygeneruj nowy w panelu AgentMail i wklej go bez
spacji dookoła.
Sklepy internetowe
Agent odpowiada na dwa pytania, z którymi dzwonią klienci sklepów: “gdzie jest moje zamówienie” i “macie to na stanie”. Odpowiedź czyta na żywo z systemu, w którym prowadzisz sprzedaż:- BaseLinker - status zamówienia, numer przesyłki oraz stany i ceny z katalogu BaseLinkera.
- Shopify - status realizacji, numer przesyłki i dostępność wariantów przez aplikację niestandardową w Twoim panelu.
- WooCommerce - zamówienia i dostępność produktów ze sklepu na WordPressie przez klucze REST API z uprawnieniem do odczytu.
- Allegro - zamówienia i aktywne oferty z konta sprzedającego, połączonego jednym logowaniem, bez klucza do wklejenia.