Ask0 logoAsk0

Projects

Learn how to create, configure, and manage multiple AI assistant projects in Ask0. Organize your documentation sources and customize settings for each project.

Projects in Ask0 encapsulate individual AI assistants for different products, websites, or use cases. Each project has its own knowledge sources, configuration, branding, and analytics.

What is a Project?

A project represents:

  • One AI assistant for a specific product or website
  • Dedicated knowledge base from configured sources
  • Custom branding matching your product
  • Separate analytics and conversation tracking
  • Unique configuration for behavior and responses

Creating a Project

From your organisation dashboard, click "New Project"

Configure Basic Settings

Project Details:
  Name: Documentation Assistant
  Slug: docs-assistant
  Description: AI helper for product documentation

Website:
  URL: https://docs.example.com
  Allowed Domains:
    - docs.example.com
    - app.example.com

Language: English
Timezone: America/New_York

Choose AI Model

Select your preferred AI model:

AI Configuration:
  Provider: OpenAI
  Model: gpt-4-turbo
  Temperature: 0.7
  Max Tokens: 2000

Embedding Model: text-embedding-3-large
Language Support: Multi-lingual

Set Initial Sources

Add at least one knowledge source:

  • Web crawler for your documentation
  • Custom knowledge for FAQs
  • Upload existing help content

Project Settings

General Configuration

Core project settings:

Project Info:
  Name: Product Documentation Bot
  ID: proj_abc123xyz
  Created: 2024-01-15
  Status: Active

URLs:
  Widget URL: https://widget.ask0.ai/proj_abc123xyz
  API Endpoint: https://api.ask0.ai/v1/projects/proj_abc123xyz

Access:
  Public Widget: Enabled
  API Access: Enabled
  Require Auth: No

AI & Response Settings

Configure how your assistant behaves:

Response Configuration:
  Personality: Professional and helpful
  Tone: Friendly but concise

  Response Rules:
    Max Length: 500 words
    Include Sources: Always
    Confidence Threshold: 0.7
    Fallback Message: "I don't have enough information..."

  Capabilities:
    Code Examples: Yes
    Link Suggestions: Yes
    Follow-up Questions: Yes
    Multi-turn Context: 10 messages

Domain Whitelisting

Control where your widget can be embedded:

Allowed Domains:
  Production:
    - https://example.com
    - https://docs.example.com
    - https://app.example.com

  Development:
    - http://localhost:3000
    - http://localhost:8080
    - https://*.vercel.app

Security:
  Strict Mode: Yes
  Block Unlisted: Yes
  CORS Enabled: Yes

Branding & Customization

Visual Identity

Match your brand:

Brand Settings:
  Logo: Upload SVG/PNG
  Primary Color: #0066CC
  Secondary Color: #F0F4F8

  Typography:
    Font Family: Inter, system-ui
    Header Size: 16px
    Body Size: 14px

  Widget Style:
    Position: bottom-right
    Size: medium
    Border Radius: 12px
    Shadow: medium

Custom Messages

Personalize user interactions:

Messages:
  Greeting: "Hi! How can I help you today?"
  Placeholder: "Ask me anything about our product..."

  Thinking: "Searching for answers..."
  Error: "Sorry, something went wrong. Please try again."

  No Results: "I couldn't find an answer. Try rephrasing?"
  Feedback Request: "Was this helpful?"

  Suggestions:
    - "How do I get started?"
    - "What are the key features?"
    - "Show me pricing options"

Theme Configuration

Advanced theming with shadcn:

// Custom theme
const theme = {
  colors: {
    background: "0 0% 100%",
    foreground: "222.2 84% 4.9%",
    primary: "221.2 83.2% 53.3%",
    secondary: "210 40% 96.1%",
    accent: "210 40% 96.1%",
    muted: "210 40% 96.1%",
  },
  radius: "0.5rem",
  components: {
    button: {
      variant: "default",
      size: "md"
    },
    input: {
      variant: "outlined"
    }
  }
};

Knowledge Sources

Managing Sources

Each project can have multiple sources:

Sources:
  1. Website Crawler:
     URL: https://docs.example.com
     Status: Active
     Documents: 1,234
     Last Sync: 2 hours ago

  2. GitHub Issues:
     Repository: company/product
     Status: Active
     Issues: 456
     Last Sync: 1 hour ago

  3. Custom Knowledge:
     Type: FAQ
     Entries: 89
     Status: Active

Total Documents: 1,779
Total Tokens: 2.3M

Source Priority

Configure source preferences:

sourcePriority: {
  "documentation": 1.0,    // Highest priority
  "github_issues": 0.8,
  "custom_knowledge": 0.9,
  "blog_posts": 0.6        // Lower priority
}

Integration Settings

Widget Configuration

Embed settings for your website:

<!-- Basic Integration -->
<script
  src="https://assets.ask0.ai/scripts/ask.js"
  data-project-id="proj_abc123xyz"
  data-theme="light"
  data-position="bottom-right"
