Directus Guide
This guide explains how to use Directus Data Studio to manage your buyer intent platform content, leads, campaigns, and configuration.
What is Directus?
Section titled “What is Directus?”Directus is an open-source headless CMS and data platform that provides a powerful admin interface (Data Studio) for managing your content without writing code. In this platform, it serves as your central management hub for:
- Managing leads and contact data
- Creating and tracking marketing campaigns
- Building audience segments with dynamic rules
- Configuring AI prompts and automation
- Managing team members and permissions
- Organizing documents and media files
Accessing Directus Data Studio
Section titled “Accessing Directus Data Studio”- Navigate to your Directus URL (check with your administrator)
- Log in with your credentials
- You’ll see the main dashboard with all your collections
Core concepts
Section titled “Core concepts”Collections
Section titled “Collections”Collections are like tables in a database — they hold specific types of content. Your platform includes:
Main Data Collections:
- Leads — Contact information, intent data, company details
- Campaigns — Marketing campaigns with QR tracking and email content
- Segments — Dynamic audience groups based on rules
- Notes — Internal notes and annotations
AI & Automation:
- AI Prompts — Prompt templates for AI interactions
- Integrations — Third-party service connections
Configuration:
- Settings — Platform-wide configuration settings
- Globals — API keys and service credentials (Twilio, OpenAI, N8N)
- Teams — Organization accounts with subscription info
- Users — Team member accounts and roles
Supporting Data:
- Documents — File storage and document management
- Activity Logs — Audit trail of all platform actions
- Deduplication Audits — Duplicate detection records
- QR Tracking Events — QR code scan analytics
Fields
Section titled “Fields”Fields are the individual pieces of information in each collection item. For example, a lead has:
- Email (text)
- Company Name (text)
- Intent Score (number)
- Intent Topics (list)
- Status (dropdown: new, qualified, contacted, etc.)
- Location (city, state, country)
- Team assignment (relationship to Teams)
Items are individual records within a collection. For example:
- A specific lead contact is an item in the Leads collection
- A marketing campaign is an item in the Campaigns collection
Managing leads
Section titled “Managing leads”Leads are the core of your platform — they represent potential buyers with intent data.
Creating new leads
Section titled “Creating new leads”- Navigate to Leads Collection
- Click “Leads” in the sidebar
- You’ll see a list of all leads
- Create New Lead
- Click “+ Create Item”
- Fill in required fields: Email address, Company name, Team assignment
- Add optional information:
- Name (first_name, last_name)
- Contact details (phone, additional emails)
- Job information (job_title, department)
- Company data (company_size, industry, revenue_range)
- Location (address, city, state, zip_code, country)
- Intent data (intent_topics, intent_score, intent_keywords)
- Save Your Work
- Click “Save” to create the lead
- Lead becomes searchable immediately
Lead intent data
Section titled “Lead intent data”Intent data shows buying signals:
- Intent Topics — Topics the lead is researching (list)
- Intent Score — 0–100 score indicating buying readiness
- Intent Strength — Categorical strength (low, medium, high)
- Intent Recency — Days since last intent signal
- Intent Keywords — Specific keywords they’ve searched
Lead deduplication
Section titled “Lead deduplication”The platform automatically manages duplicate leads:
- is_canonical — True if this is the primary lead record
- canonical_lead_id — Points to the main lead if this is a duplicate
- duplicate_group_id — Groups related duplicate leads
- confidence_score — Confidence level of duplicate match
Lead quality & status
Section titled “Lead quality & status”Track lead lifecycle:
- status — Current stage (new, qualified, contacted, etc.)
- quality_score — Lead quality rating (0–100)
- is_suppressed — Marked as do-not-contact
- engagement_count — Number of interactions
- last_engaged_at — Most recent engagement date
Managing campaigns
Section titled “Managing campaigns”Campaigns drive your outreach efforts with email, QR codes, and tracking.
Creating a campaign
Section titled “Creating a campaign”- Navigate to Campaigns
- Click “Campaigns” in the sidebar
- View existing campaigns and their performance
- Create New Campaign
- Click “+ Create Item”
- Fill in campaign details:
- name — Campaign title
- status — draft, active, paused, completed
- campaign_type — email, direct_mail, etc.
- target_segment_id — Link to audience segment
- Configure Campaign Content
- subject_line — Email subject
- html_content — Rich text email body
- cta_url — Call-to-action link
- qr_code_id — Unique QR code identifier
- qr_code_url — QR landing page URL
- Enable Integrations (optional)
- use_sendspark — Enable video messaging
- use_firstclass — Enable direct mail
Campaign tracking
Section titled “Campaign tracking”Monitor campaign performance:
- total_contacts — Total audience size
- sent_count — Number sent
- qr_scans — Total QR code scans
- qr_unique_scans — Unique scanners
- launched_at — Campaign start date
Building segments
Section titled “Building segments”Segments are dynamic audience groups based on rules. They automatically update as lead data changes.
Creating a segment
Section titled “Creating a segment”-
Navigate to Segments — Click “Segments” in the sidebar
-
Create New Segment
- Click “+ Create Item”
- Set basic info:
- name — Segment name (e.g. “High Intent - Tech Industry”)
- segment_type — static or dynamic
- team_id — Team ownership
-
Define Segment Rules — Click into the rules field (JSON editor) and define filtering logic:
{"intent_score": { "gte": 70 },"industry": { "in": ["Technology", "SaaS"] },"status": { "eq": "qualified" }} -
Activate Segment
- Set is_active to true
- System calculates segment_size automatically
- View last_recalculated_at for freshness
Common segment rules
Section titled “Common segment rules”High Intent Leads:
{ "intent_score": { "gte": 80 }, "is_suppressed": false}Recent Engagers:
{ "last_engaged_at": { "gte": "2024-01-01" }, "engagement_count": { "gte": 3 }}Geographic Targeting:
{ "state": { "in": ["CA", "NY", "TX"] }, "company_size": { "in": ["100-500", "500+"] }}Managing AI prompts
Section titled “Managing AI prompts”AI Prompts are templates for AI-powered interactions and content generation.
Creating an AI prompt
Section titled “Creating an AI prompt”- Navigate to AI Prompts — Click “AI Prompts” in the sidebar
- Create New Prompt
- name — Descriptive prompt name
- slug — URL-friendly identifier
- status — draft, published, archived
- description — What this prompt does
- Configure System Prompt
- system_prompt — Base instructions for the AI
- Use markdown formatting
- Example: “You are a helpful sales assistant…”
- Add Message Examples
- messages — Array of example interactions
- Each message has role (user or assistant) and text (message content with
{{placeholders}})
Using placeholders
Section titled “Using placeholders”AI prompts support dynamic data:
Generate an email for {{first_name}} at {{company_name}}.Their intent topics are: {{intent_topics}}.Intent score: {{intent_score}}/100.When executed, placeholders are replaced with actual lead data.
Working with media (documents)
Section titled “Working with media (documents)”Uploading documents
Section titled “Uploading documents”- Navigate to Directus Files — Click “File Library” in the sidebar to view all uploaded files
- Upload New Files — Click “Upload Files” or drag-and-drop. Organize into folders: Campaign Assets, Lead Documents, Templates, Reports
- File Metadata
- Title — Descriptive name
- Description — File purpose
- Tags — Keywords for searching
- Folder — Organizational folder
Configuration management
Section titled “Configuration management”Global settings
Section titled “Global settings”The Globals collection stores platform-wide API credentials:
Twilio (SMS/Voice): twilio_account_sid, twilio_auth_token, twilio_caller_id, twilio_app_sid
OpenAI (AI Features): openai_api_key
Integration URLs: n8n_url (Automation platform), directus_url (CMS URL), site_url (Main application URL)
Security Note: These are sensitive credentials. Only administrators should edit.
Settings collection
Section titled “Settings collection”The Settings collection uses key-value pairs:
- key — Setting identifier
- value — JSON or text value
- section — Grouping (e.g. “email”, “notifications”)
- status — draft, published, archived
Common settings: Email templates, Feature flags, UI configuration, Default values
Team & user management
Section titled “Team & user management”Teams represent customer organizations:
- name — Organization name
- plan_name — Subscription tier
- subscription_status — active, canceled, past_due
- stripe_customer_id — Stripe customer reference
- stripe_subscription_id — Stripe subscription reference
User accounts for team members:
- name — Full name
- email — Login email
- role — Team role (admin, member, viewer)
- is_admin — Platform administrator flag
- deleted_at — Soft delete timestamp (null if active)
Content workflow
Section titled “Content workflow”Draft → Published → Archived
Section titled “Draft → Published → Archived”Most collections support status workflows:
- Draft Status — Work in progress, not used in production, safe to experiment
- Published Status — Active and in use, available to platform features, can still be edited
- Archived Status — No longer active, retained for history, can be restored
Applying status
Section titled “Applying status”For items with a status field:
- Select the item
- Change status dropdown
- Save changes
Search and filtering
Section titled “Search and filtering”Quick search
Section titled “Quick search”- Use the search bar in any collection
- Searches across key fields (email, name, company)
- Results appear instantly
Advanced filtering
Section titled “Advanced filtering”Filter Leads by Intent Score:
- Click filter icon
- Add condition: “intent_score” greater than or equal to “80”
- Apply filter
Filter Campaigns by Status:
- Add condition: “status” equals “active”
- Combine with date range: “launched_at” is after “2024-01-01”
Filter Leads by Location:
- Add condition: “state” in [“CA”, “NY”, “TX”]
- Add condition: “country” equals “US”
Saved filters (presets)
Section titled “Saved filters (presets)”- Configure filters
- Click “Save Preset”
- Name it (e.g. “High Intent CA Leads”)
- Access from presets dropdown anytime
Relationships
Section titled “Relationships”Many-to-One (M2O)
Section titled “Many-to-One (M2O)”One lead belongs to one team:
- Lead → team_id → Team
- Select team from dropdown when editing lead
One-to-Many (O2M)
Section titled “One-to-Many (O2M)”One team has many leads:
- View all team’s leads in Team detail page
- Automatically shows related leads
Junction tables
Section titled “Junction tables”Some relationships use junction tables:
- Segment Membership —
segment_leadslinks segments to leads (automatically managed by segment rules) - Team Members —
team_memberslinks users to teams (defines user access per team)
Activity & audit trail
Section titled “Activity & audit trail”Activity logs
Section titled “Activity logs”The Activity Logs collection tracks who performed actions, what changed, when it happened, and the full change history.
To view activity:
- Navigate to Activity Logs
- Filter by user, date, or entity
- View detailed change records
Deduplication audits
Section titled “Deduplication audits”The Deduplication Audits collection records when duplicates were detected, confidence scores, merge decisions, and who approved merges.
QR code tracking
Section titled “QR code tracking”QR tracking events
Section titled “QR tracking events”Track QR code engagement:
- campaign_id — Which campaign
- lead_id — Who scanned (if identified)
- scan_time — When scanned
- location — Geographic data
- device_info — Device type
To view QR analytics:
- Navigate to QR Tracking Events
- Filter by campaign
- Export for reporting
Bulk operations
Section titled “Bulk operations”Bulk status changes
Section titled “Bulk status changes”- Select multiple items with checkboxes
- Click bulk actions dropdown
- Choose “Update Status”
- Select new status
- Confirm changes
Bulk export
Section titled “Bulk export”- Filter to desired items
- Select all or specific items
- Click export icon
- Choose format (CSV, JSON)
- Download file
Bulk delete (use carefully)
Section titled “Bulk delete (use carefully)”- Select items to delete
- Click delete icon
- Confirm deletion
- Note: Some deletes are permanent
Data import
Section titled “Data import”Importing leads
Section titled “Importing leads”- Navigate to Leads collection
- Click import icon
- Upload CSV file with columns:
email(required)company_name(required)first_name,last_namephonecity,state,countryintent_scoreintent_topics(comma-separated)
- Map CSV columns to lead fields
- Preview import
- Confirm and import
The platform will validate email formats, check for duplicates, assign to your team, and index for search.
Troubleshooting
Section titled “Troubleshooting”Can’t save lead
Section titled “Can’t save lead”- Check required fields — Email and company_name are required
- Check email format — Must be valid email
- Check team assignment — Must belong to a team
- Check permissions — You may not have edit rights
Campaign not sending
Section titled “Campaign not sending”- Check status — Must be “active”
- Check segment — Must have target_segment_id
- Check content — Must have subject_line and html_content
- Check integrations — Required services must be configured in Globals
Segment not updating
Section titled “Segment not updating”- Check is_active — Must be true
- Check rules syntax — Must be valid JSON
- Check last_recalculated_at — May need manual refresh
- Contact administrator — May need system recalculation
Can’t access collection
Section titled “Can’t access collection”- Check user role — May not have permission
- Check team membership — May not be in correct team
- Contact administrator — Permissions may need adjustment
Best practices
Section titled “Best practices”Lead management
Section titled “Lead management”- Keep data clean — Remove invalid emails regularly
- Monitor duplicates — Review deduplication_audits weekly
- Track engagement — Update engagement_count and last_engaged_at
- Use quality_score — Flag low-quality leads
- Respect is_suppressed — Never contact suppressed leads
Campaign management
Section titled “Campaign management”- Test segments first — Verify segment_size before launching
- Use descriptive names — Include date and target in campaign name
- Track QR codes — Monitor qr_scans for engagement
- Archive old campaigns — Keep active list clean
Segment building
Section titled “Segment building”- Start simple — Test rules with small datasets
- Document rules — Add description explaining segment logic
- Monitor size — Large segments may impact performance
- Use appropriate types — Static for one-time, dynamic for ongoing
AI prompts
Section titled “AI prompts”- Version prompts — Include version in name or description
- Test with real data — Use actual lead placeholders
- Keep focused — One prompt per use case
- Archive old versions — Don’t delete, archive for history
Security
Section titled “Security”- Protect Globals — Only admins should edit API keys
- Use strong passwords — For user accounts
- Regular audits — Review activity_logs monthly
- Backup data — Export critical collections weekly
Getting help
Section titled “Getting help”In-app help
Section titled “In-app help”- Hover over field names for descriptions
- Check field notes for detailed guidance
- Review activity_logs for recent changes
Documentation
Section titled “Documentation”- Directus Official Docs
- Platform-specific docs (check with your team)
Contact support
Section titled “Contact support”- Technical Issues — Contact system administrator
- Data Questions — Reach out to data team lead
- Feature Requests — Discuss with product team
Quick reference
Section titled “Quick reference”Collection overview
Section titled “Collection overview”| Collection | Purpose | Key Fields |
|---|---|---|
| Leads | Contact records | email, company_name, intent_score |
| Campaigns | Marketing campaigns | name, status, target_segment_id |
| Segments | Audience groups | name, rules, is_active |
| AI Prompts | AI templates | name, system_prompt, messages |
| Settings | Configuration | key, value, section |
| Globals | API credentials | openai_api_key, twilio_* |
| Teams | Organizations | name, subscription_status |
| Users | Team members | name, email, role |
Common status values
Section titled “Common status values”Leads: new (recently added), qualified (meets criteria), contacted (outreach sent), engaged (responded), converted (became customer)
Campaigns: draft (being created), active (currently running), paused (temporarily stopped), completed (finished)
General: draft (work in progress), published (active/live), archived (retired)
Intent score ranges
Section titled “Intent score ranges”- 0–30: Low intent — Research phase
- 31–60: Medium intent — Evaluating options
- 61–80: High intent — Ready to engage
- 81–100: Very high intent — Hot lead
Field types
Section titled “Field types”- Text — Short text (email, name)
- Textarea — Long text (notes)
- Number — Numeric (intent_score, quality_score)
- Boolean — True/false (is_canonical, is_suppressed)
- Date/Time — Timestamps (created_at, launched_at)
- JSON — Structured data (rules, meta, intent_topics)
- Dropdown — Select from options (status, role)
- M2O — Link to another item (team_id, segment_id)
Remember: This is a buyer intent platform — accurate lead data and well-targeted campaigns drive results. Keep your data clean and up-to-date!