Receiving inbound events / ChatApp
Copied +55 (21) 960104492
Log In Free trial

Select a language

Receiving inbound events

There are two options for receiving incoming api events:

Many ready-made libraries in different programming languages.

Below is an example of connecting through a library pusher-js.

1. We connect the library pusher-js

<script src="https://js.pusher.com/7.0/pusher.min.js"></script>

2. Set up the connection settings

Note: In the connection settings, you only need to specify your accessToken obtained by the method v1.tokens.make (no other variables need to be changed).

let pusher = new Pusher('ChatsAppApiProdKey', {
    wsHost: 'socket.chatapp.online',
    wssPort: 6001,
    disableStats: true,
    authEndpoint: 'https://api.chatapp.online/broadcasting/auth',
    auth: {
        headers: {
            'Authorization': '$2y$10$l.SQOBOaqz3ZU65JAlEK4ughTCzIbcVGpJIUNTVnGpaKOYOd4M' // accessToken obtained by the method v1.tokens.make
        }
    },
    enabledTransports: ['ws'],
    forceTLS: true
});

3. We connect to a private channel

There are 3 types of private channels in total:

  • private-v1.licenses.1229.messengers.grWhatsApp - messenger channel in license
  • private-v1.companies.2224 - company channel
  • private-v1.users.685 - user channel
let channel = pusher.subscribe('private-v1.licenses.1229.messengers.grWhatsApp');
// or
let channel = pusher.subscribe('private-v1.licenses.1229.messengers.telegram');

Note: One messenger in one license is one channel. 1229 is your license number. grWhatsApp is the messenger type in the license.

let channelCompany = pusher.subscribe('private-v1.companies.2224');

Note: One company - one channel. 2224 - is your company number.

let channelUser = pusher.subscribe('private-v1.users.685');

Note: One user - one channel. 685 - is the user id.

4. Listening to incoming events

// incoming/outgoing message 
channel.bind('message', (data) => {
    console.log(data);
});

// sent message status 
channel.bind('messageStatus', (data) => {
    console.log(data);
});

// added/removed tag for chat
channel.bind('chatTag', (data) => {
    console.log(data);
});

// employee status
channelCompany.bind('employeeStatus', (data) => {
    console.log(data);
});

// create/edit/destroy quick response
channelUser.bind('quickResponse', (data) => {
    console.log(data);
});

Available events for the channel - license-messenger:

  • message (incoming/outgoing message)
  • messageStatus (sent message status)
  • chatTag (added/removed tag for chat)
  • chatStatus (set status for chat)
  • chatResponsible (set responsible for chat)
  • chatResponsiblePin (pin/unpin responsible for chat)
  • chatProducer (set producer for chat)
  • chatAccomplice (added/removed accomplice for chat)
  • chatAuditor (added/removed auditor for chat)
  • chatLevel (set level for chat)
  • chatConversation (open 24 hour window (only available for whatsapp))
  • chatRead (chat read)
  • chatProcess (set process for chat)

Available events for the channel - company:

  • employeeStatus (employee status)
  • employeeWorkday (employee workday)

Available events for the channel - user:

  • quickResponseList (create/edit/destroy quick response list)
  • quickResponse (create/edit/destroy quick response)

Complete example code:

<script src="https://js.pusher.com/7.0/pusher.min.js"></script>

<script>
window.onload = function() {
    let pusher = new Pusher('ChatsAppApiProdKey', {
        wsHost: 'socket.chatapp.online',
        wssPort: 6001,
        disableStats: true,
        authEndpoint: 'https://api.chatapp.online/broadcasting/auth',
        auth: {
            headers: {
                'Authorization': '$2y$10$l.SQOBOaqz3ZU65JAlEK4ughTCzIbcVGpJIUNTVnGpaKOYOd4M' // accessToken obtained by the method v1.tokens.make
            }
        },
        enabledTransports: ['ws'],
        forceTLS: true
    });

    let channel = pusher.subscribe('private-v1.licenses.1229.messengers.grWhatsApp');

    channel.bind('message', (data) => {
        console.log(data);
    });

    channel.bind('messageStatus', (data) => {
        console.log(data);
    });

    channel.bind('chatTag', (data) => {
        console.log(data);
    });


    let channel2 = pusher.subscribe('private-v1.licenses.1229.messengers.telegram');

    channel2.bind('message', (data) => {
        console.log(data);
    });

    channel2.bind('messageStatus', (data) => {
        console.log(data);
    });

    channel2.bind('chatTag', (data) => {
        console.log(data);
    });
    
    
    let channelCompany = pusher.subscribe('private-v1.companies.2224');

    channelCompany.bind('employeeStatus', (data) => {
        console.log(data);
    });
    
    
    let channelUser = pusher.subscribe('private-v1.users.685');
    
    channelUser.bind('quickResponseList', (data) => {
        console.log(data);
    });
    
    channelUser.bind('quickResponse', (data) => {
        console.log(data);
    });
};
</script>

