Partner Customization
Transform FAOS into your own branded AI agent platform. This guide covers advanced customization options for partners who want to deliver fully white-labeled solutions to their clients.
White-Label Brandingβ
Visual Brandingβ
Dashboard Theme Customizationβ
Create a fully branded experience for your clients.
Navigate to Partner Portal > Branding > Theme Editor
Brand Configuration:
Company Name: "AgentFlow AI"
Tagline: "Intelligent Automation for Modern Business"
Color Palette:
Primary: "#0066CC" # Main brand color
Secondary: "#FF6B35" # Accent color
Success: "#28A745" # Success states
Warning: "#FFC107" # Warnings
Error: "#DC3545" # Errors
Background: "#F8F9FA" # Page background
Surface: "#FFFFFF" # Cards, panels
Text Primary: "#212529" # Main text
Text Secondary: "#6C757D" # Subtitles, labels
Typography:
Heading Font: "Inter"
Body Font: "Inter"
Monospace Font: "JetBrains Mono"
Base Size: 16px
Logo Assets:
Dashboard Logo: logo-dashboard.svg (2000x500px)
Login Logo: logo-login.svg (500x500px)
Email Logo: logo-email.png (600x200px)
Favicon: favicon.ico (32x32px)
App Icon: app-icon.png (512x512px)
Preview Your Themeβ
// Test theme in sandbox before deploying
const themePreview = await faos.partners.branding.preview({
theme_id: "your-theme-id",
viewport: "desktop" // or "tablet", "mobile"
});
console.log(`Preview URL: ${themePreview.url}`);
// Visit URL to see live preview
Apply Theme to Clientsβ
// Apply to all clients
await faos.partners.branding.applyTheme({
theme_id: "your-theme-id",
scope: "all_clients"
});
// Apply to specific client
await faos.partners.branding.applyTheme({
theme_id: "your-theme-id",
workspace_id: "client-workspace-id"
});
Custom Domain & SSLβ
Set Up Custom Domainβ
Step 1: Configure DNS
Add these DNS records at your domain provider:
Type: CNAME
Host: agents (or app, portal, etc.)
Value: partners.faos.ai
TTL: 3600
Step 2: Request SSL Certificate
await faos.partners.domains.create({
domain: "agents.yourcompany.com",
ssl: {
provider: "letsencrypt", // or "custom"
auto_renew: true
}
});
Step 3: Verify Domain
# FAOS will provide a verification code
# Add TXT record to verify ownership
Type: TXT
Host: _faos-verification
Value: abc123xyz456...
Step 4: Activate
Once verified (usually 10-30 minutes):
- SSL certificate auto-provisioned
- Domain becomes active
- Clients access platform at your domain
Custom Email Domainβ
Send all system emails from your domain:
Email Configuration:
Domain: yourcompany.com
From Name: "AgentFlow AI"
From Address: noreply@yourcompany.com
Reply To: support@yourcompany.com
SMTP Settings:
Host: smtp.yourcompany.com
Port: 587
Security: TLS
Username: noreply@yourcompany.com
Password: [encrypted]
Email Templates: Customize all transactional emails
// Customize welcome email
await faos.partners.emails.updateTemplate({
template: "welcome",
subject: "Welcome to {{company_name}}!",
body: `
<html>
<body style="font-family: Inter, sans-serif;">
<img src="{{logo_url}}" alt="{{company_name}}" />
<h1>Welcome, {{user_name}}!</h1>
<p>Your AI agent platform is ready...</p>
</body>
</html>
`
});
Custom Help & Documentationβ
Embed Your Documentationβ
Replace default FAOS docs with your own:
Documentation Settings:
Help Center URL: https://docs.yourcompany.com
Support Email: support@yourcompany.com
Support Phone: +1-555-0100
Live Chat: enabled
Chat Widget: intercom
Custom Links:
- title: "Getting Started"
url: "https://docs.yourcompany.com/start"
- title: "Video Tutorials"
url: "https://www.youtube.com/yourcompany"
- title: "Community Forum"
url: "https://community.yourcompany.com"
In-App Tutorialsβ
Create guided walkthroughs for your clients:
await faos.partners.tutorials.create({
name: "Create Your First Agent",
steps: [
{
target: "#new-agent-button",
title: "Start Here",
content: "Click this button to create your first agent.",
position: "bottom"
},
{
target: "#agent-name-input",
title: "Name Your Agent",
content: "Give your agent a descriptive name.",
position: "right"
}
// ... more steps
],
auto_start: "new_user" // Show to new users automatically
});
Agent Template Libraryβ
Build reusable agent configurations for rapid client deployment.
Creating Agent Templatesβ
Template Structureβ
const template = {
name: "E-commerce Customer Service Agent",
description: "Handles customer inquiries, order status, returns",
category: "customer_service",
industry: "retail",
config: {
model: "gpt-4",
temperature: 0.7,
autonomy_level: 2,
system_prompt: `You are a customer service agent for {{company_name}}.
Your role:
- Answer product questions
- Check order status
- Process returns (under ${{return_threshold}})
- Escalate complex issues
Knowledge:
{{knowledge_base}}
Always be friendly, professional, and helpful.`,
capabilities: [
"query_orders",
"process_returns",
"send_emails",
"create_tickets"
],
integrations: {
required: ["shopify", "email"],
optional: ["zendesk", "slack"]
},
variables: [
{
name: "company_name",
type: "string",
required: true,
description: "Client company name"
},
{
name: "return_threshold",
type: "number",
default: 100,
description: "Auto-approve returns under this amount"
}
],
business_rules: [
{
condition: "order.value > 1000",
action: "escalate",
reason: "High-value order requires human review"
},
{
condition: "return.value <= {{return_threshold}}",
action: "auto_approve",
reason: "Within auto-approval threshold"
}
]
}
};
const savedTemplate = await faos.partners.templates.create(template);
Deploy Template to Clientβ
// Deploy with client-specific configuration
const agent = await faos.partners.templates.deploy({
template_id: savedTemplate.id,
workspace_id: "client-workspace-id",
variables: {
company_name: "Acme Store",
return_threshold: 150 // Override default
},
integrations: {
shopify: {
shop_url: "acme-store.myshopify.com",
access_token: "shpat_..."
},
email: {
smtp_host: "smtp.acme.com",
from_email: "support@acme.com"
}
},
knowledge_base: [
"acme-product-catalog.pdf",
"acme-policies.md",
"acme-faq.md"
]
});
console.log(`Agent deployed: ${agent.id}`);
Template Categoriesβ
Organize templates by use case:
Customer Service
- Support ticket handler
- FAQ assistant
- Complaint resolution
- Product recommendations
Sales & Marketing
- Lead qualification
- Email campaigns
- Social media engagement
- Proposal generation
Operations
- Invoice processing
- Inventory management
- Scheduling assistant
- Report generation
HR & Admin
- Employee onboarding
- Leave requests
- Expense approvals
- Meeting coordination
Template Marketplaceβ
Share templates with other partners (optional):
await faos.partners.templates.publish({
template_id: savedTemplate.id,
marketplace: {
visibility: "public", // or "private", "partners_only"
pricing: {
model: "free", // or "one_time", "subscription"
amount: 0
},
tags: ["customer-service", "e-commerce", "retail"],
support_url: "https://yourcompany.com/template-support"
}
});
Workflow Templatesβ
Pre-built automation workflows for common business processes.
Multi-Step Workflow Exampleβ
Customer Onboarding Workflowβ
name: "Customer Onboarding Automation"
description: "Complete onboarding flow from signup to activation"
trigger:
type: webhook
event: customer.created
steps:
- id: welcome_email
name: "Send Welcome Email"
type: agent_action
agent: email_agent
action: send_email
config:
template: welcome
to: "{{trigger.customer.email}}"
variables:
customer_name: "{{trigger.customer.name}}"
- id: create_account
name: "Create Customer Account"
type: integration
integration: stripe
action: create_customer
config:
email: "{{trigger.customer.email}}"
metadata:
source: "{{trigger.source}}"
- id: check_plan
name: "Check Subscription Plan"
type: condition
condition: "{{trigger.customer.plan}} === 'premium'"
- id: assign_manager
name: "Assign Account Manager"
type: agent_action
when: "{{check_plan.result}} === true"
agent: sales_agent
action: assign_account_manager
config:
customer_id: "{{create_account.customer.id}}"
tier: premium
- id: setup_call
name: "Schedule Setup Call"
type: integration
when: "{{check_plan.result}} === true"
integration: calendly
action: create_booking
config:
attendee_email: "{{trigger.customer.email}}"
event_type: premium_onboarding
- id: standard_resources
name: "Send Getting Started Resources"
type: agent_action
when: "{{check_plan.result}} === false"
agent: email_agent
action: send_email
config:
template: getting_started
to: "{{trigger.customer.email}}"
- id: complete
name: "Mark Onboarding Complete"
type: webhook
url: "{{env.WEBHOOK_URL}}/onboarding/complete"
method: POST
body:
customer_id: "{{create_account.customer.id}}"
completed_at: "{{now}}"
plan: "{{trigger.customer.plan}}"
Deploy this workflow template:
await faos.partners.workflows.deployTemplate({
template: "customer-onboarding",
workspace_id: "client-workspace-id",
config: {
env: {
WEBHOOK_URL: "https://client-app.com/webhooks"
}
}
});
Integration Presetsβ
Pre-configured integrations for faster client onboarding.
Common Integration Presetsβ
Shopify E-commerceβ
const shopifyPreset = {
name: "Shopify Full Integration",
type: "shopify",
scopes: [
"read_products",
"read_orders",
"write_orders",
"read_customers",
"write_customers"
],
webhooks: [
"orders/create",
"orders/updated",
"customers/create",
"products/create"
],
default_mappings: {
"order.id": "{{shopify.order.id}}",
"order.total": "{{shopify.order.total_price}}",
"customer.email": "{{shopify.customer.email}}"
}
};
// Deploy preset to client
await faos.partners.integrations.deployPreset({
preset: shopifyPreset,
workspace_id: "client-workspace-id",
credentials: {
shop_url: "client-store.myshopify.com",
access_token: "shpat_..."
}
});
Salesforce CRMβ
const salesforcePreset = {
name: "Salesforce Sales & Support",
type: "salesforce",
objects: [
"Account",
"Contact",
"Lead",
"Opportunity",
"Case"
],
sync_direction: "bidirectional",
sync_frequency: "real_time",
field_mappings: {
"contact.email": "{{salesforce.Contact.Email}}",
"contact.phone": "{{salesforce.Contact.Phone}}",
"account.name": "{{salesforce.Account.Name}}"
}
};
Custom Integration Builderβ
For unique client needs:
const customIntegration = await faos.partners.integrations.createCustom({
name: "Custom ERP Integration",
workspace_id: "client-workspace-id",
connection: {
type: "rest_api",
base_url: "https://client-erp.com/api/v1",
auth: {
type: "oauth2",
token_url: "https://client-erp.com/oauth/token",
client_id: "...",
client_secret: "..."
}
},
endpoints: [
{
name: "get_order",
method: "GET",
path: "/orders/{{order_id}}",
response_mapping: {
"order.id": "$.id",
"order.status": "$.status",
"order.total": "$.amount"
}
},
{
name: "create_shipment",
method: "POST",
path: "/shipments",
body_template: {
order_id: "{{order.id}}",
tracking_number: "{{tracking.number}}",
carrier: "{{shipping.carrier}}"
}
}
]
});
Custom Autonomy Levelsβ
Define custom autonomy levels beyond the standard L1-L4.
Industry-Specific Autonomyβ
Healthcare: HIPAA-Compliant Levelsβ
const healthcareAutonomy = {
levels: [
{
level: "H1",
name: "Information Only",
description: "Provides information, never accesses PHI",
capabilities: ["answer_general_questions"],
restrictions: ["no_phi_access", "no_scheduling", "no_prescriptions"]
},
{
level: "H2",
name: "Assisted Scheduling",
description: "Can view PHI, schedule appointments with approval",
capabilities: ["read_phi", "suggest_appointments"],
restrictions: ["require_approval_for_scheduling"],
approval_required: ["human_scheduler"]
},
{
level: "H3",
name: "Autonomous Scheduling",
description: "Full scheduling autonomy within constraints",
capabilities: ["read_phi", "create_appointments", "send_reminders"],
restrictions: ["cannot_cancel_without_approval"],
audit_logging: "all_actions"
}
]
};
await faos.partners.autonomy.createCustomLevels({
workspace_id: "healthcare-client-id",
levels: healthcareAutonomy.levels,
compliance: ["HIPAA", "HITECH"]
});
Financial Services: Compliance-Firstβ
const financeAutonomy = {
levels: [
{
level: "F1",
name: "Read-Only Advisor",
description: "Can view accounts, provide advice only",
capabilities: ["read_accounts", "calculate_scenarios"],
restrictions: ["no_transactions", "no_account_changes"]
},
{
level: "F2",
name: "Limited Transactions",
description: "Can execute small transactions with limits",
capabilities: ["read_accounts", "execute_transfers"],
restrictions: [
"max_transaction_amount: 1000",
"require_2fa_for_transfers",
"daily_limit: 5000"
]
},
{
level: "F3",
name: "Full Service",
description: "Complete account management with oversight",
capabilities: ["all_banking_operations"],
restrictions: [
"max_single_transaction: 10000",
"require_approval_above: 50000"
],
monitoring: "real_time_fraud_detection"
}
]
};
Advanced UI Customizationβ
Custom Dashboard Widgetsβ
Add client-specific widgets to the dashboard:
const customWidget = await faos.partners.widgets.create({
workspace_id: "client-workspace-id",
widget: {
id: "sales-pipeline",
title: "Sales Pipeline",
type: "chart",
size: "large", // small, medium, large
position: { row: 1, col: 1 },
data_source: {
type: "integration",
integration: "salesforce",
query: `
SELECT Stage, COUNT(Id) as count
FROM Opportunity
WHERE IsClosed = false
GROUP BY Stage
`
},
visualization: {
type: "funnel",
config: {
x_axis: "Stage",
y_axis: "count",
colors: ["#0066CC", "#FF6B35", "#28A745"]
}
},
refresh_interval: 300 // seconds
}
});
Custom Navigationβ
Reorganize the dashboard menu:
Navigation:
Logo Position: top-left
Layout: sidebar # or topbar
Menu Items:
- label: "Dashboard"
icon: "home"
route: "/dashboard"
- label: "My Agents"
icon: "robot"
route: "/agents"
badge: "{{active_agents}}"
- label: "Workflows"
icon: "workflow"
route: "/workflows"
- separator: true
- label: "Analytics"
icon: "chart"
route: "/analytics"
submenu:
- label: "Performance"
route: "/analytics/performance"
- label: "Costs"
route: "/analytics/costs"
- label: "Integrations"
icon: "plug"
route: "/integrations"
- separator: true
- label: "Settings"
icon: "settings"
route: "/settings"
- label: "Help & Support"
icon: "help"
url: "https://support.yourcompany.com"
external: true
Client-Specific Customizationβ
Tailor experiences per client workspace.
Per-Client Brandingβ
// Client A: Corporate blue theme
await faos.partners.branding.setClientTheme({
workspace_id: "client-a-id",
primary_color: "#003366",
logo: "client-a-logo.png"
});
// Client B: Vibrant startup theme
await faos.partners.branding.setClientTheme({
workspace_id: "client-b-id",
primary_color: "#FF6B35",
logo: "client-b-logo.png"
});
Per-Client Feature Flagsβ
Enable features selectively:
await faos.partners.features.configure({
workspace_id: "premium-client-id",
features: {
advanced_analytics: true,
custom_models: true,
priority_support: true,
api_access: true,
white_labeling: true
}
});
await faos.partners.features.configure({
workspace_id: "standard-client-id",
features: {
advanced_analytics: false,
custom_models: false,
priority_support: false,
api_access: true,
white_labeling: false
}
});
Next Stepsβ
- Partner Deployment - Deploy solutions at scale
- Enterprise Setup - Self-hosted installations
- API Reference - Automate customization via API
Build once, deploy many. Customization is key to scaling your partner business.