Integratie SalesDash

Flows

Hieronder de algemene flows van de koppeling, elke stap wordt verder uitgelegd

Onboard flow

Alt text

Status verandering flow

Alt text

Onboard flow

Wanneer iemand start met de koppeling moet deze geonboard worden. Het belangrijkste onderdeel hiervan is de geschiedenis van het bedrijfsprofiel importeren in Salesdash. Hiervoor worden twee endpoints vanuit Reuzenpanda geleverd:

  • history endpoint, voor het ophalen van de geschiedenis veranderingen
  • status endpoint, de geschiedenis bevat status veranderingen met als identifier een ID, Salesdash heeft de naam per status nodig, dit endpoint leverd de overige status data.

History endpoint

Dit wordt gedaan met de volgende request.
Endpoint: POST https://backend.reuzenpanda.nl/contact-service/api/v1/:company-profile-id/history (opens in a new tab)
company-profile-id: Id van betreffende bedrijf in Reuzenpanda (wordt verzorgt tijden onboarding)


In de response is de history terug te vinden, dit is een lijst van backlogitems met de betreffende history (veranderingen van status en uitvoerder).

  • De "id" is de backlogId
  • In de history is de data in de metadata afhankelijk van de type verandering Voorbeeld data:
{
    "history": [
         {
            "id": "84677333-817e-48aa-aefd-4a0331512126",
            "backlogId": "ea19da5d-83c0-451e-a2a7-257fd75eece2",
            "summary": "2",
            "companyProfileId": [
                "fafb201c-f3b5-4a98-9c50-013ca5c359f6"
            ],
            "history": [
                {
                    "id": "b43d4763-4867-4613-a331-3bb27a02b750",
                    "backlogItemId": "84677333-817e-48aa-aefd-4a0331512126",
                    "startTimestamp": 1723637273030,
                    "endTimestamp": 1723637274371,
                    "type": "STATUS_CHANGED",
                    "metaData": {
                        "propertyValue": {
                            "_id": "8f4bfe4c-4dea-45a3-b33e-9e09a4884b12",
                            "type": "STATUS"
                        }
                    }
                },
                {
                    "id": "ec575545-7a54-4f93-9c49-24976b46fe62",
                    "backlogItemId": "84677333-817e-48aa-aefd-4a0331512126",
                    "startTimestamp": 1723637274371,
                    "endTimestamp": 1723637274874,
                    "type": "STATUS_CHANGED",
                    "metaData": {
                        "propertyValue": {
                            "_id": "8f4bfe4c-4dea-45a3-b33e-9e09a4884b12",
                            "type": "STATUS"
                        }
                    }
                },
                {
                    "id": "98d215dc-da79-4758-b9a7-f2799474067b",
                    "backlogItemId": "84677333-817e-48aa-aefd-4a0331512126",
                    "startTimestamp": 1723637274874,
                    "endTimestamp": 1724057062479,
                    "type": "STATUS_CHANGED",
                    "metaData": {
                        "propertyValue": {
                            "_id": "8f4bfe4c-4dea-45a3-b33e-9e09a4884b12",
                            "type": "STATUS"
                        }
                    }
                }
            ]
        },
        {
            "id": "5c5bc784-64c2-4f34-86e7-2257d090e70f",
            "backlogId": "3be78ade-c9cf-4de2-a2e9-4cc5e976d528",
            "summary": "casper",
            "companyProfileId": [
                "fafb201c-f3b5-4a98-9c50-013ca5c359f6"
            ],
            "history": [
                {
                    "id": "efab1110-a5be-48db-aaab-d71fd56929c3",
                    "backlogItemId": "5c5bc784-64c2-4f34-86e7-2257d090e70f",
                    "startTimestamp": 1723456773669,
                    "endTimestamp": 1723456773789,
                    "type": "USER_CHANGED",
                    "metaData": {
                        "propertyValue": {
                            "_id": "e0c5eed6-3197-426e-8c21-091416cba5b0",
                            "type": "USER"
                        }
                    }
                },
                {
                    "id": "392da359-00a5-4bb3-9847-a267219d38dd",
                    "backlogItemId": "5c5bc784-64c2-4f34-86e7-2257d090e70f",
                    "startTimestamp": 1723456773789,
                    "endTimestamp": 0,
                    "type": "USER_CHANGED",
                    "metaData": {}
                }
            ]
        }
    ]
}

Status endpoint

Dit wordt gedaan met de volgende request.
Endpoint: POST https://backend.reuzenpanda.nl/contact-service/api/v1/:company-profile-id/history/statuses (opens in a new tab)
company-profile-id: Id van betreffende bedrijf in Reuzenpanda (wordt verzorgt tijden onboarding)


In de response zijn de statuses te vinden, dit is de lijst van alle statuses onder het bedrijfsprofiel

  • De "id" is de status id
  • Label is de naam Voorbeeld data:
{
    "statuses": [
        {
            "id": "5cfb583b-d436-4606-a684-fbdee8fbb231",
            "backlog_id": "ea19da5d-83c0-451e-a2a7-257fd75eece2",
            "label": "Afspraak ingepland",
            "color": "#F5C0FF",
            "standard": false,
            "status_category": null
        },
        {
            "id": "cf5270bf-d3dd-4e03-b258-8258269cf1f3",
            "backlog_id": "41fa6d34-88a3-4e4c-86db-7cc7347635fe",
            "label": "Afspraak ingepland",
            "color": "#F5C0FF",
            "standard": false,
            "status_category": null
        }
    ]
}

