Recommended skills

- Very good knowledge of Adobe After Effects

- Adobe Extendscript (After Effects Scripting - Javascript ) 


What's you need

To prepare an After Effects project you will need on your workstation :

- Adobe After Effects (up from CC2017)

- Microsoft Visual Studio Code

- ExtendScript Debugger Extension for Visual Studio Code

Useful links

After Effects Scripting Guide

The Javascript Tools Guide

After Effects Expression Reference


To define a new template in Automate-IT you need to go in the Configuration menu and select Panels

Click on Register panel button

You need to edit all fields

Name : This is the name of the template in Automate-IT (this name will be displayed in all Automate-IT UI)

Type : You can create source data with Automate-IT forms or use legacy custom html form.

Form : Select the form you want to use to generate data

Render project name : The name of the After Effect template project file - you don't need enter file extension (.aep)

Render script name : The name of the Extendscript file name that will update your template project - you don't need enter file extension (.jsx)

Workflow designer : The delivery workflow that will be triggered after the After Effect render is done.

Activated : A checkbox to activate the template for users

Generation Sequence

What happens when a user click on generate button (or preview button) ?

  1. Automate-IT will create temp folder (with the request ID) in the rendering machine.
  2. Automate-IT will copy of the template After Effects project in this temp folder
  3. Automate-IT will open the copy of the template project with After Effects
  4. The data from the form are loaded in the Extendscipt engine (the After Effects Scripting engine)
  5. The Extendscript file is executed, the copy of the After Effects project is updated with the Extendscript file.
  6. The updated After Effects project is saved
  7. Automate-IT will send to Adobe Media Encoder all items in the After Effects render queue. Output file name will be conserved.
  8. Automate-It will trigger render in AME. Output files ares written in the local temp folder. 
  9. Once the render is done, the delivery workflow is executed to copy render file to a shared storage for example
  10. The temps folder are deleted

Working folders and template path

The working folders are defined in the configuration file in each rendering machine.

Edit this file : 

C:\Program Files\Automate-it\ait_agent-2.0\ait_agent\conf\agent.ini

The TMP_DIR section will define the local temp folders.

LOGS_DIR = C:\Automate-IT\logs
TMP_DIR = T:\factoryTmp

The AE_TEMPLATE_PATH section will define where Automate-IT will find template project and Extendscript.

SERVER_ADDRESS = https://xxxxxxxx
NODE_NAME = render1
PYTHON_PATH = C:\Python_virtual_Env\vait\Scripts\python.exe
SCRIPT_PATH = C:\Program Files\Automate-IT\ait_agent-2.0\ait_agent
AE_TEMPLATE_PATH = \\\\\Sources\templates

How to manipulate Automate-IT data in my Extendscript ?

Automate-it will generate a JSON object inside the After Effect scripting engine with this path :


Example with a form with a string field with "my_text" as key.

To access this field the your Extendscript :



You can visualise the data structure of your form by double clicking the the tab in the form editor in the "current tab values.

So to update a text layer in your After Effects project :


Example with a form with a Media selector.

The data generated by the form is more complex :

  "my_text": "Hello",
  "media_selector": {
    "connector": "Directory_Connector",
    "connector_type": "directory",
    "connector_data": {
      "connector_key": "Clean",
      "co_directory": "/mnt/Sources/clean/",
      "mode": "online"
    "id": "",
    "files": [
        "file_profile": "N/A",
        "file_format": "MXF (Material eXchange Format)",
        "file_duration": "0:00:46",
        "file_name": "BIG_BUCK_BUNNY_PROMO_CLEAN.mxf",
        "file_frame_rate": 25,
        "uri": "file:///mnt/Sources/clean/BIG_BUCK_BUNNY_PROMO_CLEAN.mxf",
        "file_bytes": "298931308",
        "is_video_file": true,
        "last_modification": 1459098071,
        "file_size": "298.9 MB",
        "position": 5,
        "file_seconds": "46.200000",
        "mapped_path": "\\\\\\Sources\\clean\\BIG_BUCK_BUNNY_PROMO_CLEAN.mxf"
    "tag": "ui-id-21_root_media_selector",
    "thumbnail": "/automateit/directory/get_file_thumb?connector_key=Clean&file_path=QklHX0JVQ0tfQlVOTllfUFJPTU9fQ0xFQU4ubXhm&co_directory=L21udC9Tb3VyY2VzL2NsZWFuLw%3D%3D&t=1606903284",
    "order": 3,
    "file_path": "/mnt/Sources/clean/BIG_BUCK_BUNNY_PROMO_CLEAN.mxf",
    "file_url": "/automateit/directory/get_file?connector_key=Clean&file_path=QklHX0JVQ0tfQlVOTllfUFJPTU9fQ0xFQU4ubXhm&co_directory=L21udC9Tb3VyY2VzL2NsZWFuLw%3D%3D&t=1606903284",
    "__media_tag__": "root_media_selector",
    "__version__": ""

Lots of informations are available for the selected media but the most useful is the source file path.

To access the file path the your Extendscript :


 So to import the selected media in your After Effects project :

var mediaFile = File(JobToDo.response.content.PATH_VIDEO);
     var media_clip = app.project.importFile(new ImportOptions(mediaFile));
     // then do what you have to do with media_clip

Development environment

To prepare a project it could be difficult to use a complete Automate-IT system, especially if the system is in production.

It's possible to simulate Automate-IT and manually execute Extendscript code from Visual Studio Code.

- Open your project with After Effects

- Open your Extendscript with Visual Studio Code

- Add the data generated by Automate-it at the top of your script (inside JobToDo.response.content )

var JobToDo = {
  response : {
        content : {
            "my_text": "Hello",
            "media_selector": {
                "files": [
                            "mapped_path": "\\\\\\Sources\\clean\\BIG_BUCK_BUNNY_PROMO_CLEAN.mxf"

// main script

- Select After Effects as target app inside Visual Studio Code

- Go in the debug tab and click "Run ans debug"

...and your code is executed in After Effects