0

我们最近在我们的网站上实施了现在的主动聊天,我们的中央 IT 部门设置了聊天小部件,用于在空闲时间进行聊天。使用此示例http://cxdeveloper.com/article/proactive-chat-intercepting-chat-events,我已使小部件符合 OK 标准

但是,来自 Zendesk,我希望复制 Zendesk 小部件的“非工作时间”或“离线”模式,当聊天离线时它会改变其行为。

环顾四周后,我注意到该小部件可以为“label_unavailable_hours:”取值,但是我无法确定这是否适用于 ConditionalChatLink 和 ProactiveChat 模块。有没有人有创建此类功能的经验?我也看过尝试使用 chatAvailability 提取数据,但我也没有这样做。

如果有人对如何让某种下班时间的聪明人工作有见识,或者如果我在浪费时间,我很想听听。我的代码如下

$(document).ready(function() {

RightNow.Client.Controller.addComponent({
        instance_id: "spac_0",
        avatar_image: "",
        label_question: "A team member is available to help, would you like to start a chat?",
        label_avatar_image: "",
        label_dialog_header: "",
        logo_image: "",
        seconds: 2,
        enable_polling: "yes",
        div_id: "proactiveChatDiv",
        module: "ProactiveChat",
        //module: "ConditionalChatLink",
        min_agents_avail: 0, //remove this when live (when set to 0, no agents have to be free)
        min_sessions_avail: 1,
        label_unavailable_busy_template: "'All team members are busy. please email is us' + <a href='urlForEmail'>' + 'this place' + '</a>'", //out of hours
        label_unavailable_hours: "'Outside of hours' + <a href='urlForEmail'>' + 'this place' + '</a>'",
        type: 2
    },
    "https://ourWidgetCode"
);



//Widget loaded callback - this doesn't seem to work correctly hence the code below
RightNow.Client.Event.evt_widgetLoaded.subscribe(function(event_name, data) {
    if (data[0].id == "spac_0") {
        //Initialization
   
        console.log('widget loaded');
    }

    /* this wont work
    spac_0.prototype.chatAvailability = spac_0.chatAvailability;
    spac_0.chatAvailability = function()
    {
        console.log(spac_0.chatAvailability);
        {}
    };*/


    //Reset prototype
    spac_0.prototype = {};
    //Handle Chat Offered
    spac_0.prototype.chatOffered = spac_0.chatOffered;
    spac_0.chatOffered = function() {
        console.log("Chat Offered Handled");
        spac_0.prototype.chatOffered.call(this);
        //animate the widget to popup from bottom
        setTimeout(function() {
            $('div.yui-panel-container').addClass('animate');
        }, 2000)
        //delete the annoying session cookie that only allows the chat to appear once per session by default
        RightNow.Client.Util.setCookie("noChat", '', -10, '/', '', '');
    };

    //if the 'Do not ask again' is selected
    spac_0.prototype.chatRefused = spac_0.chatRefused;
    spac_0.chatRefused = function () {
        console.log("Do not ask again Selected");
        spac_0.prototype.chatRefused.call(this);
        //Reset the Cookie to be valid only for the session
        RightNow.Client.Util.setCookie("noChat",'RNTLIVE',0,'/',true,'');
    };
});

});

4

0 回答 0