Jak możemy pomóc?

Integracja wychodząca

Integracja wychodząca:
Whatsapp > CRM i inne systemy

Udostępnij ten artykuł swojemu deweloperowi lub użyj Zapiera, aby zintegrować swój system z Whatsapp.

Konfiguracja

TimelinesAI umożliwia powiadamianie zewnętrznego systemu o otrzymaniu lub wysłaniu nowej wiadomości na dowolnym połączonym koncie WhatsApp w obszarze roboczym. Obejmuje to wiadomości Whatsapp wysyłane za pośrednictwem aplikacji mobilnej Whatsapp lub z poziomu Timelines.

Często zdarza się, że taka integracja jest używana za pośrednictwem usługi pośredniczącej, takiej jak Zapier, gdzie każda aktywacja webhooka liczy się do wykorzystania limitu zadań.

Aby zwiększyć efektywność wykorzystania limitu zadań, TimelinesAI zapewnia możliwość agregowania wielu wiadomości wysłanych lub odebranych w określonym czacie w wybranym okresie czasu. Wiadomości są przesyłane przez webhook jako pojedynczy "pakiet". Dla wygody użytkownika taki "pakiet" zawiera pole ze wstępnie sformatowaną agregacją wiadomości (i linkiem do punktu w konwersacjach w TimelinesAI), ale można zaimplementować własne formatowanie przy użyciu danych dostarczonych z webhookiem.

Zrzut ekranu 2021 11 23 o 12 06 26
Pakiet wiadomości wysłanych przez webhook

Aby skonfigurować integrację przy użyciu Outbound Webhooks:

  1. Przejdź do sekcji Webhooks na swoim koncie TimelinesAI
  2. Wybierz kartę Połączenia wychodzące.

Zrzut ekranu 2021 11 23 o 11:47:21

Zostaną wyświetlone następujące ustawienia:

  • Granularność agregacji - wiadomości będą agregowane i wysyłane za pomocą webhooka zgodnie z wyborem (co 1 / 6 / 12 / 24 godziny) lub będą wysyłane, gdy tylko pojawią się na osi czasu ("Nie agreguj").
  • Webhook URL - tutaj należy wprowadzić rzeczywisty adres URL, który ma być powiadamiany.
  • Webhook włączony - możesz wyłączyć webhook, jeśli chcesz zatrzymać integrację.

Gdy Webhook zostanie włączony i niektóre wiadomości zostaną wysłane, zostanie wyświetlony dziennik aktywności (do 10 ostatnich działań).

Błędy i rozwiązywanie problemów

Aby zapewnić prawidłowe działanie integracji, jeśli napotkanych zostanie więcej niż 10 kolejnych błędów po stronie odbiorcy (dowolny błąd, od nieprawidłowego adresu URL po kod odpowiedzi inny niż 200), system automatycznie wyłączy integrację. W takim przypadku właściciel obszaru roboczego otrzyma powiadomienie e-mail.

W przypadku konieczności rozwiązania błędu, można pobrać szczegółowy dziennik (link będzie dostępny w dolnej części strony), w którym pojawi się do 100 ostatnich żądań ze wszystkimi szczegółami wysłanych danych i otrzymanej odpowiedzi.

Format danych

Dane zostaną wysłane na adres URL elementu webhook za pomocą żądania HTTP POST w formacie JSON. Dane są dostarczane w 2 różnych formatach, w zależności od ustawienia Aggregation Granularity, jak opisano poniżej.

Agregacja co X godzin

