Connect Your Data

Let’s start by uploading your advertising campaign data to the Workshop. This process takes less than 2 minutes and sets the foundation for everything else.

Make sure you have the annalect-demo-data.csv file ready. This contains 50 campaigns with all the metrics you need.

Create Your Project

First, let’s create a dedicated project for your advertising analytics.

1

Access the Infactory Workshop

Navigate to your Annalect instance:

https://annalect-workshop.infactory.ai

You’ll see the Infactory Workshop homepage with your projects.

2

Start a New Project

Click the “New Project” button in the top right corner.

New Project button in the Infactory Workshop

Click New Project to get started

3

Name Your Project

In the dialog that appears:

  1. Project Name: Enter Campaign Analytics
  2. Leave other settings as default

Choosing a descriptive name like “Campaign Analytics” or “Marketing Performance” helps Infactory’s AI understand your data context and generate better query suggestions.

4

Create project

Click “Create project” to initialize your workspace.

Success! You now have a dedicated project workspace. You’ll see your empty project dashboard.

Empty project dashboard

Your new project is ready for data

Connect Your Data Source

Now let’s add your advertising campaign data to the project.

CSV upload interface with configuration fields
1

Add a Data Source

Click the ”+” button in the Connect panel on the left sidebar to add a new data source.

Plus button in Connect panel

Click the + button next to Connect in the left sidebar

2

Select Connection Type

In the “Add Data Source” dialog:

  1. Select “Upload Files” from the connection types
  2. Click the upload area or drag and drop annalect-demo-data.csv

Once you select the file, the interface immediately shows:

  • File: annalect-demo-data.csv (74.1 KB)
  • Data Source Name: Auto-populated as AnnalectDemoDataCsv
  • Description: Empty text field with placeholder
CSV upload interface with configuration fields

The upload interface shows your file with auto-populated name and description fields

Configure your data source before uploading:

  1. Data Source Name: Replace the auto-generated name with:

    Annalect Campaign Performance Data
    
  2. Description: Add this detailed description:

    Digital advertising campaign data with 50 campaigns including metrics like 
    spend, impressions, clicks, conversions, CTR, CPC, CPM, and ROAS. Contains 
    campaign objectives, ad groups, creative types, and performance data 
    segmented by date, device, and geography.
    

Write descriptions as if explaining the data to a colleague who has never seen it. Include:

  • What type of data it contains (advertising campaigns, customer records, etc.)
  • Key columns and their purpose (spend, impressions, campaign objectives)
  • Time period or scope (if applicable)
  • Any important relationships between columns

This helps the AI understand your data context for better query suggestions and more accurate results.

  1. Click “Upload 1 File” to proceed.

You can upload multiple files at once using the “Add More Files” button if you have related datasets.

3

Schema Generation

After clicking “Upload 1 File”, Infactory automatically generates a schema for your data:

Generated dataline schema showing column definitions

AI-generated schema showing column definitions and relationships

The AI analyzes your data and creates:

  • Column definitions with appropriate data types
  • Display names that are human-readable
  • Descriptions for each field based on content analysis
  • Relationships between different columns

The schema generation uses AI to understand your data context. Because you provided a descriptive name and description earlier, the AI can better identify column purposes and relationships.

Example schema elements generated:

CAMPAIGN_ID = Column(
    type_t=TypeT.STRING,
    col_kind_t=ColumnKindT.KEY,
    datasource_name="campaign_id",
    display_name="Campaign Id",
    description="Unique identifier for Campaign Id"
)

LIFETIME_BUDGET = Column(
    type_t=TypeT.INT_64,
    col_kind_t=ColumnKindT.VARIABLE,
    datasource_name="lifetime_budget",
    display_name="Lifetime Budget",
    description="Integer value: Lifetime Budget"
)

Wait for the schema generation to complete (typically 10-15 seconds).

4

Success! Schema Complete

Once the schema generation is complete, you’ll see:

  • ✅ “Ready”
  • 📊 Schema with 183 columns generated
  • 🔍 Ready to build query programs

Congratulations! Your advertising data is now connected and ready for analysis.

The system has:

  • Analyzed all 183 columns
  • Generated appropriate data types and descriptions
  • Indexed your data for fast querying
  • Prepared the AI to understand your data context

What Just Happened?

Behind the scenes, the Workshop:

  1. Parsed your CSV file and detected data types
  2. Generated a schema using AI to understand each column’s purpose
  3. Indexed the data for fast querying
  4. Used your descriptions to enhance the schema with business context
  5. Prepared it for AI-powered analysis
  6. Made it queryable through natural language

The AI schema generation:

  • Automatically identified column types (STRING, INT_64, etc.)
  • Determined which columns are keys vs. variables
  • Created human-readable display names
  • Generated contextual descriptions for each field

The descriptive name and detailed description you provided help the AI:

  • Better understand your data’s business context
  • Generate more accurate column descriptions
  • Create more relevant query suggestions later
  • Build better API endpoint names when deploying

Troubleshooting

What’s Next?

Your data is connected and ready! Now let’s create Infactory Intelligent Queries to analyze your campaign performance.

Continue to Build Queries

Learn how to create Infactory Intelligent Queries using natural language →


Time Check: You should be about 2 minutes into the tutorial. Everything working smoothly? Great! If not, reach out on Slack for immediate help.