Nubu
  • Features
  • How it works
  • Pricing
  • Integrations
  • FAQ
  • Contact
  • Docs
  • Blog
  • Log in
  • Log inSign up
    Nubu

    Creative automation for teams that ship campaigns, not busywork.

    Try for free
    Product
    FeaturesNubu MotionHow it worksPricingIntegrationsFAQ
    Company
    AboutContactDocsBlogLog in
    Legal
    Privacy policyTerms of serviceData deletion
    © 2026 Bear Studios · Nubu
    Introduction
    Templates overviewInstalling Nubu BuilderAdding template compsAdding propertiesAdding footageSetting defaultsExporting your templateUploading a template
    Flows overviewAvailable nodesAdding a nodeConnecting nodesWorking with dataTemplates and outputsUsing AI nodesBuilding a creative
    CampaignsTemplatesAssetsGlossariesRendersSettings
    Connecting Meta AdsConnecting Google AdsConnecting OpenAIConnecting Gemini AI StudioConnecting Anthropic
    AI Assistant overviewPrompt examplesAssistant settings and controls
    Nubu Motion scripts: the reference
    OverviewQuick startDifferences from After EffectsDeterminism
    JavaScript supportReferences and idsProject scriptsState and timeBudgets and errorsFormatting values
    GlobalTime conversionInterpolationVector mathsRandom and noiseColour conversionOther maths
    LayerCompPropertyKeyframePathGeometryProjectComponentConsoleComponentControlExpressionControl
    The property vocabularyAnimators propertiesAudio propertiesContent propertiesContents propertiesEffects propertiesExpression controls propertiesFills propertiesInstance controls propertiesLayer propertiesLayout propertiesMasks propertiesStrokes propertiesText style propertiesRig propertiesRigging propertiesRig controllers propertiesRigging weights propertiesRigging mesh propertiesRig items propertiesRig splines propertiesRig simulation propertiesRig properties propertiesRig drivers propertiesRig draw order propertiesTransform propertiesTrim path properties
    Error codesBudgets
    Changelog
    All docs
    Guides
    / Flows

    Working with data

    Drive whole campaigns from a spreadsheet with the CSV and If / Else nodes.

    The CSV node turns a spreadsheet into flow data: each selected column becomes an output you can pipe anywhere a list node's rows would go. Paired with If / Else, one file can drive every market, language and copy variant in a campaign.

    Upload a CSV#

    1. Add a CSV node and click Upload a CSV (or drop the file straight onto the node).
    2. The node uploads (with a progress bar) and then reads the file.
    3. Columns appear as tick-boxes, each with the type Nubu inferred: text, number, boolean, colour, url, image or video.
    4. Tick the columns you want to use; each becomes an output handle.

    The node previews the first rows inline so you can check the data landed correctly. Files must be .csv and within the size limit; the node tells you if a file is the wrong type or too large.

    Pipe columns into nodes#

    Drag a column output into the data input of a list node (Market, Language, Text and friends). The node generates its rows from the column's unique values and locks them: they show the actual values with a count badge, and they update if you re-upload the file.

    With Auto-pair generated subitems on (the default, in the editor settings gear), nodes generated from the same CSV stay paired row-by-row, so row three's market, language and headline travel together instead of multiplying against each other.

    Route rows with If / Else#

    1. Add an If / Else node and pipe a CSV column into its input.
    2. Add one or more conditions. Each tests a column against a value with an operator: =, !=, >, <, >=, <=, contains, not contains, starts with or ends with.
    3. All conditions must pass (they combine with AND). Rows that pass leave through the true branch; the rest, including rows that can't be evaluated, leave through false.
    4. Pipe each branch onwards exactly like a CSV column.

    When fully wired, the node shows live counts of the rows travelling down each branch.

    Builds stay honest#

    At build time, combinations your data doesn't contain are pruned automatically, so a forty-row file yields the creatives the rows describe rather than every theoretical cross-product. Very large files are capped per build, and the build tells you if you hit the ceiling.