Jump to content

Kayako Problems


Recommended Posts

I've a problem here. When I click Port Reply to a ticket using whmcs/kayako integration, the button disappears and nothing happens. How do I fix this?


KayKao support is very lazy, 5 days and still I don't know the direction where they're leading the ticket to.

Link to comment
Share on other sites

They are currently working on it,. and from what I can see and test, they are almost done.


I am testing with CVS versión.


One thing I do notice is that when using the Portal template, the vertical menu takes up so much space that it deforms kayako tables completely. What is supposed to be on one line turns into like 3 in some cells. Also the CSS changes a little bit, but I think that is a bug they are working on too.


Not sure.

Link to comment
Share on other sites

1) I am unable to select Kayako from the support dropdown within WHMCS

You need to upload the kayako support module from the kayako cvs package. It's in there ;)

2) the Kayako loginshare for WHMCS is blank with no possible fields to fill

I'm pretty sure everyone's is like that right now. (Mine is)

Link to comment
Share on other sites

OK so i'm one of many people waiting for this to be finished which i looks like it's close to be.


but the latest on the kayako forum is


The latest CVS is already in a code freeze state, apart from 2-3 bug fixes it will be marked as stable once the WHMCS issue is resolved


so Matt what's the WHMCS issue and when will you have a fix for them?

Link to comment
Share on other sites


That's the first I've heard of any issue on our side. You'll have to get some more information from them as they haven't contacted us relating to anything - ALL the issues so far have been on their side. My understanding of that comment is that they have an issue with the WHMCS integration - not us.



Link to comment
Share on other sites

hi Matt


here is the other part of that thread

As for the client area not showing any open tickets, The integration code supplied by WHMCS does not allow us to override the clientarea.php, I will email Matt and see if its a possibility that he can implement this for us but it is entirely upon them to finish this part. We have completed the integration for every section that we were provided access to (Which specifically deals with support aspects of their product and not the clientarea.php)


I know it says "I will E-mail Matt" but the way and speed they are running at it'll be next year. Can i ask you contact them ASAP

Link to comment
Share on other sites

Oh, ok well then I have a solution for you!

	<{displaytemplate name="header"}>

<p><strong>Support Tickets</strong> (<a href="submitticket.php">Submit Ticket</a>)</p>
<table align="center" style="width:100%" class="clientareatable" cellspacing="1">
<tr class="clientareatableheading"><td>Ticket ID</td><td>Subject</td><td>Date</td><td>Department</td><td>Status</td><td>Urgency</td></tr>
<{foreach key=key value=ticket from=$ticketlist}>
<tr class="clientareatableactive"><td><a href="<{if $iswhmcs==true}>viewticket.php?<{else}><{$baseurl}><{/if}>_m=tickets&_a=viewticket&ticketid=<{$ticket[ticketid]}>"><{$ticket[fticketid]}></a></td><td><div align="left"><img src="images/support/article.gif" hspace="5" align="middle" alt="" /><a href="<{if $iswhmcs==true}>viewticket.php?<{else}><{$baseurl}><{/if}>_m=tickets&_a=viewticket&ticketid=<{$ticket[ticketid]}>"><strong><{$ticket[subject]}></a></div></td><td><{$ticket[lastactivity]}></td><td><{if $ticket[department] == 'private'}><{$language[private]}><{/if}><{if $ticket[department] != 'private'}><{$ticket[department]}><{/if}></td><td width="120"><font color="<{$ticket[statuscolor]}>"><{if $ticket[status] == 'private'}><{$language[private]}><{/if}><{if $ticket[status] != 'private'}><{$ticket[status]}><{/if}></font></td><td width="80"><font color="<{$ticket[prioritycolor]}>"><{$ticket[priority]}></font></td></tr>

<tr class="clientareatableactive"><td colspan="6">No Tickets currently open</td></tr>


 <{displaytemplate name="footer"}>


You will need to paste this in the templates -> tickets -> ticketlist in your SupportSuite admin.


Just paste the code there. What will happen is the last reply to the ticket will go up top.


That shows it to be a lot like what is in the original portal theme.

Link to comment
Share on other sites



I've had this WHMCS/Kayako integration working since before Christmas. It is abit tricky but it works fine.


The only issue I have is with downloads but that appears to be a bug. The CVS version from Kayako released a few days ago that should 'work', still works and gave us no problems or additional features over the first release.


:) It is possible - just persistence I guess.

Link to comment
Share on other sites

hehe, it it works fine for you... you havnt messed with it enough!:D


To fix your download issue;


In /whmcspath/modules/support/kayako/download.php (line 9)