Object example message (incoming/outgoing message):

{
  "payload": {
    "data": [
      {
        "id": 696,
        "fromApi": false,
        "fromMe": false,
        "side": "in",
        "time": 1637319282,
        "isForwarded": false,
        "type": "text",
        "subtype": null,
        "message": {
          "text": "Test",
          "caption": "",
          "file": null
        },
        "quotedMessage": null,
        "fromUser": {
          "id": 1480675234,
          "username": "username_test",
          "name": "Test Test",
          "phone": "7000000000"
        },
        "chat": {
          "id": "private-1480005234h1360003129730259258",
          "hash": "h1360003129730259258",
          "type": "private",
          "phone": "7000000000",
          "username": "username_test",
          "name": "Test Test",
          "image": "https://telegramclientapi.app24.online/GetDialogPhoto/3bf70000-941b-4e19-bc31-56e150a0e900"
        },
        "fromApp": null,
        "utm": null,
        "created": null
      }
    ],
    "meta": {
      "type": "message",
      "licenseId": 1229,
      "messengerType": "telegram"
    }
  }
}

Object example messageStatus (Sent message status):

{
  "payload": {
    "data": [
      {
        "id": 42213,
        "type": "delivered", // delivered|viewed|failed
        "chat": {
          "id": "private-1480000234h1367520000730259258",
          "hash": "h1367520000730259258",
          "type": "private",
          "phone": "70000000000",
          "username": "username_test"
        },
        "fromApp": {
          "id": "app_123_1",
          "tracking": null
        },
        "error": null
      }
    ],
    "meta": {
      "type": "messageStatus",
      "licenseId": 1229,
      "messengerType": "telegram"
    }
  }
}

Object example chatTag (added/removed tag for chat):

{
  "payload": {
    "data": [
      {
        "type": "add", // add|destroy
        "tag": {
          "id": 29,
          "name": "test 1",
          "color": "#123df55",
          "sort": 100,
          "category": {
            "id": 9,
            "name": "test 1",
            "sort": 100
          }
        },
        "chat": {
          "id": "group-54911000655"
        }
      }
    ],
    "meta": {
      "type": "chatTag",
      "licenseId": 1229,
      "messengerType": "telegram"
    }
  }
}

Object example chatConversation (open 24 hour window (only available for whatsapp)):

{
  "payload": {
    "data": [
      {
        "conversation": {
          "id": "ccb637d17ba3aced8051abc263bd72e4",
          "type": "BIC",
          "startTime": 1644500500,
          "endTime": 1644586900
        },
        "chat": {
          "id": "70000000000"
        }
      }
    ],
    "meta": {
      "type": "chatConversation",
      "licenseId": 1229,
      "messengerType": "WhatsApp"
    }
  }
}

Object example chatStatus (set status for chat):

{
  "payload": {
    "data": [
      {
        "type": "close",
        "chat": {
          "id": "70000000000@c.us"
        }
      }
    ],
    "meta": {
      "type": "chatStatus",
      "licenseId": 1229,
      "messengerType": "grWhatsApp"
    }
  }
}

Object example chatResponsible (set responsible for chat):

{
  "payload": {
    "data": [
      {
        "responsible": {
          "id": 685
        },
        "chat": {
          "id": "70000000000@c.us"
        },
        "fromApp": {
          "id": "app_123_1"
        },
        "edited": {
          "id": 685
        }
      }
    ],
    "meta": {
      "type": "chatResponsible",
      "licenseId": 1229,
      "messengerType": "grWhatsApp"
    }
  }
}

Object example chatResponsiblePin (pin/unpin responsible for chat):

{
  "payload": {
    "data": [
      {
        "type": "pin", // pin|unpin
        "chat": {
          "id": "70000000000@c.us"
        }
      }
    ],
    "meta": {
      "type": "chatResponsiblePin",
      "licenseId": 1229,
      "messengerType": "grWhatsApp"
    }
  }
}

Object example chatProducer (set producer for chat):

{
  "payload": {
    "data": [
      {
        "producer": {
          "id": 685
        },
        "chat": {
          "id": "70000000000@c.us"
        },
        "fromApp": {
          "id": "app_123_1"
        },
        "edited": {
          "id": 685
        }
      }
    ],
    "meta": {
      "type": "chatProducer",
      "licenseId": 1229,
      "messengerType": "grWhatsApp"
    }
  }
}

Object example chatAccomplice (added/removed accomplice for chat):

