arrow-bredcrumbs
Table of Content:

Sending after-call events to GA

Sending after-call events to GA

Step 1: Add this snippet to save GA customer ID:

window.leadCM.init_callback_array.push(function() {
   setTimeout(function() {
       try {
           var clientId = ga.getAll()[0].get('clientId');
           if (clientId)
               leadCM.dispatchCustomEvent("CUSTOM_PARAMS", {
                   lc_param_cid: clientId
               });
       } catch (e) {
           console.error(e);
       }
   }, 5000);
});

(Please check that lc_param_cid is filled correctly)

Step 2: Create a server (fill constants with client values):

const CLIENTS_GA_ID = 'UA-123456789-1'; // INSERT HERE CLIENT's GA_ID
const CLIENTS_GA_EVENT_NAME = 'SUCCESSFUL_CALL'; // INSERT HERE CLIENT's TARGET EVENT
leadCM.webserver.post("/webhook", async (req, res) => {
   if (req?.body) {
       const payload = req?.body;
       if (payload.type === 'end_call') {
           console.log(payload);
           if (payload.call_status !== 'answered' && !talk_duration_sec && talk_duration_sec < 30) return;
           if (payload.lead.custom_params.lc_param_cid) {
               const url = 'https://www.google-analytics.com/collect';
               const params = {
                   v: "1",
                   tid: CLIENTS_GA_ID,
                   cid: payload.lead.custom_params.lc_param_cid,
                   t: "event",
                   ec: CLIENTS_GA_EVENT_NAME,
                   z: Math.random().toString(),
               };
               console.log(url, payload);
               const res = await leadCM.httpClient.get(url, {
                   params: params
               });
               console.log(res.data);
           }
       }
   }
   res.send({
       success: true,
       hi: 'there 1',
       seed: Math.random()
   });
});

Step 3: Setup the Webhooks for target widgets.

If you face any issues, feel free to drop us an email at support@brightcall.ai

Read next:
Sending after-call events to GA