Tutorial: ada

ada

Ada Chat Bot

How to Install

  1. Go to Portal’s Control Panel, Tags Manager;
  2. Click “Create Tag” and select “Custom JS”;
  3. Give it a name (e.g. “Ada”), give a description;
  4. Assign a “On App Init” condition to this tag
  5. Insert the following contents of the Tag:
(async () => {
    const BOT_HANDLE = 'YOUR-BOT-HANDLE';
    
    async function updateTags() {
        const { data: { tags = [] } } = await Playtech.API.user.getPlayerTags([
            'BetBuddy/demo_erratic',
            'BetBuddy/demo_time',
            'BetBuddy/demo_spent',
            'Adachatbot/proactive_bubbles',
        ].join(','));

        for (const tag of tags) {
            switch (tag.name) {
                case 'Adachatbot/proactive_bubbles': {
                    await window.adaEmbed?.setMetaFields({
                        next_answer_to_run: tag.value
                    });

                    await window.adaEmbed?.triggerCampaign('Proactive_bubbles');
                    break;
                }

                case 'BetBuddy/demo_erratic':
                    await window.adaEmbed?.triggerCampaign('Erratic_behavior');
                    break;

                case 'BetBuddy/demo_time':
                    await window.adaEmbed?.triggerCampaign('Increase_time');
                    break;

                case 'BetBuddy/demo_spent':
                    await window.adaEmbed?.triggerCampaign('Increase_spent');
                    break;
            }
        }
    }

    function init() {
        async function onScriptLoad() {
            const response = await Playtech.API.server.getJWTToken();

            await window.adaEmbed.start({
                handle: BOT_HANDLE,
                sensitiveMetaFields: {
                    jwt_token: response?.data?.jwtToken ?? '',
                },
                zdChatterAuthCallback: (callback) => {
                    (async () => {
                        const response = await Playtech.API.server.getJWTToken();

                        callback(response?.data?.jwtToken ?? '');
                    })();
                }
            });

            await updateTags();
        }

        if (window.adaEmbed) {
            onScriptLoad();
        } else {
            const script = document.createElement('script');

            script.id = '__ada';
            script.type = 'text/javascript';
            script.onload = onScriptLoad;
            script.async = true;
            script.setAttribute('data-lazy', 'true');
            script.setAttribute('data-handle', BOT_HANDLE);
            script.src = 'https://static.ada.support/embed2.js';

            document.getElementsByTagName('head')[0].appendChild(script);
        }
    }


    if (Playtech.API.auth.isLoggedIn) {
        init();
    }

    Playtech.on('player-tag-change', updateTags);
    Playtech.on(Playtech.Events.LOGGED_IN, init);
    Playtech.on(Playtech.Events.LOGGED_OUT, function () {
        window.adaEmbed?.reset();
        window.adaEmbed?.stop();
    });
})();