Chuyển tới nội dung chính

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


Build once, deploy many. Customization is key to scaling your partner business.