Giter Site home page Giter Site logo

importer's Introduction

Awesome Support

Build Status Scrutinizer Code Quality Code Coverage

Awesome Support is the most advanced ticketing system for WordPress. It is the result of two years of work, research and improvement. Most of its features are an answer to users requests and that's what makes it the best support plugin for WordPress.

Requirements

  • WordPress 4.0+
  • PHP 5.6+

Below are some info from the plugin's repository on WordPress.org.

WordPress plugin Tested WordPress version WordPress.org rating Wordpress

Installation

To get started right away:

git clone [email protected]:Awesome-Support/Awesome-Support.git awesome-support && cd awesome-support && composer install && npm install

Not a developer?

If you're not a developer you're better off using the production version available on WordPress.org.

Dependencies

If you're not familiar with Composer you should have a look at the quick start guide.

The development version works a little differently than the production version. The GitHub repo is "raw": the plugin dependencies aren't present.

Requirements

In order to work with the development branch you need the following on your development environment:

We use automated scripts to build the production version with all the required files, but if you wish to contribute or simply try the latest features on the development branch, you will need to install the dependencies manually.

Don't sweat it! It's no big deal. Dependencies are managed by Composer. Once you downloaded the master branch, there is only one thing you need to do: open the terminal at the plugin's location and type

composer install

This command will do a few things for you:

  1. Install the plugin dependencies (via Composer)
  2. Install Grunt & all Grunt modules (via npm install)
  3. You should now be able to launch the default Grunt task with grunt

Contributing

If you want to contribute to the plugin or just follow the development, all chats will be held on the Gitter channel.

Gitter

importer's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

importer's Issues

Problems with Zendesk importer

We have been having problems with the Zendesk importer. It seems that Zendesk API does not always have a ticket event for some comments which means some comments do not get imported. Additionally sometimes tickets events for closing a ticket do not exist which leaves us with a bunch of open tickets after importing.

Therefore changes will need to be made to make the importer look at the comments.json for each ticket and grab the comments from there instead of from ticket_events.json.

Allow import of Zendesk backup

It is possible to get a backup from Zendesk which is JSON formatted. It would be great if the importer supported uploading of a backup. It would speed the process up considerably. I think the only thing that would need to be done would be for it download the attachments as they are not included in the backup.

Importer/Inserter return values

I don't believe that $ticketId in insertTicket will ever be WP_Error because wp_insert_post's second argument $wp_error is false.

$ticketId = wpas_insert_ticket([

This will require a fix to wpas_insert_ticket which is part of Awesome Support plugin (not the importer).

The same goes for $response in insertHistoryItem, it is missing the second argument $wp_error which should be true:

$response = wp_update_post([

Cache API requests

It would be great if there was an option to cache API requests. Sometimes on large import it throws an error after a certain amount of time. Also API requests for most of these service desks are rate limited - for example Zendesk only allows 10 requests per minute! If the requests were cached on the file system it would make the next try quicker to pick up where it left off. Right now I am using something like this in my ApiController.

protected function getCached($url)
{
    $root = $_SERVER['DOCUMENT_ROOT'].'/importer-cache/tickets/';
    $filename = sha1($url);
    if (!property_exists($this, 'getCachedFiles')) {
        if (!file_exists($root)) {
            mkdir($root, 0777, true);
        }
        $this->getCachedFiles = scandir($root);
    } 
    if (in_array($filename, $this->getCachedFiles)) {
        $packet = file_get_contents($root.$filename);
    } else {
        $packet = $this->get($url);
        file_put_contents($root.$filename, $packet);
    }
    return $packet;
}

If there was a way to clear the cache that would be good too. And a way to reset the state of Awesome Support (delete all posts and all associated postmeta) just for the purposes of resetting an import.

Display progress information during import

It would be very helpful if this plugin supported some kind of live logging where it reported what ticket ID it was on during the import process. That way, if there is an issue, it would be easy to track down what ticket it occurred on.

Update to Help Scout API

Help Scout has retired their so-called API 1.0 - they are now on API 2.0. While they support legacy API 1.0 keys, users are not allowed to create new ones, so I'm stuck.

Hoping you can upgrade the Importer so I can purchase Awesome Support.

The information about their API 2.0 can be found here:

https://developer.helpscout.com/mailbox-api/
https://developer.helpscout.com/mailbox-api/overview/v1-v2-differences/
https://docs.helpscout.com/article/1208-migrating-to-mailbox-api-2-0
https://docs.helpscout.com/article/1140-mailbox-api

Help!

Respectfully,
JD

Document necessary PHP ini changes

We have a Zendesk instance that has a lot of tickets. In order to get the importer to work we had to change our php.ini with the following changes so that the importer did not time out.

memory_limit = -1
PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 262144 bytes)

max_execution_time = 0
PHP Fatal error: Maximum execution time of 300 seconds exceeded

I recommend adding to README.md the possibility of the user having to change these values if they are trying to import a large data set. I used the Error Log Monitor wordpress plugin in order to view the actual errors. But the importer didn't give any details only simply stated:

An error occurred during the import process.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.