Jump to content

Search the Community

Showing results for tags 'tickets'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • General
    • News
    • The Lounge
  • Community
    • Pre-Sales Questions
    • Support
    • The Marketplace
    • Contribute
    • Show Off
    • Feature Requests
    • Bugs
    • Contests
  • Developer Corner
    • General
    • Extensions
  • BlestaStore's Forum
  • BlestaStore's BlestaCMS
  • BlestaStore's Resellers
  • BlestaStore's BlestaForums
  • BlestaStore's Promotions
  • CubeData's Official Announcements From CubeData
  • CubeData's Peer Support
  • CubeData's Resellers
  • ModulesGarden Club's Topics
  • Blesta Addons's Topics

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start





Website URL








Found 11 results

  1. I wanted to share that we've released our "Help Scout for Blesta" plugin for anyone using Help Scout for support, and Blesta for billing. View Blesta Customers in Help Scout Empower your team with account knowledge to deliver superior service. This plugin helps customer-centric businesses provide fast, personalized service. Help Scout For Blesta by 5 Star Plugins connects customer data to your support mailbox. - Customer name - Services - Plan - Price - Customer since date Focus on customers, not systems. Blesta For Help Scout plugin puts customer data where you need it most, where support happens. Solve problems in less time without the headache of switching windows and logins to straddle two systems. No Coding Required Connect Help Scout and Blesta. After setting up the plugin your support team will gain instant visibility to customers in Help Scout. Trusted Technology, We Use It Too We use Help Scout For Blesta plugin for our hosting company. In fact we built it for ourselves! Now we are offering our solution other businesses that could benefit too. Quality coding developed in the United States with the highest level of security standards. View on the Blesta Marketplace Buy Now
  2. I would greatly value the ability to search the content of tickets. You see, I can't quite believe that no one has suggested this yet for Blesta or WHMCS...but I want to search the content of tickets and I can't. I've taken a look at WHMCS and you can't do it with WHMCS either. Yet, it is a pretty standard feature of helpdesk software (of which I have used many). Customers never subject title their emails correctly (if at all!) and often talk about multiple issues under one ticket (which often has a vague subject line which doesn't cover it). Therefore, the need to search the messages of tickets is a must in my eyes and if it were achievable, would be a plus point for Blesta. It is possible that this hasn't been developed already because of the strain? to search ticket content, but if other software can achieve it...surely Blesta can too? Also submitted to: https://requests.blesta.com/topic/search-content-of-tickets (posted here for awareness)
  3. Hello - Have a quick question and maybe this will turn into a feature request (if it hasn't already), but I want to be able to add the Client's Name to the "Staff Ticket Updated" email that is sent out, that way it shows what client submitted the Ticket without having to login to find out. I tried using the following: Client Name: {contact.first_name} {contact.last_name} But that doesn't seem to display the Client's Name at all. Additionally, is there a tag that allows for a direct URL to the ticket itself, so that way you can click that URL and it brings you right to the Ticket itself? Thanks.
  4. Hello - When Accounts are created, typically the "business owner" is the primary Account Contact, however more often I am adding additional Contacts to the account for their Support Personnel and every time a response is submitted to a Ticket, the Primary Account Holder also gets an email. Is there a way to have it where if there is more then one Contact on the account, you can designate who Ticket Responses go to? I thought they only went back to the person who submitted the ticket but it was brought to me attention that the Primary Account Holder gets them as well. Maybe this needs to be a Feature Request for the Support Manager Plugin? Thanks in advance.
  5. Hi, I have a question how to display indicator what tickets are currently open (without answer) as I don't want to click each time on tickets and see how many of them are not answered. Just for clarification https://prnt.sc/hv2gij how to show number of unanswered ticket and not ticket that I already answer and they are open?
  6. email going to spam folder and marked as spam [invoices/tickets/mails] all type emails all record set already on server spf rdns dkim.
  7. Hello - I am using the Support Portal plugin and have a quick question, is there something to enable administration notifications that a ticket had been sitting for X amount of days? Something that sends an email reminder to the Staff person it is assigned to in order to remind them they have a ticket in their queue? I have an employee who constantly forgets to reply to tickets after assigning them to himself and they often go unnoticed by others, would be nice if I could set it to "nag" if 24 hours has passed or something. Thanks in advance.
  8. I'm having trouble setting up the forwarder in cPanel as nothing seems to work. I tried both /usr/bin/php /home/username/public_html/blesta/plugins/support_manager/pipe.php /usr/local/bin/php /home/username/public_html/blesta/plugins/support_manager/pipe.php Blesta is in a subfolder named 'Blesta'. The error message I get is Action: failed Final-Recipient: rfc822;|/home/USERNAME/usr/local/bin/php /home/USERNAME/public_html/blesta/plugins/support_manager/pipe.php Status: 5.0.0 The path to pipe.php is correct - what else could be wrong? I also checked with my host & confirmed that Mailparse is installed & active.
  9. resolvent : $reply_data = array( 'ticket_id'=>9, 'vars' => array( 'ticket_id'=>9, 'staff_id' => null, // the reply is from this staff user 'client_id' => 2, // the reply is from this client user 'contact_id' => null, // the reply is from this client contact user 'type' => "reply", // this is a ticket reply 'details' => "API reply", // the ticket reply description 'status' => "open", // status of the ticket 'staff_id' => null, // the staff user the ticket is assigned to ), 'files' => null, 'new_ticket' => false // this reply is for a newly created ticket ); $response = $api->post("support_managerpro.support_managerpro_tickets", "addReply", $reply_data); ================================================================================================================================= Now i need to use api reply tickets. But I've had some problems. This is my code: $vars=array('ticket_id'=>9,'details'=>'API回复工单','action_type'=>'reply','type'=>'reply','staff_id'=>null,'contact_id'=>null,'status'=>'open'); $ticket= $api->post("support_managerpro.support_managerpro_tickets", "addReply",array("ticket_id"=>9,$vars)); print_r($ticket->raw()); when i use $ticket= $api->post("support_managerpro.support_managerpro_tickets", "addReply",array("ticket_id"=>9,$vars)); this page return {"message":"An unexpected error occured.","response":"Internal error: Failed to retrieve the default value"} when i use $ticket= $api->get("support_managerpro.support_managerpro_tickets", "addReply",array("ticket_id"=>9,$vars)); this page return this error info:{"message":"The requested resource does not exist.","response":null} What should I do to use API to achieve a reply?thanks! support_managerpro:: Model's addReply method(): /** * Adds a reply to a ticket. If ticket data (e.g. department_id, status, priority, summary) have changed * then this will also invoke SupportManagerproTickets::edit() to update the ticket, and record any log entries. * * Because of this functionality, this method is assumed to (and should) already be in a transaction when called, * and SupportManagerproTickets::edit() should not be called separately. * * @param int $ticket_id The ID of the ticket to reply to * @param array $vars A list of reply vars, including: * - staff_id The ID of the staff member this reply is from (optional) * - client_id The ID of the client this reply is from (optional) * - contact_id The ID of a client's contact that this reply is from (optional) * - type The type of reply (i.e. "reply, "note", "log") (optional, default "reply") * - details The details of the ticket (optional) * - department_id The ID of the ticket department (optional) * - summary The ticket summary (optional) * - priority The ticket priority (optional) * - status The ticket status (optional) * - ticket_staff_id The ID of the staff member the ticket is assigned to (optional) * @param array $files A list of file attachments that matches the global FILES array, which contains an array of "attachment" files * @param boolean $new_ticket True if this reply is apart of ticket being created, false otherwise (default false) * @return int The ID of the ticket reply on success, void on error */ public function addReply($ticket_id, array $vars, array $files = null, $new_ticket = false) { $vars['ticket_id'] = $ticket_id; $vars['date_added'] = date("c"); if (!isset($vars['type'])) $vars['type'] = "reply"; // Remove reply details if it contains only the signature if (isset($vars['details']) && isset($vars['staff_id'])) { if (!isset($this->SupportManagerproStaff)) Loader::loadModels($this, array("SupportManagerpro.SupportManagerproStaff")); $staff_settings = $this->SupportManagerproStaff->getSettings($vars['staff_id'], Configure::get("Blesta.company_id")); if (isset($staff_settings['signature']) && trim($staff_settings['signature']) == trim($vars['details'])) $vars['details'] = ""; } // Determine whether or not options have changed that need to be logged $log_options = array(); // "status" should be the last element in case it is set to closed, so it will be the last log entry added $loggable_fields = array('department_id' => "department_id", 'ticket_staff_id' => "staff_id", 'summary' => "summary", 'priority' => "priority", 'status' => "status"); if (!$new_ticket && (isset($vars['department_id']) || isset($vars['summary']) || isset($vars['priority']) || isset($vars['status']) || isset($vars['ticket_staff_id']))) { if (($ticket = $this->get($ticket_id, false))) { // Determine if any log replies need to be made foreach ($loggable_fields as $key => $option) { // Save to be logged iff the field has been changed if (isset($vars[$key]) && property_exists($ticket, $option) && $ticket->{$option} != $vars[$key]) $log_options[] = $key; } } } // Check whether logs are being added simultaneously, and if so, do not // add a reply iff no reply details, nor files, are attached // i.e. allow log entries to be added without a reply/note regardless of vars['type'] $skip_reply = false; if (!empty($log_options) && empty($vars['details']) && (empty($files) || empty($files['attachment']['name'][0]))) $skip_reply = true; if (!$skip_reply) { $this->Input->setRules($this->getReplyRules($vars, $new_ticket)); if ($this->Input->validates($vars)) { // Create the reply $fields = array("ticket_id", "staff_id", "contact_id", "type", "details", "date_added"); $this->Record->insert("support_repliespro", $vars, $fields); $reply_id = $this->Record->lastInsertId(); // Update reply ticket status to awaiting_reply if replyed by staff if (isset($vars['staff_id'])){ if ($vars['staff_id'] > 0 && $vars['type'] == "reply" && $vars['status'] != "awaiting_reply"){ $this->edit($vars['ticket_id'], array('status' => "awaiting_reply")); } } // Handle file upload if (!empty($files['attachment'])) { Loader::loadComponents($this, array("SettingsCollection", "Upload")); // Set the uploads directory $temp = $this->SettingsCollection->fetchSetting(null, Configure::get("Blesta.company_id"), "uploads_dir"); $upload_path = $temp['value'] . Configure::get("Blesta.company_id") . DS . "support_managerpro_files" . DS; $this->Upload->setFiles($files, false); $this->Upload->setUploadPath($upload_path); $file_vars = array('files' => array()); if (!($errors = $this->Upload->errors())) { // Will not overwrite existing file $this->Upload->writeFile("attachment", false, null, array($this, "makeFileName")); $data = $this->Upload->getUploadData(); // Set the file names/paths foreach ($files['attachment']['name'] as $index => $file_name) { if (isset($data['attachment'][$index])) { $file_vars['files'][] = array( 'name' => $data['attachment'][$index]['orig_name'], 'file_name' => $data['attachment'][$index]['full_path'] ); } } $errors = $this->Upload->errors(); } // Error, could not upload the files if ($errors) { $this->Input->setErrors($errors); // Attempt to remove the files if they were somehow written foreach ($file_vars['files'] as $files) { if (isset($files['file_name'])) @unlink($files['file_name']); } return; } else { // Add the attachments $file_fields = array("reply_id", "name", "file_name"); foreach ($file_vars['files'] as $files) { if (!empty($files)) $this->Record->insert("support_attachmentspro", array_merge($files, array('reply_id' => $reply_id)), $file_fields); } } } } } // Only attempt to update log options if there are no previous errors if (!empty($log_options) && !$this->errors()) { // Update the support ticket $data = array_intersect_key($vars, $loggable_fields); $ticket_staff_id_field = array(); if (isset($data['ticket_staff_id'])) $ticket_staff_id_field = (isset($data['ticket_staff_id']) ? array('staff_id' => $data['ticket_staff_id']) : array()); $this->edit($ticket_id, array_merge($data, $ticket_staff_id_field), false); if (!($errors = $this->errors())) { // Log each support ticket field change foreach ($log_options as $field) { $log_vars = array( 'staff_id' => (array_key_exists("staff_id", $vars) ? $vars['staff_id'] : $this->system_staff_id), 'type' => "log" ); $lang_var1 = ""; switch ($field) { case "department_id": $department = $this->Record->select("name")->from("support_departmentspro")-> where("id", "=", $vars['department_id'])->fetch(); $lang_var1 = ($department ? $department->name : ""); break; case "priority": $priorities = $this->getPriorities(); $lang_var1 = (isset($priorities[$vars['priority']]) ? $priorities[$vars['priority']] : ""); break; case "status": $statuses = $this->getStatuses(); $lang_var1 = (isset($statuses[$vars['status']]) ? $statuses[$vars['status']] : ""); break; case "ticket_staff_id": if (!isset($this->Staff)) Loader::loadModels($this, array("Staff")); $staff = $this->Staff->get($vars['ticket_staff_id']); if ($vars['ticket_staff_id'] && $staff) $lang_var1 = $staff->first_name . " " . $staff->last_name; else $lang_var1 = Language::_("SupportManagerproTickets.log.unassigned", true); default: break; } $log_vars['details'] = Language::_("SupportManagerproTickets.log." . $field, true, $lang_var1); $this->addReply($ticket_id, $log_vars); } } } // Return the ID of the reply if (isset($reply_id)) return $reply_id; }
  10. Hi, I know this issue has been brought to light a few times, but the solution has usually been to manually do some SQL and this is happening far too often for that to be a suitable fix for me. Version: Blesta 3.2.0 with all Plugins up-to-date. The problem: You can see there is an issue when logging in to the Admin Dashboard and looking at the System Status widget: "There are one or more cron tasks that have been executing for more than 60 minutes. View Automated Tasks." On digging in to the Tasks, the "Download Tickets" job is the issue. The spinner graphic continuously spins. The mail server and credentials are fine. How often: It happened once or twice previously, but since upgrading to 3.2.0 this has happened on either a weekly or sometimes daily basis. Sometimes the issue seems to fix itself (I know the lock file clears after 6 hours) but sometimes it's not suitable to wait this long and we are forced to use fixes detailed in the below threads. Hacky fixes used so far: http://www.blesta.com/forums/index.php?/topic/1805-there-are-one-or-more-cron-tasks-that-have-been-executing-for-more-than-60-minutes/ http://www.blesta.com/forums/index.php?/topic/1052-system-status-there-are-one-or-more-cron-tasks-that-have-been-executing-for-more-than-60-minutes/ Please can you take a look at this as soon as possible. Thank you, Daniel.
  11. I'm back again Im trying to get ticket email replys through to my support manager. I presume as i'm using the IMAP option, the email piping threads don't apply to me, at least the documentaion suggests this. In my department settings I have added an email and IMAP settings for an email i control; (the root domain, but not my blesta subdomian) for exapmle support@mydomain.com My blesta install is at hosting.mydomain.com I assume as IMAP settings don't not care what the domain is, so long as the settings are correct. Is that right? So assuming my settings are correct... I use zoho for the email in question. Email: support@mydomain.com Username: support@mydomain.com Pasword: *************** SSL (port) 993 Host (IMAP server) imap.zoho.com The settings work on a client. so im sure it not a settings issue. However cron never works, just the same since I started testing my support manager setup. The 5 min cron for download tickets has never ran, all other cron tasks are fine, but this just keeps trying to run and the little animation keeps whirring around. When i look in cron logs there is nothing there about support emails. any ideas? PS I have deleted all the database entries in cron_task ID 19 as per this thread http://www.blesta.com/forums/index.php?/topic/4168-support-department-imap-not-working/?hl=imap%20support But still not working.
  • Create New...