></script>

API Configuration

For programmatic access:

API Settings:
  Enabled: Yes
  Rate Limit: 1000 req/hour

  Endpoints:
    Chat: /api/v1/projects/{id}/chat
    Search: /api/v1/projects/{id}/search
    Feedback: /api/v1/projects/{id}/feedback

  Authentication:
    Type: API Key
    Key: sk_proj_...
    Permissions: Read/Write

Webhooks

Configure event notifications:

Webhooks:
  Endpoint: https://api.example.com/webhooks
  Secret: webhook_secret_key

  Events:
    - conversation.started
    - conversation.ended
    - feedback.received
    - source.updated

  Retry: 3 times with backoff

Analytics & Monitoring

Project Dashboard

Key metrics at a glance:

Today's Stats:
  Conversations: 234
  Questions: 567
  Avg Response Time: 1.8s
  Satisfaction: 92%

This Month:
  Total Conversations: 5,432
  Unique Users: 2,134
  Questions Answered: 12,456
  Knowledge Gaps: 234

Performance Metrics

Track assistant effectiveness:

Performance:
  Answer Quality:
    High Confidence: 78%
    Medium Confidence: 18%
    Low Confidence: 4%

  Response Times:
    P50: 1.2s
    P95: 2.8s
    P99: 4.1s

  User Satisfaction:
    Positive: 85%
    Neutral: 10%
    Negative: 5%

Project Management

Environments

Manage multiple environments:

Environments:
  Production:
    ID: proj_prod_xyz
    URL: https://example.com
    Sources: Live data

  Staging:
    ID: proj_stage_xyz
    URL: https://staging.example.com
    Sources: Staging data

  Development:
    ID: proj_dev_xyz
    URL: http://localhost:3000
    Sources: Test data

Version Control

Track project changes:

Version History:
  v2.1.0:
    Date: 2024-01-15
    Changes:
      - Updated response personality
      - Added new FAQ source
      - Changed brand colors

  v2.0.0:
    Date: 2024-01-01
    Changes:
      - Major UI redesign
      - Switched to GPT-4
      - Added multi-language support

Backup & Export

Manage project data:

Backup Options:
  Automatic: Daily at 2 AM
  Retention: 30 days

Export Formats:
  - Configuration (JSON)
  - Conversations (CSV)
  - Analytics (Excel)
  - Knowledge Base (ZIP)

Import:
  From Backup: Restore point
  From Template: Standard configs

Advanced Features

Custom Responses

Define specific responses:

customResponses: [
  {
    trigger: "pricing",
    response: "Our pricing starts at $99/month. Visit example.com/pricing for details.",
    priority: "high"
  },
  {
    trigger: "contact sales",
    response: "Contact our sales team at sales@example.com or call 1-800-EXAMPLE",
    priority: "high"
  }
]

Conversation Flows

Guide conversations:

Flows:
  Onboarding:
    Trigger: "get started"
    Steps:
      1. Ask about use case
      2. Suggest relevant docs
      3. Offer demo link

  Troubleshooting:
    Trigger: "error" or "problem"
    Steps:
      1. Identify issue type
      2. Provide solutions
      3. Escalate if needed

A/B Testing

Test different configurations:

Experiments:
  Test: Response Length
  Variants:
    A: Max 200 words (50%)
    B: Max 500 words (50%)

  Metrics:
    - User satisfaction
    - Conversation completion
    - Follow-up questions

  Duration: 2 weeks

Project API

Programmatic project management:

// Get project details
const project = await ask0.projects.get('proj_abc123xyz');

// Update configuration
await ask0.projects.update('proj_abc123xyz', {
  settings: {
    name: 'Updated Project Name',
    aiModel: 'gpt-4-turbo'
  }
});

// Query the assistant
const response = await ask0.projects.query('proj_abc123xyz', {
  message: 'How do I integrate the API?',
  userId: 'user_123',
  context: previousMessages
});

// Get analytics
const analytics = await ask0.projects.getAnalytics('proj_abc123xyz', {
  period: 'last_30_days'
});

Best Practices

Project Management Tips:

  1. Use descriptive project names
  2. Set up staging environment for testing
  3. Regular backup important projects
  4. Monitor analytics weekly
  5. Update sources regularly
  6. Test widget on all target pages
  7. Configure appropriate rate limits

Project Organization

Structure projects effectively:

Naming Convention:
  Pattern: [product]-[environment]-[purpose]
  Examples:
    - webapp-prod-support
    - docs-staging-assistant
    - api-dev-testing

Categorization:
  By Product: Group related products
  By Team: Assign to departments
  By Purpose: Support, docs, sales

Troubleshooting

Widget not appearing

  • Verify project ID is correct
  • Check domain whitelist
  • Review browser console for errors

Poor response quality

  • Review source quality
  • Adjust confidence threshold
  • Update AI model settings

High costs

  • Optimize source size
  • Adjust rate limits
  • Review usage patterns

Next Steps