$_REQUEST["_a"] = "viewdownload"; $_GET["_a"] = "viewarticle"; $_POST["_a"] = "viewarticle";


and replace with

$_REQUEST["_a"] = "viewdownload"; $_GET["_a"] = "viewdownload"; $_POST["_a"] = "viewdownload";


or simply change the instances of "viewarticle" to "viewdownload" in that line

Link to comment
Share on other sites

I have ;) Honest.. Involved loads of changes here and there with our own setup - which is annoying as I liked having things seperate.


Also found out if you delete/rename the language English (UK) in Kayako, things go missing - bit of a bug there (even if you have another language selected).


Cheers for the tip! Much appreciated (and works well).


We also hacked around the WHMCS templates to pull ticket info from the Kayako database for the logged in user.


Pics attached.



Link to comment
Share on other sites

We also hacked around the WHMCS templates to pull ticket info from the Kayako database for the logged in user.

Pics attached.


Something ugly like this? :-P


This is beta code, and I've never used SMARTY before, but if it helps somebody, great. (EDIT: By the way, I based the userid/API lookups on what a query log showed Kayako actually doing with WHMCS... it should be close to correct. Also, great to see the integration between them is NOT email address dependent!)


While editing "clientareahome.tpl" replace the Support Tickets table with:


// It is probably not wise to put this here, but kind of a pain
// to put anywhere else and call from template
// Consider making a special read-only SQL user for this purpose?
$kayakoHost = "localhost";
$kayakoUser = "dbuser";
$kayakoPass = "dbpass";
$kayakoDB   = "dbname";

$kDB = mysql_connect($kayakoHost,$kayakoUser,$kayakoPass);
if ($kayakoDB) mysql_select_db($kayakoDB,$kDB);
else print '<p align="center" style="color: #CC0000">NOTE: Could not access ticket database.</p>';

// First, get the WHMCS user id
$arrdetails = $this->get_template_vars('clientsdetails');
$whmcsID = $arrdetails['userid'];
$kayakoID = "";

// Look up Kayako's userid searching the API userid field for the WHMCS id
// Correct - this is not email based!
if ($kDB) {
  $result = mysql_query("SELECT userid FROM swusers WHERE loginapi_moduleid = '300' AND loginapi_userid = '$whmcsID'",$kDB);
  $row = mysql_fetch_row($result);
  $kayakoID = $row[0];

if ($kayakoID > '') {
  // Now, find the email address for this user (see why shortly)
  $result = mysql_query("SELECT email FROM swuseremails WHERE userid = '$kayakoID'",$kDB);
  $row = mysql_fetch_row($result);
  $kayakoEmail = $row[0];

  // Finally, get the tickets based on email NOT by userid
  // This is because tickets can have multiple emails, and therefore users... (right?)
  // This may need revision or to hide closed tickets - I decided to show them
  $result = mysql_query("SELECT tickets.ticketid,tickets.lastactivity,tickets.ticketmaskid,tickets.subject," .
       "depts.title AS dept,status.title AS status,prio.title AS priority FROM swtickets tickets " .
       "LEFT JOIN swdepartments depts ON depts.departmentid = tickets.departmentid " .
       "LEFT JOIN swticketstatus status ON status.ticketstatusid = tickets.ticketstatusid " .
       "LEFT JOIN swticketpriorities prio ON prio.priorityid = tickets.priorityid " .
       "WHERE email IN ('$kayakoEmail') ORDER BY lastactivity DESC LIMIT 5", $kDB);

  if ($result)
  while ($row = mysql_fetch_array($result)) {
      $row["date"] = strftime("%d %b %Y %I:%M %p",$row["lastactivity"]);
      $this->append('tickets', $row);

<table align="center" style="width:90%" class="clientareatable" cellspacing="1">
<tr class="clientareatableheading"><td>{$LANG.supportticketsdate}</td><td>{$LANG.supportticketssubject}</td>
{foreach key=cid item=ticket from=$tickets}
<tr class="clientareatableactive"><td>{$ticket.date}</td>
<td><div align="left"><img src="images/support/article.gif" hspace="5" align="middle" alt="" /><a
href="viewticket.php?_m=tickets&_a=viewticket&ticketid={$ticket.ticketid}">#{$ticket.ticketmaskid} - {$ticket.subject}</a></div></td>
<td width="60">{$ticket.status}</td>
<td width="60">{$ticket.priority}</td>
<td width="120">{$ticket.dept}</td></tr>
<tr class="clientareatableactive"><td colspan="5">{$LANG.supportticketsnoopentickets}</td></tr>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated