{
  "schemaVersion": "1.0",
  "name": "skode-crm",
  "displayName": "Skode CRM",
  "description": "AI-native CRM agent from Skode Technologies. Read and (with confirmation) write leads, contacts, deals, tasks, invoices, and e-commerce data for the authenticated user's workspace.",
  "version": "2026.04.20",
  "vendor": {
    "name": "Skode Technologies Private Limited",
    "url": "https://skode.ai",
    "contactEmail": "support@skode.ai",
    "legalJurisdiction": "India"
  },
  "icons": [
    {
      "url": "https://skode.ai/brand/skode-logo-120.png",
      "mediaType": "image/png",
      "size": "120x120"
    },
    {
      "url": "https://skode.ai/brand/skode-logo-512.png",
      "mediaType": "image/png",
      "size": "512x512"
    },
    {
      "url": "https://skode.ai/brand/skode-logo-64.png",
      "mediaType": "image/png",
      "size": "64x64"
    }
  ],
  "endpoints": {
    "jsonRpc": "https://api.skode.ai/a2a",
    "sse": "https://api.skode.ai/a2a/stream"
  },
  "authentication": {
    "scheme": "oauth2",
    "flow": "authorizationCode",
    "authorizationUrl": "https://app.skode.ai/oauth/authorize",
    "tokenUrl": "https://api.skode.ai/oauth/token",
    "pkceRequired": true,
    "pkceMethod": "S256",
    "dynamicClientRegistrationUrl": "https://api.skode.ai/oauth/register",
    "scopesSupported": [
      "crm.leads.read",
      "crm.leads.write",
      "crm.contacts.read",
      "crm.contacts.write",
      "crm.deals.read",
      "crm.deals.write",
      "crm.tasks.read",
      "crm.tasks.write",
      "crm.invoices.read",
      "crm.invoices.write",
      "crm.reports.read",
      "ecom.orders.read",
      "ecom.products.read",
      "ecom.revenue.read"
    ]
  },
  "capabilities": {
    "streaming": true,
    "pushNotifications": true,
    "stateTransitionHistory": true,
    "multiTurn": true
  },
  "defaultInputModes": ["TEXT"],
  "defaultOutputModes": ["TEXT", "STRUCTURED_DATA"],
  "skills": [
    {
      "id": "summarize_pipeline",
      "name": "Summarise pipeline",
      "description": "Read-only. Produces an executive summary of the CRM pipeline for a given period: total value, deal count, win rate, top deals, at-risk deals.",
      "tags": ["crm", "sales", "reporting"],
      "inputModes": ["TEXT"],
      "outputModes": ["TEXT", "STRUCTURED_DATA"],
      "requiresConfirmation": false,
      "readOnly": true
    },
    {
      "id": "list_overdue_tasks",
      "name": "List overdue tasks",
      "description": "Read-only. Lists tasks past their due date for the authenticated user's workspace, optionally filtered by owner.",
      "tags": ["crm", "tasks", "productivity"],
      "inputModes": ["TEXT"],
      "outputModes": ["TEXT", "STRUCTURED_DATA"],
      "requiresConfirmation": false,
      "readOnly": true
    },
    {
      "id": "draft_followup_email",
      "name": "Draft follow-up email",
      "description": "Read-only. Drafts a personalised follow-up email for a given contact or deal using CRM context. Never sends; returns the draft for the user to review.",
      "tags": ["crm", "email", "productivity"],
      "inputModes": ["TEXT"],
      "outputModes": ["TEXT"],
      "requiresConfirmation": false,
      "readOnly": true
    },
    {
      "id": "ecommerce_revenue_report",
      "name": "E-commerce revenue report",
      "description": "Read-only. Returns period-over-period revenue broken down by product category or SKU, with flagged SKUs by return rate.",
      "tags": ["ecommerce", "reporting"],
      "inputModes": ["TEXT"],
      "outputModes": ["TEXT", "STRUCTURED_DATA"],
      "requiresConfirmation": false,
      "readOnly": true
    },
    {
      "id": "update_deal_stage",
      "name": "Update deal stage",
      "description": "Mutates. Moves a deal to a new pipeline stage. Requires explicit user confirmation on both the Gemini side and the Skode server side.",
      "tags": ["crm", "sales", "write"],
      "inputModes": ["TEXT"],
      "outputModes": ["TEXT", "STRUCTURED_DATA"],
      "requiresConfirmation": true,
      "readOnly": false
    },
    {
      "id": "create_task",
      "name": "Create task",
      "description": "Mutates. Creates a new CRM task for the authenticated user or a teammate. Requires explicit user confirmation on both sides.",
      "tags": ["crm", "tasks", "write"],
      "inputModes": ["TEXT"],
      "outputModes": ["TEXT", "STRUCTURED_DATA"],
      "requiresConfirmation": true,
      "readOnly": false
    }
  ],
  "dataHandling": {
    "dataResidency": "AWS ap-south-1 (Mumbai, India)",
    "promptRetention": "none",
    "responseRetention": "none",
    "usedForModelTraining": false,
    "googleApiLimitedUseCompliant": true
  },
  "policies": {
    "privacyPolicy": "https://skode.ai/privacy/",
    "termsOfService": "https://skode.ai/terms/",
    "dataProcessingAddendum": "https://skode.ai/dpa/",
    "subProcessors": "https://skode.ai/legal/sub-processors/",
    "aiConnectorTerms": "https://skode.ai/legal/ai-connector-terms/",
    "securityPolicy": "https://skode.ai/security/",
    "securityTxt": "https://skode.ai/.well-known/security.txt",
    "acceptableUsePolicy": "https://skode.ai/acceptable-use/"
  },
  "documentation": {
    "endUser": "https://skode.ai/docs/gemini-connector/",
    "technical": "https://skode.ai/docs/mcp-server/",
    "openApi": "https://api.skode.ai/openapi.json"
  },
  "support": {
    "contactUrl": "https://skode.ai/contact/",
    "statusUrl": "https://skode.ai/status/",
    "supportEmail": "support@skode.ai",
    "securityEmail": "security@skode.ai"
  },
  "signatures": [
    {
      "protected": "see-jws-signed-variant",
      "signature": "see-jws-signed-variant",
      "note": "This is the unsigned variant for development and discovery. Production consumers should fetch the signed variant at /.well-known/agent-card.jws, which is a JWS Compact Serialization over the canonical JCS (RFC 8785) form of this document. The signing key is published in JWKS at https://skode.ai/.well-known/jwks.json."
    }
  ]
}
