About the Zendesk app scaffold Follow



  • Avatar
    Austin Villanueva

    Hi guys, 

    I need help. I'm pretty new with zat tool. I'm using this process in the article. 

    The zat create command works fine but why does it fail in zat validate? 

    I tried the other one in other article which uses , zat new then some prompts then afterwards. I tried the zat validate .and it works fine with that process. 

    both use the same zat. but why using this scaffold doesn't work with zat validate? 

    I hope you can help me.

    Thank you



  • Avatar
    Joseph May

    Hi there Austin-

    May I ask you to share the stack trace printed when zat validate fails? Normally zat validate would be run in the /dist directory, though you could also run it in the parent directory provided you explicitly set the path:

    zat validate --path=./dist

    Hope this helps!

  • Avatar
    Austin Villanueva

    Hi Joseph,

    Yeah, this one works, I just saw it in Github documentation I didn't saw it before. I've been struggling for a long time with this one. 


  • Avatar
    Kiran Madhav

    Hi there,

    I'm in the process of migrating v1 apps to v2 by using App Scaffold template, how can I can call 'client' in the legacy_app.js. 

    My requirement is, I need to call ticket custom field values in the in legacy_app.js file or pass values to legacy_app.js file from index.js.

    Please suggest how can I achieve this.




  • Avatar
    Hector Latorre

    Having the same problem as Kiran, trying to get a reference to the client object from legacy_app.



    @Kiran this.zafClient references client from legacy_app, found it in one of the example apps from the zendesk_app_migrator repo.

  • Avatar
    Alex Pereira

    Guys, I am having an issue with the command:

     webpack --watch

    Does anyone have any ideas?

    C:\_git\internal\Zendesk\AgentsTicketApp\v2\dist>webpack --watch
    const statsPresetToOptions = require("webpack").Stats.presetToOptions;

    TypeError: Cannot read property 'presetToOptions' of undefined
    at processOptions (C:\_git\internal\Zendesk\AgentsTicketApp\v2\node_modules\webpack-cli\bin\webpack.js:289:57)
    at yargs.parse (C:\_git\internal\Zendesk\AgentsTicketApp\v2\node_modules\webpack-cli\bin\webpack.js:510:3)
    at Object.parse (C:\_git\internal\Zendesk\AgentsTicketApp\v2\node_modules\webpack-cli\node_modules\yargs\yargs.js:543:18)
    at C:\_git\internal\Zendesk\AgentsTicketApp\v2\node_modules\webpack-cli\bin\webpack.js:217:8
    at Object.<anonymous> (C:\_git\internal\Zendesk\AgentsTicketApp\v2\node_modules\webpack-cli\bin\webpack.js:512:3)
    at Module._compile (module.js:649:30)
    at Object.Module._extensions..js (module.js:660:10)
    at Module.load (module.js:561:32)
    at tryModuleLoad (module.js:501:12)
    at Function.Module._load (module.js:493:3)
    at Module.require (module.js:593:17)
    at require (internal/module.js:11:18)
    at C:\Users\<user>\AppData\Roaming\npm\node_modules\webpack-cli\bin\webpack.js:15:3
    at Object.<anonymous> (C:\Users\<user>\AppData\Roaming\npm\node_modules\webpack-cli\bin\webpack.js:512:3)
    at Module._compile (module.js:649:30)
    at Object.Module._extensions..js (module.js:660:10)
    at Module.load (module.js:561:32)
    at tryModuleLoad (module.js:501:12)
    at Function.Module._load (module.js:493:3)
    at Module.require (module.js:593:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (C:\Users\<user>\AppData\Roaming\npm\node_modules\webpack\bin\webpack.js:12:2)
    at Module._compile (module.js:649:30)
    at Object.Module._extensions..js (module.js:660:10)
    at Module.load (module.js:561:32)
    at tryModuleLoad (module.js:501:12)
    at Function.Module._load (module.js:493:3)
    at Function.Module.runMain (module.js:690:10)
    at startup (bootstrap_node.js:194:16)
    at bootstrap_node.js:666:3





    Windows 10 64bit

    C:\_git\internal\Zendesk\AgentsTicketApp\v2>node -v

    C:\_git\internal\Zendesk\AgentsTicketApp\v2>webpack -v

    C:\_git\internal\Zendesk\AgentsTicketApp\v2>webpack-cli -v

    C:\_git\internal\Zendesk\AgentsTicketApp\v2>npm -v

    C:\_git\internal\Zendesk\AgentsTicketApp\v2>foreman -v




    I uninstalled webpack-cli both local and global, and reinstalled it global only. It seems to have worked.



  • Avatar
    Joseph May

    Hi Alex-

    Looks like you are in the wrong directory. Can you cd into the /dist directory and try again?

  • Avatar
    Alex Pereira

    Hi Joseph,

    I updated the original post. It seems to be solved now.



  • Avatar
    Joseph May

    Great to hear, Alex!

  • Avatar


    I have migrated my v1 application to v2 and I am using scaffold boilerplate. Application runs perfectly when running in the local environment. I tried to start Karma in order to build unit tests and I got the following error message. 

    PhantomJS 2.1.1 (Windows 8.0.0) LegacyApp #renderMain switches to the main template FAILED
    TypeError: undefined is not an object (evaluating 'this._metadata.settings[name]') in spec/src/legacy_app_spec.js (line 557)
    doInit@[native code]
    Error: <spyOn> : could not find an object to spy upon for switchTo()
    Usage: spyOn(<object>, <methodName>) in node_modules/jasmine-core/lib/jasmine-core/jasmine.js (line 4927)
    TypeError: undefined is not an object (evaluating 'app.renderMain') in spec/src/legacy_app_spec.js (line 2247)
    PhantomJS 2.1.1 (Windows 8.0.0): Executed 5 of 5 (1 FAILED) (0.019 secs / 0 secs)

  • Avatar
    Joseph May

    Hi Zumartic-

    Thanks for writing in. The issue here is relative to your OS rather than our app scaffold - I would recommend upgrading to Windows 10 (and taking advantage of the Windows Subsystem for Linux). When searching the first error in the stacktrace there, I found the following:

    Error running tests using Karma

    Use community QtWebKit >= 5.9

    I suggest following the latter link (the former is closed, anyway) to keep up with notifications regarding QtWebKit. You could try to strictly target ES5 as PhantomJS doesn't support ES6 yet until the QtWebKit fix is implemented.


  • Avatar

    Hi I am trying move an app from v1 to v2 using the scaffold. I am facing error like below when I run webpack --watch: 

    (node:17256) DeprecationWarning: Tapable.plugin is deprecated. Use new API on `.hooks` instead
    (node:17256) DeprecationWarning: Tapable.apply is deprecated. Call apply on the plugin directly instead
    throw new Error(

    Error: Chunk.entrypoints: Use Chunks.groupsIterable and filter by instanceof Entrypoint instead
    at Chunk.get (C:\Users\ssathiskumar\AppData\Roaming\npm\node_modules\webpack\lib\Chunk.js:846:9)
    at D:\Documents\Projects\Zendesk\EADS-49753\v2\UPS6\zendesk_app_migrator-master\src\app_scaffold\node_modules\extract-text-webpack-plugin\dist\index.js:176:48
    at Array.forEach (<anonymous>)
    at D:\Documents\Projects\Zendesk\EADS-49753\v2\UPS6\zendesk_app_migrator-master\src\app_scaffold\node_modules\extract-text-webpack-plugin\dist\index.js:171:18
    at AsyncSeriesHook.eval [as callAsync] (eval at create (C:\Users\ssathiskumar\AppData\Roaming\npm\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:32:10), <anonymous>:7:1)
    at AsyncSeriesHook.lazyCompileHook (C:\Users\ssathiskumar\AppData\Roaming\npm\node_modules\webpack\node_modules\tapable\lib\Hook.js:154:20)
    at Compilation.seal (C:\Users\ssathiskumar\AppData\Roaming\npm\node_modules\webpack\lib\Compilation.js:1242:27)
    at hooks.make.callAsync.err (C:\Users\ssathiskumar\AppData\Roaming\npm\node_modules\webpack\lib\Compiler.js:546:17)
    at _done (eval at create (C:\Users\ssathiskumar\AppData\Roaming\npm\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:32:10), <anonymous>:9:1)
    at _err1 (eval at create (C:\Users\ssathiskumar\AppData\Roaming\npm\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:32:10), <anonymous>:32:22)
    at _addModuleChain (C:\Users\ssathiskumar\AppData\Roaming\npm\node_modules\webpack\lib\Compilation.js:1093:12)
    at processModuleDependencies.err (C:\Users\ssathiskumar\AppData\Roaming\npm\node_modules\webpack\lib\Compilation.js:1005:9)
    at process._tickCallback (internal/process/next_tick.js:61:11)

    The errors don't stop there. Even if I try to resolve this, I get another error like this :

    ERROR in multi babel-polyfill ./src/javascripts/index.js ./src/stylesheets/app.scss
    Module not found: Error: Can't resolve 'babel-loader' in 'D:\Documents\Projects\Zendesk\EADS-49753\v2\UPS4\zendesk_app_migrator-master\src\app_scaffold'
    @ multi babel-polyfill ./src/javascripts/index.js ./src/stylesheets/app.scss app[1]


    Can someone help me out. Thanks in advance.

  • Avatar

    @Saranya does this help?



  • Avatar
    John E. Parra J.

    @charlesNadeau thanks for this tutorial, but this work for chat apps? or only support apps?

  • Avatar
    Charles Nadeau

    Update: This article has been revised to point to the readme for the app scaffold on Github:


    The readme is the source of truth for the Zendesk app scaffold.

    The scaffold uses several third-party technologies (see the readme). For help on using them, see the documentation provided by the developers of these technologies.

Please sign in to leave a comment.

Powered by Zendesk