To drive an After Effects video from JSON, you rig a template with Templater, point it at a JSON file or a JSON feed, and let each object in that file become one version of the video. The work is in the mapping. Once the layers know which keys they listen to, the rest is previewing a few rows and pressing a button for the batch.
This guide walks through that in order. It covers what a JSON data source looks like, how a single record maps onto layers, how to preview before you commit, and how to batch the result. It also covers where JSON is the wrong choice, and one question we cannot answer from our own documentation, which is nested data. We would rather tell you that now than have you find out on row 200.
What a JSON data source is, and what a row means
Templater reads three kinds of data source. One is Google Sheets, one is a tab-separated file, and one is JSON, either as a file or as a feed. You choose one of them to manage your custom elements, and Templater does the rest. The choice matters less than people think, because the idea is the same in all three. Your template has placeholders, and each placeholder is linked to a column or a key in the data.
If you have used a spreadsheet for this, you already know the shape. A sheet has columns for the fields and one row per video. JSON has the same shape, written differently. Our own description of the file Templater accepts is a plain text file containing a JSON object array. Each object in the array plays the part of a row. Each key inside the object plays the part of a column header. The value is the content that lands in the layer.
QUE, our JSON-based data manager, puts it in the same terms. It stores your data in coded containers called objects, and you can think of each object as a spreadsheet row. That comparison is the most useful mental model for everything that follows. When you are unsure how to structure something, ask how you would lay it out in a spreadsheet, then write it as one object per video.
Here is an illustration, not a required schema. Imagine a regional grocery chain that wants a short promo video for every store, and keeps its store list in its own app. The app can export a file that looks like this:
[
{
"headline": "Fresh peaches are in",
"store": "Maple Street",
"photo": "maple-peaches.jpg",
"outputName": "maple-street-peaches"
},
{
"headline": "Two for one on bread",
"store": "Riverside",
"photo": "riverside-bread.jpg",
"outputName": "riverside-bread"
}
]
Two objects, two videos. The keys are names we made up for this example. Yours can be whatever your app already produces, as long as you link each layer to the right key when you rig the template. That is the part that surprises people coming from spreadsheets. You do not reshape your data to fit Templater so much as tell Templater where to look.
There is one rule to know early. Templater can only pull from a single data source. With Google Sheets that means one worksheet, never several tabs at once, and the same limit holds for a JSON file or any other source. If your information lives in three places, you need to bring it together into one file first. This is one reason people like a JSON feed from their own app. The app can do the merging before Templater ever sees the data.
Files, feeds, and QUE
A file is the simplest start. You export or write the array, save it as plain text, and point Templater at it. A feed is the same content served from a web address, and our materials call these remote JSON URL feeds. It suits data that changes while you work, such as product descriptions your own system generates. Our Ultimate support package covers remote JSON feeds, so if the feed is part of a mission-critical pipeline, that is worth knowing about.
The third path is QUE. QUE is a cloud-based app built around JSON, and it acts as the data source for compositions rigged with Templater. In QUE, a template prepared to accept data is called an Autograf, a Job is the JSON object holding the data for that Autograf, a Campaign is a collection of Jobs, and Satellites are the computers running After Effects and Templater that process the Jobs. You enter information in the QUE Dash, and QUE writes the JSON behind the scenes, so you do not have to know JSON at all. If you would rather not maintain a JSON file by hand, QUE is the route that removes that chore. It also has an API, and a built-in Zapier integration for connecting other apps. Our QUE page has the full tour.
For this article we will mostly stay with a JSON file or feed that you control, because that is what the question usually means.
Mapping a record to layers, then previewing it
Rigging is the step where you tell the After Effects project which layers are dynamic. Templater lets you customize text, images, branding, graphic elements, colors, and embedded footage, and you can do it for one layer or for every layer in the composition. In our example, the headline key feeds a text layer, the store key feeds another text layer, and the photo key feeds an image layer. The outputName key is not a visual layer at all. It names the finished file, because Templater can set a custom output name for each render job or replicated composition from within your data source.
Footage can be local or cloud-based, so the photo value might be a path on disk or a location online. Either way, the pointer sits in the data and the asset sits where the pointer says. That detail is also where most early failures come from. If After Effects cannot find an asset, a footage file, or a font in its specified location, a render queue item can fail with the message “Failed at N/A.” The usual causes are files that were moved or deleted. Keep your asset references stored in the project file and check them before you blame the data.
Text deserves a note of its own. Templater reads your text as it appears in your data, so commas, quotes, apostrophes, and new lines are accepted, and characters from any language are supported as long as the installed font has the glyphs. Right-to-left scripts work as well. The one thing a text layer cannot do is mix styles. A single text layer uses one font, one size, one weight and one style, so you cannot bold half a headline from the data. The partial workaround is to place two text layers next to each other and give each its own attributes.
Two more features decide how much cleanup you do by hand. Layout rules adjust dynamic layers relative to their containing composition and their sibling layers, so a long headline does not collide with the layer beneath it. Time Sculpting rules crop, trim, shift, and stretch layers, so a clip that is eight seconds in one record and thirty in the next can sit in the same design. Neither depends on JSON. They matter here because a data feed gives you content you did not hand-pick, and you want the template to cope with whatever shows up.
Preview before you render anything
Previewing is how you find out whether the mapping works. Templater has a preview function that shows how your data-driven compositions will look before you render or replicate them. You can iterate through previews of your render jobs, which means stepping from one record to the next, and see how the template treats different text, footage, and colors. When a record misbehaves, you resolve the data problem there, not after two hundred files have been written.
This step is available in Rig, our entry edition, and that is worth saying plainly. Rig maps data to composition layers and previews how those layers change as the data is processed. It does not batch render. Many teams use it for exactly the design and review stage, with the designer rigging in Rig and someone else running the batch on a machine with Pro or Bot. If you buy Rig and then discover the Render, Replicate and Enable Bot buttons are disabled, that is why. Render and Replicate belong to Pro, Enable Bot belongs to Bot, and our free trial includes everything, so it can hide the difference until you activate a lower edition. See our piece on Templater Rig if you are deciding which seats need which edition.
A good habit is to preview the strangest records first, not the nicest ones. In the grocery example, find the store with the longest name and the headline with the most words, and look at those. Then check the shortest. Records at both ends tell you more than ten average ones. If a record has an empty value, preview it too, because an empty key is a decision you have to make on purpose.
For deeper quality control later, Pro and Bot include spot checks. These export still images or short clips of specific frames from the data-merged compositions. You choose the frames with named composition timeline markers, and without markers Templater samples frames at even intervals across the composition. Spot checks are a quick way to look at many jobs without watching each one, which fits when a feed produces more records than you can preview by eye. Our spot checks article covers them in detail.
What about nested JSON?
This is the question we cannot settle from our own documentation. Our documentation describes the JSON source as a plain text file holding an object array, with keys that map to layers. It says nothing either way about objects inside objects, or arrays inside a record. We will not claim it works, and we will not claim it does not.
So treat nested data as something to test. Build a small file with three or four records in the nested shape you plan to use, rig a test layer to a nested value, and see what the preview shows. Rig is enough for that. If it does not behave the way you hope, flatten the structure so each object carries the values the layers need at the top level. A flat array also reads like a spreadsheet, which keeps your team on the same page. You can also bring the question to our support team before you commit to a design.
Batching, and what it takes to keep it running
When the preview looks right, the batch is mostly a matter of choosing the edition and the function. In Pro, Render takes the master composition, applies each record, and renders it. Replicate does something different. It inserts the data and saves a copy of the project for each record, kept in a tidy folder structure, and you can send those copies to the After Effects render queue or to Adobe Media Encoder. Choose Replicate when you want to touch a version by hand before it renders, or when you need output formats After Effects does not include. Choose Render when you want finished files with the fewest steps. Our batch rendering guide goes through the trade-offs.
Bot goes a step further. It checks for incoming data and starts the customization and rendering process itself, and you can also push data to it through the command line. That fits JSON well, because JSON is what an app or a script produces without anyone typing. A web or mobile app can write new records, and Bot picks them up and renders. We provide documentation so that developers can build the front end, because Templater does not come with a web or mobile application out of the box. If you do not have the staff to build one, we can help with custom development.
For the grocery chain, the realistic flow looks like this. A designer rigs the promo in Rig and previews the strangest records. Someone with Pro points the project at the exported file and runs Render for the first batch. Once the process is trusted, an app writes new store records into the data source and Bot renders them as they arrive. The same template serves all three stages, and the only thing that changes is who presses the button, or whether anyone does.
Estimating the time and scaling out
Do not guess at how long a batch will take. The time depends on the average length of the videos, the output resolution, your hardware, the ratio of dynamic to static frames, how heavy the effects are, and how the template is built. Our recommendation is a pre-flight. Render one video, or a small batch, that resembles the rest of the set on a machine comparable to your production machine. Multiply that time by the number of records. If you render sequentially in a queue, that gives you a fair estimate.
If the number is too large, you have two levers. Templater will break a large workload into manageable batches and queue the jobs one after another so it does not overload the machine. Or you can run Bot on several machines in parallel, and the total time drops in proportion, in half with two machines and to a third with three. Projector, our rendering and distribution app, can also render in parallel according to the number of cores in your machine. If you go the multi-machine route, set up your data source for multiple Bots, which our support documentation covers.
Your template matters as much as your hardware. Templater evaluates every layer in the project, so purge unused layers, effects and compositions. Our speed tips also say that a properly formatted data source helps. With JSON that has a simple meaning. Keep the records consistent, with the same keys in every object, so each layer finds what it expects. Our export speed article collects the template-side advice.
Where JSON is not the right choice
JSON is the right source when your data comes from software. It is a poor fit when the people owning the content are not technical and need to edit it themselves. A marketer who wants to change a headline will be happier in a spreadsheet, and Templater works directly with Google Sheets, with the added benefit of several people contributing to the same sheet. Excel itself is not read directly, so export to a tab-delimited file. Our Google Sheets walkthrough shows that route. If you want JSON’s structure without hand-editing it, QUE is the option built for that.
There is also a competitor angle worth stating fairly. If you want to build templates in an online editor and call a REST API with JSON, Creatomate and Shotstack are built for that, and their homepages describe exactly this approach. Their homepages do not mention After Effects. Templater is the better fit when your design already lives in After Effects and you want to keep it there. We would pick the other kind of tool if you have no After Effects work and want a pure API. For prices on either, see their pricing pages. For ours, see our licensing page.
The last caution is the single data source rule. Templater pulls from one source at a time, so a design that needs data from several places needs that data assembled in one file. If the same data must drive two different templates, there is a feature for that. Switch projects from data lets you move between two or more template project files on a per-row basis within the same data source.
The bottom line
Use JSON when software produces your data, because an object per video maps cleanly onto how Templater works. Rig the template, link each layer to a key, preview the oddest records in Rig, then batch with Pro or let Bot take over when the process is trusted. Test nested structures before you design around them, since our documentation does not promise them, and keep the records flat and consistent until you have proof. If your content is edited by people, use a spreadsheet or QUE instead. You can start with our learning hub or try Templater on its free 30-day trial.
Questions come up most often around the edges of a setup like this. Here are the ones we hear before people commit to a JSON-driven workflow.
Frequently Asked Questions
Can Templater read a JSON file directly?
Yes. Templater includes built-in integrations for JSON files and feeds, alongside Google Sheets and tab-separated files. The format our materials describe is a plain text file containing a JSON object array, such as one exported from your own app. Each object in the array acts like a row, and its keys link to the dynamic layers in your After Effects composition. Point Templater at the file, map the layers, and preview.
Can I use a JSON feed from a web address instead of a file?
Yes. Templater works with JSON feeds as well as files, and our materials mention remote JSON URL feeds as a supported kind of source. That suits data your own system keeps updating. If a remote feed is central to a production pipeline, our Ultimate support package includes support for remote JSON feeds. For the exact steps to enter a feed address, use our support documentation.
Does Templater support nested JSON?
We do not say either way in our documentation. It describes a flat object array with keys that map to layers. Test nested structures before you design around them. Build a small file in the nested shape, link a test layer to a nested value, and look at the preview in Rig. If it does not behave as you need, flatten each record so the values your layers use sit at the top level of the object.
Do I need Templater Pro to use JSON data?
No, not to set it up. Rig maps data to composition layers and previews how they change as the data is processed, so you can build and test a JSON-driven template with it. Rig does not batch render. Render and Replicate are in Pro, and Enable Bot is in Bot. If you need to produce many videos from the file, you need Pro or Bot. See our licensing page for current pricing.
Can one JSON file feed more than one template?
Yes, with a feature called switch projects from data. If two or more template project files need the same data, you can switch between them on a per-row basis within the same data source. Keep in mind that Templater pulls from one data source at a time, so everything the templates need has to live in that one file. A row can choose which project handles it.
How do I name the output files from a JSON record?
Add a key that holds the name you want and set it as the output name. Templater supports custom output file names for each render job or replicated composition from within your data source. In our illustration, an outputName key gives every store its own file name. Without that, you would be sorting a pile of videos by hand afterward, which defeats the purpose of automating the batch.
How long will a JSON-driven batch take?
It depends on video length, resolution, hardware, the share of dynamic frames, effect weight, and how the template is built. Our advice is a pre-flight. Render one video that resembles the others on a machine like your production machine, then multiply by the number of records. Running Bot on several machines in parallel divides the total, so two machines take half the time and three take a third.
