You do not import a CSV into After Effects so much as point a data source at your project and let Templater do the importing. Our documentation lists tab-separated files for Templater, so a CSV needs one conversion first. If you use Que, you can upload the CSV exactly as it is.
That answer surprises people who expect a menu command. They have a file from a client or a marketing teammate, a project full of layers, and a deadline. They want the numbers and names in the file to show up in the layers. What they find is that the useful question is not “how do I get this file into the project.” It is “which part of my toolchain reads this file, and what shape does it want.” This guide takes the question in that order. First, what a data source is and why the shape matters. Then the two routes we support for a CSV, with checks to run before you render. Then how to choose between them.
We build Templater and Que, so we describe those two. Where we are describing general spreadsheet habits and not something from our documentation, we say so.
What “import” means once the CSV is a data source
Start with the model, because every later step depends on it. A data source is a table. Each row is one render job, which means one finished video. Each column is one thing that can change inside the template, such as a headline, a photo path, a color or a price line. The cells hold text, URLs, image file paths or hex color values. A JSON file works the same way, with each object standing in for a row and each property key standing in for a column header.
Your CSV already has that shape. A header row, then one line per video. So the file is a good candidate. The work is in two other places. The template has to be prepared so its layers can accept values from the columns, and the file has to reach the tool in a form the tool reads.
Here is the example we will use for the rest of the guide. Picture a producer at a regional furniture retailer. A marketing coordinator sends over a file called weekend-sale.csv with forty rows, one per store. The columns are id, storeName, headline, offerLine, photo and accent. The producer has a fifteen-second promo in After Effects with a single master composition. The design is final. Only those six things change from store to store. This is an illustration and not a customer story.
Preparing the template comes first, and it is easy to overlook. Each layer that should change gets a unique name that matches a column header. Our documentation says to name a text layer for an intro title introTitle, for example, and to avoid spaces in layer names. It also says layers must be explicitly renamed after you create them, even if the source name you typed is the same as the column name. If you skip the rename, Templater may not treat the layer as dynamic. Then you apply the Templater Settings effect to each dynamic layer, once. Applying it twice to one layer produces unexpected results, according to the same page.
For our furniture promo, that means a text layer named storeName, one named headline, one named offerLine, an image layer named photo, and and a solid layer named accent that takes a hex color. The Templater Settings effect cannot be applied to shape layers, so a shape would have to be pre-composed first. The column names in the file and the layer names in the project are the contract. If they match, the data lands. If one letter differs, that layer does not change, and you get forty videos with a hole in each.
Three column names are not yours to use for layers. Templater reserves id, target, output, aep, render-status, bot, module and render-settings. The names are case-sensitive, and using one as a dynamic layer name can cause an error. Two of them are useful in our example. The id column gives each output a label of your own, and the output column sets each file’s name. If the output cell is blank, Templater uses the id value. If you have no id column either, it falls back to the row index, which tells you nothing the day someone asks which file was the Tampa store. Our post on what happens when a data column name matches a reserved Templater name goes deeper on the collisions.
One limit belongs here. Templater pulls data from a single data source at a time. If your coordinator sends a CSV for the stores and another for the holiday offers, you merge them before the project sees them, or you run two batches. The same single-source rule is why a Google Sheet with several tabs still gives Templater only one worksheet.
Route one: convert the CSV to a tab-separated file for Templater
Templater reads a Que campaign, a native Google Sheets document, a tab-separated value file, a plain text file containing JSON, or a remote JSON feed. A comma-separated file is not on that list, and our FAQ is equally plain that Templater cannot read an Excel workbook directly. So the working route for a CSV is to open it in a spreadsheet program and export it as tab-delimited text. Our documentation names Microsoft Excel, Apple Numbers and Google Sheets as the programs the tab-separated format is exported from. All five source types are available in all three editions, Rig, Pro and Bot, so you do not need a bigger license to use this route.
Templater Data Sources
Five source types Templater reads
| Source type | Format accepted | Editions |
|---|---|---|
| Que campaign | Que campaign data | Rig, Pro and Bot |
| Google Sheets | Native Google Sheets document | Rig, Pro and Bot |
| Tab-separated file | Tab-separated value file | Rig, Pro and Bot |
| JSON text file | Plain text file containing JSON | Rig, Pro and Bot |
| JSON feed | Remote JSON feed | Rig, Pro and Bot |
Why tabs and not commas? Our documentation does not give a reason, so this is general practice. Marketing copy is full of commas. A headline like “Sofas, Sectionals and Sleepers” has two of them, and in a comma-separated file the program has to decide whether each comma ends a cell or belongs to the text. Quoting rules handle that, and they usually work, until a file gets edited in two different programs. A tab almost never appears inside a headline, so a tab-separated file leaves less room for a cell to split in the wrong place.
The export itself is short. Open the CSV in your spreadsheet program, look at it, and use the export or save-as option that produces tab-separated text. Our support article for this setup is titled “Setting up a TSV File as a Data Source,” and it is the page to follow for the exact menu path in your Templater version. Before you export, check four things.
First, the header row. A CSV that came from someone else’s reporting tool may have headers like “Store Name” or “2nd line” or “offer_line.” Our documentation warns that Google Sheets headers cannot begin with a numeral, contain spaces or contain the _ character, and our troubleshooting page also lists the dollar symbol. Those warnings are written about Google Sheets, so we cannot promise the same limits apply to a tab-separated file. We do know that layer names should not contain spaces, and that the column name has to match the layer name. The simplest habit is to rename the headers in the file to plain letters and numbers, with the capitals inside the word, before you build the layers around them. Rename once, in the file, and you never have to wonder which side was wrong.
Second, the encoding. Our documentation says tab-separated and JSON text files must be UTF-8 so that international characters read correctly. A CSV that came out of an older Windows export, or went through a few programs on the way, may not be UTF-8. If the store list includes accents, or you localize the promo, look at the characters in the file before you trust it. If the preview shows odd symbols where an accent should be, the file’s encoding is the first place to look. A different problem produces a blank. If the characters are fine in the file but the text layer shows nothing for that row, the font on the machine may not have the glyphs. Our documentation says that if a row specifies a font that is installed but does not support the language of the text, the text is not imported and nothing appears in the comp for that row.
Third, the preference box. Templater has a setting in its Preferences for tab-delimited files exported from Excel or Numbers. Check it only if the file really came from one of those programs. If it is checked for a file that did not, or unchecked for a file that did, unintended characters appear in your text layers. Keep track of which program touched the file last. If you converted in Google Sheets instead, leave the box alone.
Fourth, the values themselves. Every cell is read as text, and the layer decides what it expects. A photo column should hold a path or URL that resolves to a file After Effects can import. File references are case-sensitive, so Photo_01.jpg and photo_01.jpg are different files to Templater. A color column should hold a hex code. If a cell is empty, the behavior depends on a footage preference in Templater Preferences, and our guide to field type mismatches lists the options, from asking what to do to using a branded placeholder. We recommend the placeholder on any machine that runs without a person watching, because a dialog box waiting for a click stops the batch.
Before You Export
Four checks before exporting the TSV
- Rename headers to plain letters and numbers, no spaces or special characters
- Confirm the file is encoded as UTF-8 so international characters read correctly
- Set the tab-delimited preference box only if the file came from Excel or Numbers
- Check that photo paths and color hex codes are correct and file references match in capitalization
Now pair the file with the project. In the Templater panel you choose the exported file as the data source, and you can tell Templater where the footage lives and where the output should go. Our edition comparison also lists project-specific batch assets presets in all three editions, which are worth a look if the project moves between machines.
Preview next, and do it on purpose. In our furniture example, the longest store name will be the first thing that breaks a layout. Row seven might be “Fort Lauderdale Design Center,” and row twelve might be “Ames.” You want to see both. The preview menu has to be set to something other than current state, such as next row, or the composition will not move to another row. Manual preview re-reads your data source each time, so if you fix a cell and save the file, the next preview shows the fix. Cycle mode reads the source once before it starts, so a change made mid-cycle will not appear. Pick rows that cover the extremes, the shortest text, the longest, a missing photo, and any language other than English. Our post on preview modes and spot checks covers the rest.
For a larger file, spot checks give you a still or short clip from selected frames of data-merged compositions, without rendering every video. They need Templater 3.0 or newer and are supported in Pro and Bot. If you pay per output through the Que Meter, each spot check uses a credit.
Then render or replicate. Render works through the rows and produces finished files. Replicate saves a copy of the project per row without rendering, which is useful if a designer wants to touch up a few versions by hand. Both belong to Templater Pro and Bot, and Rig covers preparing and previewing. That split is useful on a team. The designer owns the rig, the coordinator checks the rows in preview, and only the render machine needs the batch edition.
The honest cost of this route is that the converted file is a snapshot. Change a price in the CSV and nothing happens in After Effects until you convert again and Templater reads the new file. If you forget, you render yesterday’s data. For one batch of forty stores, that is a small price. For a list that changes until the hour of the deadline, it is a source of mistakes. Keep the converted file next to the project and name it with a date. Then you can always say which file produced which videos.
Two Routes
Convert to TSV or upload to Que?
- Does the CSV need conversion?
- Convert to TSV, TemplaterYes, export as tab-delimited text
- Upload CSV, QueNo, CSV goes in as it is
- Best fit for how often?
- Convert to TSV, TemplaterOne-time or a few a year
- Upload CSV, QueFile arrives on a schedule
- Data is a snapshot?
- Convert to TSV, TemplaterYes, change means converting again
- Upload CSV, QueNo, campaign tracks job status
- Who can automate it?
- Convert to TSV, TemplaterManual file swap each time
- Upload CSV, QueImport Jobs endpoint posts rows via script
Convert to tabs for Templater, upload as is for Que, and preview before you render.
Route two: upload the CSV straight into a Que campaign
If conversion feels like a chore you will do wrong at midnight, Que removes it. Que is the part of Dataclay that holds your video data and your list of render jobs on the web. In the Que Dashboard, a campaign holds jobs, and a batch import takes a file and turns every row into a job. Our Que documentation lists the supported file types as JSON files that contain a single array of objects, Microsoft Excel files with a header row, and CSV or TSV files. So the CSV goes in as it is.
The steps in the dashboard are short. Open the Campaigns tab and find the campaign that will hold the jobs. Click its table icon, then Batch Import. Click the Select File field or drag your file onto it. Choose the satellite that should process the jobs, which is the machine running Templater that will render them. Choose the autograf that will use the job data. Click Upload. When the import finishes, the rows appear as jobs in the campaign’s listing. Our post on inserting a batch of jobs into Que walks through the screens and the other ways in.
Que CSV Upload
Upload a CSV straight into a Que campaign
-
Open the campaignOpen the Campaigns tab and find the campaign that will hold the jobs.
-
Start Batch ImportClick its table icon, then Batch Import.
-
Select your fileClick the Select File field or drag your file onto it.
-
Choose a satelliteChoose the satellite that should process the jobs, which is the machine running Templater that will render them.
-
Choose an autografChoose the autograf that will use the job data.
-
UploadClick Upload.
Two words in that list need unpacking. In the current Que documentation, an autograf is the prepared template whose dynamic elements the job data fills. Older help pages used other names for related screens, and the current API reference overrides them, so if you find an older page that disagrees, trust the newer naming. A satellite is the render machine assigned to the work.
Que fills in some job properties for you. When you import jobs through the API, our reference says that if the aep or bot keys are missing, Que adds them with the campaign’s default autograf and satellite. If a render-status key is missing, Que adds it and sets it to ready. We have not seen the batch import screen spell out its defaults, so check one imported job before you rely on them. Where they apply, they save you a column. In Route one, a Bot setup needs a render-status column that you maintain. Here, the campaign tracks status for you, and each job moves from ready to queued to processing to done unless it is canceled.
The keys still need to match, though. Our API reference describes each job as an object of key-value pairs that map to the dynamic elements in an autograf. A CSV header row plays the same part. If the header says storeName and the autograf’s layer is named storeName, the value lands. This is the same contract as Route one, with the same failure when a name is off by a letter. What Que adds is a place to see the jobs before anything renders. After the import you can look at the listing and spot a row that came through wrong.
Developers have a third door that matters if the CSV is not a one-time file. The Import Jobs endpoint takes a campaign ID and an array of job objects, and returns a status message describing the result. That endpoint works with JSON, so a script that reads your CSV, builds the objects and posts them replaces the manual upload. Our guide to batch inserts covers when each door makes sense. A script is worth the effort when a new CSV arrives every week from the same source, and a person uploading it by hand is the weak link.
The trade-off is that Que is another piece to set up. You need an account, a campaign, a satellite with Templater running on it, and an autograf that matches your template. For a single forty-row file that you will never see again, that is more setup than the conversion takes. For anything repeating, it is less work over time. We would say the same about any tool of ours. Do not set up infrastructure for a task you will do once.
Choosing a route, and when neither fits
Pick the route by how often the file arrives and who touches it. If it is a one-time file, or a few a year, and the person doing the work already has Templater open, convert to a tab-separated file. It is the least machinery. You get a preview, you control which version of the data produced which videos, and you can read the file in a text editor if something looks wrong. If the file arrives on a schedule, or several people send them, or you want a record of every job and its status, use a Que campaign and upload the CSV directly. If the data comes from a system you control, skip the CSV altogether, and have the system hand Que or Templater JSON, because the hand-made file is the step where mistakes enter.
Whichever route you choose, run the same two checks before the full batch. Preview the extremes, the longest name and the emptiest row, and render the first two or three rows and open the files. A preview is a good guide, and a real render is the final word. If row one is wrong, rows two through forty will be wrong in the same way, and you would rather learn that in two minutes than two hours.
Two kinds of file are a poor fit for either route. If the CSV holds data where each row needs its own hand-built animation, no data source will help, because the design differs between rows. And if the CSV is a raw export from a reporting tool, with merged headings, notes at the top and a total row at the bottom, clean it first. Templater reads the table you give it. It does not guess where the header is or which rows are real.
The bottom line is short. A CSV becomes video in two steps that have nothing to do with importing. You make the layer names and column headers match, and you hand the file to the tool in a shape it reads. Convert to tabs for Templater, upload as is for Que, and preview before you render. That is the whole job, and the naming is where the file and the project have to agree.
That covers the two routes. Here are the questions to settle before you commit to one.
Frequently Asked Questions
Can After Effects read a CSV file directly into my project?
We cannot speak for how After Effects itself treats a CSV, because that is Adobe’s behavior and not ours. What we can say is how our tools work. Templater’s documented data sources are a Que campaign, a Google Sheet, a tab-separated file, a JSON text file and a JSON feed. A comma-separated file is not on that list, so convert it to tab-separated text first. Que’s batch import accepts CSV files as they are.
Do I have to convert the CSV if I use Que?
No. The Que Dashboard batch import lists JSON files holding a single array of objects, Microsoft Excel files with a header row, and CSV or TSV files as supported. You pick the campaign, choose a satellite and an autograf, and upload. The column headers still have to match the dynamic element names in the autograf, so check them before you upload. Conversion is only needed when Templater reads the file directly.
Why does Templater want a tab-separated file and not a CSV?
Our documentation lists tab-separated files and does not explain the choice, so this part is general practice. Marketing text is full of commas, and a tab rarely appears inside a headline. A tab-separated file leaves less room for a cell to split in the wrong place. The practical answer is to open your CSV in Excel, Numbers or Google Sheets and export tab-delimited text.
What should I check when the converted file does not map?
Start with names. A column header has to match the layer name exactly, and layer names should not contain spaces. The next suspect is the preference box for tab-delimited files exported from Excel or Numbers. If it is set wrong for the file, unintended characters appear in text layers. After that, check that the file is UTF-8 and that footage paths match in capitalization.
Can I use more than one CSV for the same batch?
Not at once in Templater. It pulls data from a single data source, and a source maps to a single worksheet. If you have two files, merge them into one table before pairing it with the project, or run two batches. In Que you can import more than one file into a campaign, since each upload adds jobs. Each file still has to match the autograf you chose.
Which route is better for a file that changes every week?
Que is the better fit when the file keeps changing. A tab-separated file is a snapshot, so every change means converting again and pairing the new file, and a person has to remember to do it. A Que campaign keeps a listing of jobs and their status, and its Import Jobs endpoint lets a script post the rows for you. If the file changes only a few times a year, the conversion route is simpler and needs no extra setup.
How do I check the data landed before I render all the rows?
Preview deliberately. Set the preview menu to next row, and step through the longest text, the shortest, a row with a missing photo and any language other than English. Then render the first two or three rows and open the files. For a large file, spot checks in Templater Pro and Bot give you stills or short clips without rendering everything. Each spot check uses a credit if you pay through the Que Meter.