Wiadomości będą agregowane w "pakiet". Dostępne będą następujące dane:

  • "konto whatsapp" - szczegóły konta whatsapp (i członka zespołu obszaru roboczego, który połączył konto), za pośrednictwem którego wiadomość została odebrana lub wysłana.
    • "phone" - numer telefonu konta WA
    • "full_name" - pełna nazwa właściciela konta WA, zarejestrowana w Timelines
    • "email" - adres e-mail właściciela konta WA, zarejestrowany w Timelines
  • "chat" - szczegóły czatu (bezpośredniego lub grupowego), w którym wiadomość została wysłana lub odebrana.
    • "full_name" - nazwa czatu (wyświetlana na osi czasu)
    • "responsible_name" - nazwa członka zespołu, który jest przypisany jako odpowiedzialny do tego czatu.
    • "responsible_email" - adres e-mail członka zespołu, który jest przypisany jako osoba odpowiedzialna za ten czat.
    • "chat_url" - adres URL, pod którym można uzyskać dostęp do czatu w TimelinesUI.
    • "chat_id" - identyfikator czatu w TimelinesUI (może być użyty do skonstruowania adresu URL czatu lub z przychodzącymi webhookami).
    • "is_new_chat" - true, jeśli ten czat został właśnie utworzony, false w przeciwnym razie
    • "is_group" - true, jeśli ten czat jest czatem bezpośrednim, false w przeciwnym razie.
    • "phone" - numer telefonu czatu (pusty w przypadku czatu grupowego)
  • "messages" - lista wiadomości, gdzie każdy obiekt wiadomości zawiera następujące pola
    • "kierunek" - może być "odebrany" lub "wysłany"
    • "timestamp" - znacznik czasu wiadomości, w strefie czasowej UTC
    • "message_id" - nieużywany
    • "message_uid" - wewnętrzny unikalny identyfikator wiadomości, który może być używany z Public API do ładowania szczegółów wiadomości i aktualizacji statusu (zobacz szczegóły tutaj).
    • "sender" - dane nadawcy (uczestnika czatu) wiadomości
      • "full_name" - tytuł czatu lub nazwa kolegi z drużyny na Osiach czasu (jeśli została wysłana z poziomu Osi czasu).
      • "phone" - numer telefonu nadawcy (lub pusty w przypadku czatu grupowego)
    • "odbiorca" - dane nadawcy (uczestnika czatu) wiadomości
      • "full_name" - tytuł czatu lub nazwa kolegi z drużyny na osi czasu.
      • "phone" - numer telefonu odbiorcy (lub pusty w przypadku czatu grupowego)
    • "text" - tekst wiadomości (zwykły tekst)
    • "attachment" - obiekt opisujący załącznik wiadomości, zawierający następujące pola
      • "temporary_download_url" - tymczasowy adres URL pobierania, ważny przez 15 minut.
      • "filename" - nazwa pliku
      • "size" - rozmiar pliku, w bajtach
      • "mimetype" - typ mime pliku
  • "first_message_timestamp" - znacznik czasu najwcześniejszej wiadomości w pakiecie, w strefie czasowej UTC.
  • "last_message_timestamp" - znacznik czasu ostatniej wiadomości w pakiecie, w strefie czasowej UTC.
  • "agregacja" - zagregowany tekst wiadomości, w formacie HTML, nadający się do wykorzystania w CRM lub podobnych systemach jako treść notatek, w tym bezpośredni link do pierwszej wiadomości na osi czasu.

Przykład

{
    "whatsapp_account" :
    {
        "full_name" : "Amnon Haha",
        "email" : "Amnon@acme.com",
        "phone" : "+972500000000"
    },
    "chat": 
    {
        "full_name": "John Doe>",
        "responsible_name": "Amnon",
        "responsible_email": "Amnon@acme.com",
        "chat_url" : "https://app.timelines.ai/chat/10010001/messages/",
        "chat_id" : "10010001",
        "is_new_chat" : true,
        "is_group": false, 
        "phone": "+97254000000"
    },
    "messages" :
    [
        {
            "direction": "sent", 
            "timestamp": "2021-02-24T16:25:29+0000",
            "message_id": "ddfskhsd76dsfs6dsd5skjsdhf",
            "sender": {
                "full_name": "John Doe",
                "phone": "+972540000000"
            },
            "recipient": {
                "full_name": "Jane Smith",
                "phone": "+972550000000"
            },
            "text": "lorem ipsum",
            "attachment": {
                "temporary_download_url": "https://acme.com/path",
                "filename": "someimage.png",
                "size": 128909,
                "mimetype": "image/png"
            }
        },
        {
            "direction": "received", 
            "timestamp": "2021-02-24T16:30:29+0000",
            "message_id": "ddfskhsd76dsfs6dsd5skjsdhf",
            "sender": {
                "full_name": "John Doe",
                "phone": "+972540000000"
            },
            "recipient": {
                "full_name": "Jane Smith",
                "phone": "+972550000000"
            },
            "text": "lorem ipsum"
        }
    ],
    "first_message_timestamp" : "2021-02-24T16:25:29+0000",
    "last_message_timestamp" : "2021-02-24T16:30:29+0000",
    "aggregation":
        "from John Doe on 2021-02-24 16:25: Hi! How are you?<br/>from Jane Smith on 2021-02-24 16:30: I am fine, how are you?<br/>Click <a href='https://app.timelines.ai/permalink/77a28d55-5345-5435-8c72-3a7bcad8ded9/'>here</h> to open the conversation in TimelinesAI"
}