Status verandering flow

Deze flow is relevant voor wanneer deals van status veranderen binnen Reuzenpanda

Deal status aanpassing in Reuzenpanda

Een deal wordt binnen de pipeline verplaatst naar een nieuwe status (Dit kan ook cross-pipelines zijn)

Webhook wordt gecalled vanuit Reuzenpanda naar SalesDash

Reuzenpanda called de betreffende webhook (ingesteld tijdens onboarding) van SalesDash. De webhook call zal de data bevatten van de betreffende deal.

Voorbeeld data:

{
  "id": 360861786,
  "timestamp": 1754384328,
  "eventName": "CRM_BACKLOG_ITEM_STATUS_CHANGE",
  "payload": {
    "id": "b9427bd3-f831-4a59-ba24-dc74b4ae4b2e",
    "backlog_id": "49e6215f-d7c8-4959-8430-9a821524bb73",
    "summary": "1",
    "description": "Naam: 1",
    "fields": {
      "address": null,
      "cf_lead_value": {
        "isoCurrency": "EUR",
        "type": "currency"
      }
    },
    "labels": {
      "result": null
    },
    "status_label": "Afspraak ingepland",
    "status_id": "deabc4d2-4605-4506-9b6c-a27c209ded20",
    "assignee_id": "ba568723-4f15-405d-bb4e-82cf7a86e45a",
    "assignee": {
      "type": "USER",
      "id": "ba568723-4f15-405d-bb4e-82cf7a86e45a"
    },
    "status": {
      "type": "STATUS",
      "id": "deabc4d2-4605-4506-9b6c-a27c209ded20"
    },
    "free_fields": [
      {
        "label": "address",
        "value": null
      },
      {
        "label": "_internalConfigurator",
        "value": true
      },
      {
        "label": "cf_lead_value",
        "value": {
          "isoCurrency": "EUR",
          "type": "currency"
        }
      }
    ],
    "item_subject": {
      "type": "LEAD_CONFIGURATION",
      "id": "b52467dd-3c0a-4134-831c-4f274bce5bef"
    },
    "technical_labels": [
      {
        "timestamp": 1753793932756,
        "type": "ITEM_ACTIVE"
      },
      {
        "timestamp": 1753793932756,
        "type": "ITEM_UNREAD"
      }
    ],
    "rank": "0|i000tj:",
    "timestamp_created": 1753793932757,
    "timestamp_updated": 1754384328128
  },
  "metadata": {
    "status_id": "deabc4d2-4605-4506-9b6c-a27c209ded20",
    "old_status_id": "0795afba-12cd-47f3-84e5-7f23f5be0c29",
    "board_id": "a452aba7-2562-410b-a734-d53e550211de",
    "item_type": "DEALS",
    "lead_configuration_id": "b52467dd-3c0a-4134-831c-4f274bce5bef",
    "company_profile_id": "a9f1e5cf-8769-4f4b-b10e-a685927b3439",
    "backlog_id": "49e6215f-d7c8-4959-8430-9a821524bb73",
    "internal_configuration": true
  }
}

Authorizatie naar Reuzenpanda

Vanuit Reuzenpanda krijgt SalesDash de credentials voor de betreffende klant. Met deze credentials kan je inloggen als API gebruiker.

Dit wordt gedaan met de volgende request.
Endpoint: POST https://backend.reuzenpanda.nl/authentication-service/login-api (opens in a new tab)
email: (email uit credentials)
password: (password uit credentials)


Uit de login request volgt een session_key. Bij het uitvoeren van verzoeken naar de Reuzenpanda backend is een geldige session_key vereist, deze sleutel is 24 uur geldig.

Stel de X-AUTHORIZATION header in met de waarde van de session_key.
Voorbeeld (HTTP request):

GET / HTTP/1.1
Host: backend.reuzenpanda.nl
X-AUTHORIZATION: jouw_session_key
Content-Type: application/json

Ophalen users in Reuzenpanda

Voor het ophalen van gebruikers behorende tot een profiel kan het volgende endpoint worden gebruikt.

Endpoint: POST https://backend.reuzenpanda.nl/company-profile-service/get-users-for-company-profile?id=:company-profile-id (opens in a new tab)
company-profile-id: Id van betreffende bedrijf in Reuzenpanda (wordt verzorgt tijden onboarding)

Voorbeeld response:

[
  {
    "id": "ef65c979-98be-4a59-abb3-8c13a14e4390",
    "name": "Casper Torén",
    "email": "casper@reuzenpanda.nl"
  },
  {
    "id": "e62ffdab-cdd5-4db1-8de2-7ec6b7a59a7a",
    "name": "Max Lenaers",
    "email": "max@reuzenpanda.nl"
  }
]

Data wordt verwerkt in SalesDash

Hiermee zou de status verandering binnen SalesDash verwerkt moeten kunnen worden.