{
  "payload": {
    "data": [
      {
        "type": "add", // add|destroy
        "accomplice": {
          "id": 685
        },
        "chat": {
          "id": "70000000000@c.us"
        },
        "fromApp": {
          "id": "app_123_1"
        },
        "edited": {
          "id": 685
        }
      }
    ],
    "meta": {
      "type": "chatAccomplice",
      "licenseId": 1229,
      "messengerType": "grWhatsApp"
    }
  }
}

Object example chatAuditor (added/removed auditor for chat):

{
  "payload": {
    "data": [
      {
        "type": "add", // add|destroy
        "auditor": {
          "id": 685
        },
        "chat": {
          "id": "70000000000@c.us"
        },
        "fromApp": {
          "id": "app_123_1"
        },
        "edited": {
          "id": 685
        }
      }
    ],
    "meta": {
      "type": "chatAuditor",
      "licenseId": 1229,
      "messengerType": "grWhatsApp"
    }
  }
}

Object examplechatLevel (set level for chat):

{
  "payload": {
    "data": [
      {
        "level": {
          "id": 555
        },
        "chat": {
          "id": "70000000000@c.us"
        },
        "fromApp": {
          "id": "app_685_1"
        },
        "edited": {
          "id": 685
        }
      }
    ],
    "meta": {
      "type": "chatLevel",
      "licenseId": 1229,
      "messengerType": "grWhatsApp"
    }
  }
}

Object example chatRead (chat read):

{
  "payload": {
    "data": [
      {
        "chat": {
          "id": "7000000000@c.us"
        }
      }
    ],
    "meta": {
      "type": "chatRead",
      "licenseId": "1229",
      "messengerType": "grWhatsApp"
    }
  }
}

Object example chatProcess (set process for chat):

{
  "payload": {
    "data": [
      {
        "process": "inWork", // null|inWork
        "chat": {
          "id": "70000000000@c.us"
        },
        "fromApp": {
          "id": "app_685_1"
        },
        "edited": {
          "id": 685
        }
      }
    ],
    "meta": {
      "type": "chatProcess",
      "licenseId": 1229,
      "messengerType": "grWhatsApp"
    }
  }
}

Object example employeeStatus (employee status):

{
  "payload": {
    "data": [
      {
        "type": "online",
        "employee": {
          "id": 685
        }
      }
    ],
    "meta": {
      "type": "employeeStatus",
      "companyId": 2226
    }
  }
}

Object example employeeWorkday (employee workday):

{
  "payload": {
    "data": [
      {
        "type": "start|end",
        "employee": {
          "id": 685
        }
      }
    ],
    "meta": {
      "type": "employeeWorkday",
      "companyId": 2226
    }
  }
}

Object example quickResponseList (create/edit quick response list):

{
  "payload": {
    "data": [
      {
        "type": "create", // create|edit
        "quickResponseList": {
          "id": 1338,
          "name": "List name",
          "sort": 100,
          "access": [
            {
              "userId": "685",
              "email": "test@test.test",
              "permission": "w"
            },
            {
              "userId": "124",
              "email": "test2@test.test",
              "permission": "r"
            }
          ]
        }
      }
    ],
    "meta": {
      "type": "quickResponseList",
      "userId": "685"
    }
  }
}

Object example quickResponseList (destroy quick response list):

{
  "payload": {
    "data": [
      {
        "type": "destroy",
        "quickResponseList": {
          "id": 1338
        }
      }
    ],
    "meta": {
      "type": "quickResponseList",
      "userId": "685"
    }
  }
}

Object example quickResponse (create/edit quick response):

{
  "payload": {
    "data": [
      {
        "type": "create", // create|edit
        "quickResponseList": {
          "id": 1339
        },
        "quickResponse": {
          "id": 1197,
          "name": "Response name",
          "sort": 300,
          "parent": null,
          "text": "Detail text",
          "keywords": "test test2 test4",
          "enableAI": true
        }
      }
    ],
    "meta": {
      "type": "quickResponse",
      "userId": "685"
    }
  }
}

Object example quickResponse (destroy quick response):

{
  "payload": {
    "data": [
      {
        "type": "destroy",
        "quickResponseList": {
          "id": 1339
        },
        "quickResponse": {
          "id": 1197
        }
      }
    ],
    "meta": {
      "type": "quickResponse",
      "userId": "685"
    }
  }
}

Object example quickResponse (bulk destroy quick responses):

{
  "payload": {
    "data": [
      {
        "type": "destroy",
        "quickResponseList": {
          "id": 1339
        },
        "quickResponse": {
          "id": 1197
        }
      },
      {
        "type": "destroy",
        "quickResponseList": {
          "id": 1339
        },
        "quickResponse": {
          "id": 1198
        }
      }
    ],
    "meta": {
      "type": "quickResponse",
      "userId": "685"
    }
  }
}
Leave a request for integrator services