Nie agregować

Każda wiadomość jest wysyłana indywidualnie, gdy tylko stanie się dostępna. Nie ma miejsca "łączenie". Dostępne będą następujące dane:

  • "konto whatsapp" - szczegóły konta whatsapp (i członka zespołu obszaru roboczego, który połączył konto), za pośrednictwem którego wiadomość została odebrana lub wysłana.
    • "phone" - numer telefonu konta WA
    • "full_name" - pełna nazwa właściciela konta WA, zarejestrowana w Timelines
    • "email" - adres e-mail właściciela konta WA, zarejestrowany w Timelines
  • "chat" - szczegóły czatu (bezpośredniego lub grupowego), w którym wiadomość została wysłana lub odebrana.
    • "full_name" - nazwa czatu (wyświetlana na osi czasu)
    • "responsible_name" - nazwa członka zespołu, który jest przypisany jako odpowiedzialny do tego czatu.
    • "responsible_email" - adres e-mail członka zespołu, który jest przypisany jako osoba odpowiedzialna za ten czat.
    • "chat_url" - adres URL, pod którym można uzyskać dostęp do czatu w TimelinesUI.
    • "chat_id" - identyfikator czatu w TimelinesUI (może być użyty do skonstruowania adresu URL czatu lub z przychodzącymi webhookami).
    • "is_new_chat" - true, jeśli ten czat został właśnie utworzony, false w przeciwnym razie
    • "is_group" - true, jeśli ten czat jest czatem bezpośrednim, false w przeciwnym razie.
    • "phone" - numer telefonu czatu (pusty w przypadku czatu grupowego)
  • "message" - szczegóły wiadomości
    • "kierunek" - może być "odebrany" lub "wysłany"
    • "timestamp" - znacznik czasu wiadomości, w strefie czasowej UTC
    • "message_id" - wewnętrzny unikalny identyfikator wiadomości
    • "sender" - dane nadawcy (uczestnika czatu) wiadomości
      • "full_name" - tytuł czatu lub nazwa kolegi z drużyny na Osiach czasu (jeśli została wysłana z poziomu Osi czasu).
      • "phone" - numer telefonu nadawcy (lub pusty w przypadku czatu grupowego)
    • "odbiorca" - dane nadawcy (uczestnika czatu) wiadomości
      • "full_name" - tytuł czatu lub nazwa kolegi z drużyny na osi czasu.
      • "phone" - numer telefonu odbiorcy (lub pusty w przypadku czatu grupowego)
    • "text" - tekst wiadomości (zwykły tekst)
    • "attachment" - obiekt opisujący załącznik wiadomości, zawierający następujące pola
      • "temporary_download_url" - tymczasowy adres URL pobierania, ważny przez 15 minut.
      • "filename" - nazwa pliku
      • "size" - rozmiar pliku, w bajtach
      • "mimetype" - typ mime pliku

Przykład

{
    "whatsapp_account" :
    {
        "full_name" : "Amnon Haha",
        "email" : "Amnon@acme.com",
        "phone" : "+972500000000"
    },
    "chat": 
    {
        "full_name": "John Doe>",
        "responsible_name": "Amnon",
        "responsible_email": "Amnon@acme.com",
        "chat_url" : "https://app.timelines.ai/chat/10010001/messages/",
        "chat_id" : "10010001",
        "is_new_chat" : true,
        "is_group": false, 
        "phone": "+97251111111"
    },
    "message" :
       {
            "direction": "sent", 
            "timestamp": "2021-02-24T06:25:29+0000",
            "message_id": "ddfskhsd76dsfs6dsd5skjsdhf",
            "sender": {
                "full_name": "John Doe",
                "phone": "+972540000000"
            },
            "recipient": {
                "full_name": "Jane Smith",
                "phone": "+972550000000"
            },
            "text": "lorem ipsum",
            "attachment": {
                "temporary_download_url": "https://acme.com/path",
                "filename": "someimage.png",
                "size": 128909,
                "mimetype": "image/png"
            }
        }
}
Spis treści