Allstate Capabilities
Naftiko 0.5 capability definitions for Allstate - 100 capabilities showing integration workflows and service orchestrations.
Validates actuarial models in Snowflake, deploys to production scoring engine, monitors performance in Grafana, and notifies actuarial.
naftiko: "0.5"
info:
label: "Actuarial Model Deployment Orchestrator"
description: "Validates actuarial models in Snowflake, deploys to production scoring engine, monitors performance in Grafana, and notifies actuarial."
tags:
- actuarial
- snowflake
- grafana
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: actuarial
port: 8080
tools:
- name: actuarial_model_deployment_orchestrator
description: "Orchestrate actuarial model deployment orchestrator workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-grafana
type: call
call: "grafana.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-servicenow
type: call
call: "servicenow.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: grafana
baseUri: "https://allstate-grafana.com/api"
authentication:
type: bearer
token: "$secrets.grafana_api_key"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: grafana-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Deploys an actuarial pricing model by promoting the model in Azure ML, validating via Postman API tests, and publishing the deployment record in Confluence.
naftiko: "0.5"
info:
label: "Actuarial Model Deployment Pipeline"
description: "Deploys an actuarial pricing model by promoting the model in Azure ML, validating via Postman API tests, and publishing the deployment record in Confluence."
tags:
- actuarial
- model-deployment
- azure-machine-learning
- postman
- confluence
capability:
exposes:
- type: mcp
namespace: model-deployment
port: 8080
tools:
- name: deploy-actuarial-model
description: "Deploy an actuarial model through the full pipeline with validation and documentation."
inputParameters:
- name: model_name
in: body
type: string
description: "Name of the actuarial model to deploy."
- name: model_version
in: body
type: string
description: "Model version tag."
steps:
- name: deploy-model
type: call
call: "azureml.deploy-model"
with:
model_name: "{{model_name}}"
version: "{{model_version}}"
- name: run-validation
type: call
call: "postman.create-run"
with:
collection: "actuarial-model-tests"
environment: "production"
- name: document-deployment
type: call
call: "confluence.create-page"
with:
space_key: "ACTUARIAL"
title: "{{model_name}} v{{model_version}} Deployment"
body: "Model {{model_name}} version {{model_version}} deployed. Endpoint: {{deploy-model.endpoint_url}}. Validation: {{run-validation.status}}."
consumes:
- type: http
namespace: azureml
baseUri: "https://allstate-actuarial-ml.eastus2.inference.ml.azure.com"
authentication:
type: bearer
token: "$secrets.azureml_actuarial_token"
resources:
- name: deployments
path: "/deployments"
operations:
- name: deploy-model
method: POST
- type: http
namespace: postman
baseUri: "https://api.getpostman.com"
authentication:
type: apiKey
key: "$secrets.postman_api_key"
resources:
- name: collection-runs
path: "/collections/{{collection}}/runs"
inputParameters:
- name: collection
in: path
operations:
- name: create-run
method: POST
- type: http
namespace: confluence
baseUri: "https://allstate.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
# --- SIMPLE CAPABILITIES (call:) 36-50 ---
Collects agency metrics from Salesforce, aggregates in Snowflake, refreshes Power BI dashboards, and notifies distribution management.
naftiko: "0.5"
info:
label: "Agency Performance Dashboard Pipeline"
description: "Collects agency metrics from Salesforce, aggregates in Snowflake, refreshes Power BI dashboards, and notifies distribution management."
tags:
- distribution
- salesforce
- snowflake
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: distribution
port: 8080
tools:
- name: agency_performance_dashboard_pipeline
description: "Orchestrate agency performance dashboard pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-salesforce
type: call
call: "salesforce.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-snowflake
type: call
call: "snowflake.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-servicenow
type: call
call: "servicenow.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
Calculates agent commissions from policy data in Snowflake, validates against contracts, processes payments, and notifies agents.
naftiko: "0.5"
info:
label: "Agent Commission Calculation Pipeline"
description: "Calculates agent commissions from policy data in Snowflake, validates against contracts, processes payments, and notifies agents."
tags:
- commissions
- snowflake
- salesforce
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: commissions
port: 8080
tools:
- name: agent_commission_calculation_pipeline
description: "Orchestrate agent commission calculation pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-salesforce
type: call
call: "salesforce.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-servicenow
type: call
call: "servicenow.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Pulls agent commission data from Oracle E-Business Suite by agent ID. Returns total commissions, policy count, and performance tier for the current quarter.
naftiko: "0.5"
info:
label: "Agent Commission Report"
description: "Pulls agent commission data from Oracle E-Business Suite by agent ID. Returns total commissions, policy count, and performance tier for the current quarter."
tags:
- agent-management
- commissions
- oracle-e-business-suite
capability:
exposes:
- type: mcp
namespace: agent-finance
port: 8080
tools:
- name: get-agent-commissions
description: "Look up quarterly commission data for an Allstate agent from Oracle EBS. Returns total earned, policy count, and tier."
inputParameters:
- name: agent_id
in: body
type: string
description: "The Allstate agent identifier."
- name: quarter
in: body
type: string
description: "Fiscal quarter, e.g. 'Q1-2026'."
call: "oracle.get-commissions"
with:
agent_id: "{{agent_id}}"
quarter: "{{quarter}}"
outputParameters:
- name: total_commissions
type: string
mapping: "$.commissions.total_amount"
- name: policy_count
type: string
mapping: "$.commissions.policies_sold"
- name: performance_tier
type: string
mapping: "$.commissions.tier"
consumes:
- type: http
namespace: oracle
baseUri: "https://allstate-ebs.oracle.com/webservices/rest/v1"
authentication:
type: basic
username: "$secrets.oracle_user"
password: "$secrets.oracle_password"
resources:
- name: commissions
path: "/commissions?agent_id={{agent_id}}&quarter={{quarter}}"
inputParameters:
- name: agent_id
in: query
- name: quarter
in: query
operations:
- name: get-commissions
method: GET
Monitors agent licenses and appointments, validates against state requirements, creates renewal tasks, and notifies compliance.
naftiko: "0.5"
info:
label: "Agent Licensing Compliance Pipeline"
description: "Monitors agent licenses and appointments, validates against state requirements, creates renewal tasks, and notifies compliance."
tags:
- licensing
- snowflake
- servicenow
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: licensing
port: 8080
tools:
- name: agent_licensing_compliance_pipeline
description: "Orchestrate agent licensing compliance pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-salesforce
type: call
call: "salesforce.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Compiles an agent performance review by pulling sales data from Microsoft Dynamics 365, commission data from Oracle, and generating a summary report in Confluence.
naftiko: "0.5"
info:
label: "Agent Performance Review Compiler"
description: "Compiles an agent performance review by pulling sales data from Microsoft Dynamics 365, commission data from Oracle, and generating a summary report in Confluence."
tags:
- agent-management
- performance-metrics
- microsoft-dynamics-365
- oracle
- confluence
capability:
exposes:
- type: mcp
namespace: agent-reviews
port: 8080
tools:
- name: compile-agent-review
description: "Compile a comprehensive performance review for an insurance agent from multiple data sources."
inputParameters:
- name: agent_id
in: body
type: string
description: "The agent identifier."
- name: review_period
in: body
type: string
description: "Review period, e.g. 'Q1-2026'."
steps:
- name: get-sales-data
type: call
call: "dynamics.get-performance"
with:
agent_id: "{{agent_id}}"
period: "{{review_period}}"
- name: get-commissions
type: call
call: "oracle.get-commissions"
with:
agent_id: "{{agent_id}}"
quarter: "{{review_period}}"
- name: publish-review
type: call
call: "confluence.create-page"
with:
space_key: "AGENT_REVIEWS"
title: "Agent {{agent_id}} Review - {{review_period}}"
body: "Policies Sold: {{get-sales-data.value[0].policies_sold}}. CSAT: {{get-sales-data.value[0].csat_score}}. Total Commissions: ${{get-commissions.commissions.total_amount}}. Tier: {{get-commissions.commissions.tier}}."
consumes:
- type: http
namespace: dynamics
baseUri: "https://allstate.crm.dynamics.com/api/data/v9.2"
authentication:
type: bearer
token: "$secrets.dynamics_token"
resources:
- name: agent-metrics
path: "/agent_performances?$filter=agentid eq '{{agent_id}}' and period eq '{{period}}'"
inputParameters:
- name: agent_id
in: query
- name: period
in: query
operations:
- name: get-performance
method: GET
- type: http
namespace: oracle
baseUri: "https://allstate-ebs.oracle.com/webservices/rest/v1"
authentication:
type: basic
username: "$secrets.oracle_user"
password: "$secrets.oracle_password"
resources:
- name: commissions
path: "/commissions?agent_id={{agent_id}}&quarter={{quarter}}"
inputParameters:
- name: agent_id
in: query
- name: quarter
in: query
operations:
- name: get-commissions
method: GET
- type: http
namespace: confluence
baseUri: "https://allstate.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
Retrieves a vehicle damage repair estimate from Audatex by claim reference number. Used by auto claims adjusters to obtain standardized repair cost estimates.
naftiko: "0.5"
info:
label: "Audatex Vehicle Damage Estimate"
description: "Retrieves a vehicle damage repair estimate from Audatex by claim reference number. Used by auto claims adjusters to obtain standardized repair cost estimates."
tags:
- claims-processing
- vehicle-repairs
- audatex
capability:
exposes:
- type: mcp
namespace: auto-claims
port: 8080
tools:
- name: get-damage-estimate
description: "Look up a vehicle damage estimate in Audatex by claim reference. Returns estimated repair cost, parts list, and labor hours."
inputParameters:
- name: claim_reference
in: body
type: string
description: "The Audatex claim reference number."
call: "audatex.get-estimate"
with:
claim_reference: "{{claim_reference}}"
outputParameters:
- name: total_cost
type: string
mapping: "$.estimate.totalCost"
- name: parts_count
type: string
mapping: "$.estimate.partsCount"
- name: labor_hours
type: string
mapping: "$.estimate.laborHours"
consumes:
- type: http
namespace: audatex
baseUri: "https://api.audatex.com/v2"
authentication:
type: bearer
token: "$secrets.audatex_api_key"
resources:
- name: estimates
path: "/estimates/{{claim_reference}}"
inputParameters:
- name: claim_reference
in: path
operations:
- name: get-estimate
method: GET
Receives claim photos, runs AI damage assessment, retrieves vehicle data, creates estimate in ServiceNow, and notifies adjuster.
naftiko: "0.5"
info:
label: "Auto Claims Damage Assessment Pipeline"
description: "Receives claim photos, runs AI damage assessment, retrieves vehicle data, creates estimate in ServiceNow, and notifies adjuster."
tags:
- claims
- ai
- servicenow
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: claims
port: 8080
tools:
- name: auto_claims_damage_assessment_pipeline
description: "Orchestrate auto claims damage assessment pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-salesforce
type: call
call: "salesforce.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
During a catastrophe event, triages incoming claims by geocoding addresses via Google Maps, scoring severity with Azure ML, prioritizing in ServiceNow, and alerting the CAT team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Catastrophe Claims Triage"
description: "During a catastrophe event, triages incoming claims by geocoding addresses via Google Maps, scoring severity with Azure ML, prioritizing in ServiceNow, and alerting the CAT team via Microsoft Teams."
tags:
- catastrophe
- claims-processing
- google-maps
- azure-machine-learning
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: cat-claims
port: 8080
tools:
- name: triage-cat-claim
description: "Triage a catastrophe claim by geocoding, scoring severity, and routing to the appropriate response team."
inputParameters:
- name: claim_number
in: body
type: string
description: "The claim incident number."
- name: property_address
in: body
type: string
description: "The property address for geocoding."
- name: event_id
in: body
type: string
description: "The catastrophe event identifier."
steps:
- name: geocode-address
type: call
call: "googlemaps.geocode"
with:
address: "{{property_address}}"
- name: score-severity
type: call
call: "azureml.score-cat"
with:
lat: "{{geocode-address.results[0].geometry.location.lat}}"
lng: "{{geocode-address.results[0].geometry.location.lng}}"
event_id: "{{event_id}}"
- name: update-claim
type: call
call: "servicenow.update-incident"
with:
number: "{{claim_number}}"
priority: "{{score-severity.priority}}"
assignment_group: "CAT_Response_{{score-severity.severity_tier}}"
- name: alert-cat-team
type: call
call: "msteams.send-message"
with:
channel_id: "cat-response-{{event_id}}"
text: "CAT Claim {{claim_number}} triaged. Severity: {{score-severity.severity_tier}}. Location: {{geocode-address.results[0].formatted_address}}."
consumes:
- type: http
namespace: googlemaps
baseUri: "https://maps.googleapis.com/maps/api"
authentication:
type: apiKey
key: "$secrets.google_maps_key"
resources:
- name: geocode
path: "/geocode/json?address={{address}}"
inputParameters:
- name: address
in: query
operations:
- name: geocode
method: GET
- type: http
namespace: azureml
baseUri: "https://allstate-cat-ml.eastus2.inference.ml.azure.com"
authentication:
type: bearer
token: "$secrets.azureml_cat_token"
resources:
- name: cat-scoring
path: "/score"
operations:
- name: score-cat
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incident-update
path: "/table/incident/{{number}}"
inputParameters:
- name: number
in: path
operations:
- name: update-incident
method: PATCH
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Detects weather events, identifies affected policyholders in Snowflake, mobilizes adjusters, creates ServiceNow war room, and notifies leadership.
naftiko: "0.5"
info:
label: "Catastrophe Event Response Pipeline"
description: "Detects weather events, identifies affected policyholders in Snowflake, mobilizes adjusters, creates ServiceNow war room, and notifies leadership."
tags:
- catastrophe
- snowflake
- servicenow
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: catastrophe
port: 8080
tools:
- name: catastrophe_event_response_pipeline
description: "Orchestrate catastrophe event response pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-salesforce
type: call
call: "salesforce.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Orchestrates a claims service deployment by triggering GitHub Actions, scanning the Docker image in JFrog Artifactory, and notifying the team in Microsoft Teams on completion.
naftiko: "0.5"
info:
label: "CI/CD Deployment Pipeline"
description: "Orchestrates a claims service deployment by triggering GitHub Actions, scanning the Docker image in JFrog Artifactory, and notifying the team in Microsoft Teams on completion."
tags:
- ci-cd
- deployments
- github-actions
- jfrog-artifactory
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: deployment-pipeline
port: 8080
tools:
- name: deploy-service
description: "Deploy a claims microservice through the full CI/CD pipeline with security scanning and notification."
inputParameters:
- name: repo
in: body
type: string
description: "GitHub repository in org/repo format."
- name: branch
in: body
type: string
description: "Branch to deploy."
- name: image_tag
in: body
type: string
description: "Docker image tag to scan."
steps:
- name: trigger-build
type: call
call: "github.dispatch-workflow"
with:
repo: "{{repo}}"
workflow_id: "deploy.yml"
ref: "{{branch}}"
- name: scan-image
type: call
call: "artifactory.scan-artifact"
with:
image: "allstate-docker/{{repo}}:{{image_tag}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "platform-engineering"
text: "Deployment triggered for {{repo}}@{{branch}}. Image scan: {{scan-image.summary.critical}} critical, {{scan-image.summary.high}} high vulnerabilities."
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: workflow-dispatches
path: "/repos/{{repo}}/actions/workflows/{{workflow_id}}/dispatches"
inputParameters:
- name: repo
in: path
- name: workflow_id
in: path
operations:
- name: dispatch-workflow
method: POST
- type: http
namespace: artifactory
baseUri: "https://allstate.jfrog.io/xray/api/v2"
authentication:
type: bearer
token: "$secrets.artifactory_token"
resources:
- name: scans
path: "/summary/artifact"
operations:
- name: scan-artifact
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Processes a claim denial appeal by retrieving the original claim from ServiceNow, pulling the policy terms from Salesforce, generating an appeal review summary via OpenAI, and updating the claim status.
naftiko: "0.5"
info:
label: "Claim Denial Appeal Processor"
description: "Processes a claim denial appeal by retrieving the original claim from ServiceNow, pulling the policy terms from Salesforce, generating an appeal review summary via OpenAI, and updating the claim status."
tags:
- claims-processing
- appeals
- servicenow
- salesforce
- openai
capability:
exposes:
- type: mcp
namespace: claim-appeals
port: 8080
tools:
- name: process-appeal
description: "Process a claim denial appeal by reviewing original claim details, policy terms, and generating a recommendation."
inputParameters:
- name: claim_number
in: body
type: string
description: "The denied claim number."
- name: appeal_reason
in: body
type: string
description: "Policyholder's stated reason for appeal."
steps:
- name: get-claim
type: call
call: "servicenow.get-incident"
with:
number: "{{claim_number}}"
- name: get-policy-terms
type: call
call: "salesforce.get-policy-terms"
with:
policy_number: "{{get-claim.result.correlation_id}}"
- name: generate-review
type: call
call: "openai.create-completion"
with:
model: "gpt-4o"
prompt: "Review this insurance claim denial appeal. Claim: {{get-claim.result.description}}. Denial reason: {{get-claim.result.close_notes}}. Appeal reason: {{appeal_reason}}. Policy terms: {{get-policy-terms.records[0].Terms__c}}. Provide a recommendation."
- name: update-claim
type: call
call: "servicenow.update-incident"
with:
sys_id: "{{get-claim.result.sys_id}}"
work_notes: "Appeal review: {{generate-review.choices[0].text}}"
state: "under_review"
consumes:
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
inputParameters:
- name: number
in: query
operations:
- name: get-incident
method: GET
- name: incident-update
path: "/table/incident/{{sys_id}}"
inputParameters:
- name: sys_id
in: path
operations:
- name: update-incident
method: PATCH
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: policy-terms
path: "/query/?q=SELECT+Id,Terms__c,Coverage_Details__c+FROM+Policy__c+WHERE+Policy_Number__c='{{policy_number}}'"
inputParameters:
- name: policy_number
in: query
operations:
- name: get-policy-terms
method: GET
- type: http
namespace: openai
baseUri: "https://api.openai.com/v1"
authentication:
type: bearer
token: "$secrets.openai_api_key"
resources:
- name: completions
path: "/chat/completions"
operations:
- name: create-completion
method: POST
Retrieves claim photos from Amazon S3, runs them through OpenAI vision for damage classification, logs the assessment in Elasticsearch, and updates the claim in ServiceNow.
naftiko: "0.5"
info:
label: "Claim Photo AI Assessment"
description: "Retrieves claim photos from Amazon S3, runs them through OpenAI vision for damage classification, logs the assessment in Elasticsearch, and updates the claim in ServiceNow."
tags:
- claims-processing
- ai
- amazon-s3
- openai
- elasticsearch
- servicenow
capability:
exposes:
- type: mcp
namespace: claims-ai
port: 8080
tools:
- name: assess-claim-photos
description: "Run AI damage assessment on claim photos from S3 and update the claim record."
inputParameters:
- name: claim_number
in: body
type: string
description: "The claim number."
- name: photo_keys
in: body
type: string
description: "Comma-separated S3 object keys for claim photos."
steps:
- name: get-photos
type: call
call: "s3.get-object"
with:
bucket: "allstate-claims-evidence"
key: "{{photo_keys}}"
- name: analyze-photos
type: call
call: "openai.create-completion"
with:
model: "gpt-4o"
prompt: "Analyze these vehicle damage photos and classify severity as minor, moderate, severe, or total loss. Provide estimated repair cost range."
- name: index-assessment
type: call
call: "elasticsearch.index-document"
with:
index: "claim-assessments"
body: "{\"claim_number\":\"{{claim_number}}\",\"assessment\":\"{{analyze-photos.choices[0].text}}\"}"
- name: update-claim
type: call
call: "servicenow.update-incident"
with:
number: "{{claim_number}}"
work_notes: "AI Assessment: {{analyze-photos.choices[0].text}}"
consumes:
- type: http
namespace: s3
baseUri: "https://s3.amazonaws.com"
authentication:
type: bearer
token: "$secrets.aws_session_token"
resources:
- name: objects
path: "/{{bucket}}/{{key}}"
inputParameters:
- name: bucket
in: path
- name: key
in: path
operations:
- name: get-object
method: GET
- type: http
namespace: openai
baseUri: "https://api.openai.com/v1"
authentication:
type: bearer
token: "$secrets.openai_api_key"
resources:
- name: completions
path: "/chat/completions"
operations:
- name: create-completion
method: POST
- type: http
namespace: elasticsearch
baseUri: "https://allstate-es.es.eastus2.azure.elastic-cloud.com"
authentication:
type: basic
username: "$secrets.es_user"
password: "$secrets.es_password"
resources:
- name: documents
path: "/{{index}}/_doc"
inputParameters:
- name: index
in: path
operations:
- name: index-document
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incident-update
path: "/table/incident/{{number}}"
inputParameters:
- name: number
in: path
operations:
- name: update-incident
method: PATCH
Orchestrates claim settlement by retrieving the claim from ServiceNow, pulling the Audatex damage estimate, processing payment through Mastercard, and updating the claim status.
naftiko: "0.5"
info:
label: "Claim Settlement Workflow"
description: "Orchestrates claim settlement by retrieving the claim from ServiceNow, pulling the Audatex damage estimate, processing payment through Mastercard, and updating the claim status."
tags:
- claims-processing
- settlements
- servicenow
- audatex
- mastercard
capability:
exposes:
- type: mcp
namespace: claim-settlement
port: 8080
tools:
- name: settle-claim
description: "Given a claim number, pull the estimate, issue payment, and close the claim."
inputParameters:
- name: claim_number
in: body
type: string
description: "The ServiceNow claim incident number."
- name: payment_method
in: body
type: string
description: "Payment method: 'direct_deposit' or 'check'."
steps:
- name: get-claim
type: call
call: "servicenow.get-incident"
with:
number: "{{claim_number}}"
- name: get-estimate
type: call
call: "audatex.get-estimate"
with:
claim_reference: "{{get-claim.result.correlation_id}}"
- name: process-payment
type: call
call: "mastercard.initiate-payment"
with:
amount: "{{get-estimate.estimate.totalCost}}"
recipient_id: "{{get-claim.result.caller_id}}"
method: "{{payment_method}}"
- name: close-claim
type: call
call: "servicenow.update-incident"
with:
sys_id: "{{get-claim.result.sys_id}}"
state: "resolved"
close_notes: "Settlement paid: ${{get-estimate.estimate.totalCost}} via {{payment_method}}. Payment ref: {{process-payment.reference_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
inputParameters:
- name: number
in: query
operations:
- name: get-incident
method: GET
- name: incident-update
path: "/table/incident/{{sys_id}}"
inputParameters:
- name: sys_id
in: path
operations:
- name: update-incident
method: PATCH
- type: http
namespace: audatex
baseUri: "https://api.audatex.com/v2"
authentication:
type: bearer
token: "$secrets.audatex_api_key"
resources:
- name: estimates
path: "/estimates/{{claim_reference}}"
inputParameters:
- name: claim_reference
in: path
operations:
- name: get-estimate
method: GET
- type: http
namespace: mastercard
baseUri: "https://api.mastercard.com/disbursements/v1"
authentication:
type: bearer
token: "$secrets.mastercard_api_key"
resources:
- name: payments
path: "/payments"
operations:
- name: initiate-payment
method: POST
Monitors adjuster caseloads in ServiceNow, optimizes assignments in Snowflake, rebalances workload, and notifies claims managers.
naftiko: "0.5"
info:
label: "Claims Adjuster Workload Balancer"
description: "Monitors adjuster caseloads in ServiceNow, optimizes assignments in Snowflake, rebalances workload, and notifies claims managers."
tags:
- claims
- servicenow
- snowflake
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: claims
port: 8080
tools:
- name: claims_adjuster_workload_balancer
description: "Orchestrate claims adjuster workload balancer workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-snowflake
type: call
call: "snowflake.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Triggers the claims analytics ETL pipeline by refreshing the Power BI dataset, executing a Teradata warehouse query, and publishing results to a Tableau dashboard.
naftiko: "0.5"
info:
label: "Claims Analytics ETL Trigger"
description: "Triggers the claims analytics ETL pipeline by refreshing the Power BI dataset, executing a Teradata warehouse query, and publishing results to a Tableau dashboard."
tags:
- analytics
- data-pipeline
- power-bi
- teradata
- tableau
capability:
exposes:
- type: mcp
namespace: claims-etl
port: 8080
tools:
- name: trigger-claims-etl
description: "Trigger the full claims analytics ETL pipeline across Power BI, Teradata, and Tableau."
inputParameters:
- name: dataset_id
in: body
type: string
description: "Power BI dataset ID."
- name: report_date
in: body
type: string
description: "Report date in YYYY-MM-DD format."
steps:
- name: refresh-dataset
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "{{dataset_id}}"
- name: run-warehouse-query
type: call
call: "teradata.execute-query"
with:
query: "CALL claims_analytics.refresh_daily_summary('{{report_date}}')"
- name: refresh-tableau
type: call
call: "tableau.refresh-extract"
with:
datasource_id: "claims-daily-summary"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
- type: http
namespace: teradata
baseUri: "https://allstate-td.corp.allstate.com/api/v1"
authentication:
type: basic
username: "$secrets.teradata_user"
password: "$secrets.teradata_password"
resources:
- name: queries
path: "/queries"
operations:
- name: execute-query
method: POST
- type: http
namespace: tableau
baseUri: "https://allstate-tableau.online.tableau.com/api/3.21"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: datasources
path: "/sites/default/datasources/{{datasource_id}}/refresh"
inputParameters:
- name: datasource_id
in: path
operations:
- name: refresh-extract
method: POST
Generates a claims compliance audit trail by pulling claim history from ServiceNow, retrieving payment records from Oracle, checking document completeness in Box, and publishing the audit report in Confluence.
naftiko: "0.5"
info:
label: "Claims Compliance Audit Trail"
description: "Generates a claims compliance audit trail by pulling claim history from ServiceNow, retrieving payment records from Oracle, checking document completeness in Box, and publishing the audit report in Confluence."
tags:
- compliance
- audit
- servicenow
- oracle
- box
- confluence
capability:
exposes:
- type: mcp
namespace: claims-audit
port: 8080
tools:
- name: generate-audit-trail
description: "Generate a compliance audit trail for a claim across ServiceNow, Oracle, Box, and Confluence."
inputParameters:
- name: claim_number
in: body
type: string
description: "The claim number to audit."
steps:
- name: get-claim-history
type: call
call: "servicenow.get-incident-history"
with:
number: "{{claim_number}}"
- name: get-payments
type: call
call: "oracle.get-claim-payments"
with:
claim_number: "{{claim_number}}"
- name: check-documents
type: call
call: "box.list-folder"
with:
folder_id: "claims_{{claim_number}}"
- name: publish-audit
type: call
call: "confluence.create-page"
with:
space_key: "AUDIT"
title: "Claim {{claim_number}} Audit Trail"
body: "History entries: {{get-claim-history.result.count}}. Payments: {{get-payments.total_payments}}. Documents: {{check-documents.total_count}}."
consumes:
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incident-history
path: "/table/sys_history_line?sysparm_query=set.id={{number}}"
inputParameters:
- name: number
in: query
operations:
- name: get-incident-history
method: GET
- type: http
namespace: oracle
baseUri: "https://allstate-ebs.oracle.com/webservices/rest/v1"
authentication:
type: basic
username: "$secrets.oracle_user"
password: "$secrets.oracle_password"
resources:
- name: payments
path: "/payments?claim_number={{claim_number}}"
inputParameters:
- name: claim_number
in: query
operations:
- name: get-claim-payments
method: GET
- type: http
namespace: box
baseUri: "https://api.box.com/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: folders
path: "/folders/{{folder_id}}/items"
inputParameters:
- name: folder_id
in: path
operations:
- name: list-folder
method: GET
- type: http
namespace: confluence
baseUri: "https://allstate.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
Captures FNOL data, validates coverage in Snowflake, creates claim file in ServiceNow, assigns adjuster, and notifies policyholder.
naftiko: "0.5"
info:
label: "Claims First Notice of Loss Pipeline"
description: "Captures FNOL data, validates coverage in Snowflake, creates claim file in ServiceNow, assigns adjuster, and notifies policyholder."
tags:
- claims
- snowflake
- servicenow
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: claims
port: 8080
tools:
- name: claims_first_notice_of_loss_pipeline
description: "Orchestrate claims first notice of loss pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-salesforce
type: call
call: "salesforce.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
When a new auto claim is filed, creates a ServiceNow incident, stores uploaded photos in Amazon S3, triggers an OpenAI vision analysis for damage assessment, and notifies the assigned adjuster via Microsoft Teams.
naftiko: "0.5"
info:
label: "Claims Intake Orchestrator"
description: "When a new auto claim is filed, creates a ServiceNow incident, stores uploaded photos in Amazon S3, triggers an OpenAI vision analysis for damage assessment, and notifies the assigned adjuster via Microsoft Teams."
tags:
- claims-processing
- auto-insurance
- servicenow
- amazon-s3
- openai
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: claims-intake
port: 8080
tools:
- name: initiate-auto-claim
description: "Given a policy number, incident date, and description, orchestrate the full auto claim intake across ServiceNow, S3, OpenAI, and Microsoft Teams."
inputParameters:
- name: policy_number
in: body
type: string
description: "The Allstate auto policy number."
- name: incident_date
in: body
type: string
description: "Date of the incident in YYYY-MM-DD format."
- name: description
in: body
type: string
description: "Free-text description of the incident."
- name: photo_urls
in: body
type: string
description: "Comma-separated list of uploaded photo URLs for damage evidence."
steps:
- name: create-claim-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "Auto claim: Policy {{policy_number}} - {{incident_date}}"
category: "auto_claims"
assigned_group: "Claims_Adjusters"
description: "{{description}}"
- name: store-photos
type: call
call: "s3.put-object"
with:
bucket: "allstate-claims-evidence"
key: "claims/{{create-claim-ticket.number}}/photos"
body: "{{photo_urls}}"
- name: analyze-damage
type: call
call: "openai.create-completion"
with:
model: "gpt-4o"
prompt: "Analyze vehicle damage from these photos and estimate severity: {{photo_urls}}"
- name: notify-adjuster
type: call
call: "msteams.send-message"
with:
channel_id: "claims-adjusters"
text: "New auto claim {{create-claim-ticket.number}} for policy {{policy_number}}. AI damage assessment: {{analyze-damage.choices[0].text}}. Photos: {{store-photos.url}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: s3
baseUri: "https://s3.amazonaws.com"
authentication:
type: bearer
token: "$secrets.aws_session_token"
resources:
- name: objects
path: "/{{bucket}}/{{key}}"
inputParameters:
- name: bucket
in: path
- name: key
in: path
operations:
- name: put-object
method: PUT
- type: http
namespace: openai
baseUri: "https://api.openai.com/v1"
authentication:
type: bearer
token: "$secrets.openai_api_key"
resources:
- name: completions
path: "/chat/completions"
operations:
- name: create-completion
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Tracks litigated claims in ServiceNow, calculates reserves in Snowflake, assigns counsel in Salesforce, and notifies legal team.
naftiko: "0.5"
info:
label: "Claims Litigation Management Pipeline"
description: "Tracks litigated claims in ServiceNow, calculates reserves in Snowflake, assigns counsel in Salesforce, and notifies legal team."
tags:
- litigation
- servicenow
- snowflake
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: litigation
port: 8080
tools:
- name: claims_litigation_management_pipeline
description: "Orchestrate claims litigation management pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-snowflake
type: call
call: "snowflake.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-salesforce
type: call
call: "salesforce.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Processes approved claim payments, validates against reserves in Snowflake, issues payments, updates ServiceNow, and notifies claimants.
naftiko: "0.5"
info:
label: "Claims Payment Processing Pipeline"
description: "Processes approved claim payments, validates against reserves in Snowflake, issues payments, updates ServiceNow, and notifies claimants."
tags:
- claims
- snowflake
- servicenow
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: claims
port: 8080
tools:
- name: claims_payment_processing_pipeline
description: "Orchestrate claims payment processing pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-salesforce
type: call
call: "salesforce.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Analyzes claims reserves in Snowflake, runs adequacy models, identifies under-reserved claims, creates reviews, and notifies actuarial.
naftiko: "0.5"
info:
label: "Claims Reserve Adequacy Pipeline"
description: "Analyzes claims reserves in Snowflake, runs adequacy models, identifies under-reserved claims, creates reviews, and notifies actuarial."
tags:
- actuarial
- snowflake
- servicenow
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: actuarial
port: 8080
tools:
- name: claims_reserve_adequacy_pipeline
description: "Orchestrate claims reserve adequacy pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Monitors claims processing SLAs by querying ServiceNow for aging claims, checking SLA thresholds in Datadog, and auto-escalating breached claims with notification to management via Microsoft Teams.
naftiko: "0.5"
info:
label: "Claims SLA Monitor and Escalator"
description: "Monitors claims processing SLAs by querying ServiceNow for aging claims, checking SLA thresholds in Datadog, and auto-escalating breached claims with notification to management via Microsoft Teams."
tags:
- claims-processing
- sla-management
- servicenow
- datadog
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: claims-sla
port: 8080
tools:
- name: monitor-claims-sla
description: "Check for SLA breaches on open claims and auto-escalate with management notification."
inputParameters:
- name: sla_hours
in: body
type: string
description: "SLA threshold in hours."
- name: claim_type
in: body
type: string
description: "Claim type to monitor: auto, home, commercial."
steps:
- name: get-aging-claims
type: call
call: "servicenow.query-incidents"
with:
query: "category={{claim_type}}^state=in_progress^sys_created_onRELATIVEGT@hour@ago@{{sla_hours}}"
- name: check-metrics
type: call
call: "datadog.query-metrics"
with:
query: "avg:claims.processing.age{claim_type:{{claim_type}}}"
from: "last_1h"
- name: escalate-breached
type: call
call: "servicenow.bulk-update"
with:
incidents: "{{get-aging-claims.result}}"
priority: "1"
assignment_group: "Claims_Management"
- name: notify-management
type: call
call: "msteams.send-message"
with:
channel_id: "claims-leadership"
text: "SLA BREACH: {{get-aging-claims.result.count}} {{claim_type}} claims exceeded {{sla_hours}}h SLA. Average age: {{check-metrics.series[0].pointlist[-1][1]}}h. Claims escalated to management."
consumes:
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query={{query}}"
inputParameters:
- name: query
in: query
operations:
- name: query-incidents
method: GET
- name: bulk-update
path: "/table/incident"
operations:
- name: bulk-update
method: PATCH
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
resources:
- name: metrics
path: "/query"
operations:
- name: query-metrics
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Monitors regulatory compliance across operations in Snowflake, generates compliance reports, creates findings in Jira, and notifies compliance.
naftiko: "0.5"
info:
label: "Compliance Monitoring Automation"
description: "Monitors regulatory compliance across operations in Snowflake, generates compliance reports, creates findings in Jira, and notifies compliance."
tags:
- compliance
- snowflake
- jira
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: compliance_monitoring_automation
description: "Orchestrate compliance monitoring automation workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-jira
type: call
call: "jira.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-servicenow
type: call
call: "servicenow.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: jira
baseUri: "https://allstate.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
Searches the Allstate claims knowledge base in Confluence for articles matching a query. Used by adjusters and customer service agents to find claim handling procedures.
naftiko: "0.5"
info:
label: "Confluence Knowledge Base Search"
description: "Searches the Allstate claims knowledge base in Confluence for articles matching a query. Used by adjusters and customer service agents to find claim handling procedures."
tags:
- knowledge-management
- customer-service
- confluence
capability:
exposes:
- type: mcp
namespace: knowledge-base
port: 8080
tools:
- name: search-knowledge-base
description: "Search Confluence for claims handling articles. Returns titles, excerpts, and links."
inputParameters:
- name: query
in: body
type: string
description: "Search query for knowledge base articles."
- name: space_key
in: body
type: string
description: "Confluence space key, e.g. 'CLAIMS', 'UNDERWRITING'."
call: "confluence.search"
with:
cql: "space={{space_key}} AND text~\"{{query}}\""
outputParameters:
- name: results
type: string
mapping: "$.results"
consumes:
- type: http
namespace: confluence
baseUri: "https://allstate.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_token"
resources:
- name: search
path: "/search?cql={{cql}}"
inputParameters:
- name: cql
in: query
operations:
- name: search
method: GET
Retrieves Confluence page content for Allstate knowledge base.
naftiko: "0.5"
info:
label: "Confluence Page Retrieval"
description: "Retrieves Confluence page content for Allstate knowledge base."
tags:
- collaboration
- confluence
- documentation
capability:
exposes:
- type: mcp
namespace: knowledge
port: 8080
tools:
- name: get-page
description: "Get page at Allstate."
inputParameters:
- name: page_id
in: body
type: string
description: "The page_id to look up."
call: "confluence.get-page_id"
with:
page_id: "{{page_id}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://allstate.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence_page_retrieval
method: GET
Logs a customer contact center interaction by creating a Salesforce case, attaching the call recording from Amazon S3, and routing follow-up actions to ServiceNow.
naftiko: "0.5"
info:
label: "Contact Center Interaction Logger"
description: "Logs a customer contact center interaction by creating a Salesforce case, attaching the call recording from Amazon S3, and routing follow-up actions to ServiceNow."
tags:
- customer-service
- contact-center
- salesforce
- amazon-s3
- servicenow
capability:
exposes:
- type: mcp
namespace: contact-center
port: 8080
tools:
- name: log-interaction
description: "Log a contact center interaction across Salesforce, S3, and ServiceNow."
inputParameters:
- name: customer_id
in: body
type: string
description: "Salesforce customer contact ID."
- name: interaction_type
in: body
type: string
description: "Type: call, chat, email."
- name: summary
in: body
type: string
description: "Interaction summary."
- name: recording_key
in: body
type: string
description: "S3 key for call recording."
steps:
- name: create-case
type: call
call: "salesforce.create-case"
with:
contact_id: "{{customer_id}}"
subject: "{{interaction_type}} interaction"
description: "{{summary}}"
- name: attach-recording
type: call
call: "s3.get-presigned-url"
with:
bucket: "allstate-call-recordings"
key: "{{recording_key}}"
- name: create-followup
type: call
call: "servicenow.create-task"
with:
short_description: "Follow-up: {{interaction_type}} with customer {{customer_id}}"
description: "Case: {{create-case.id}}. Recording: {{attach-recording.url}}. Summary: {{summary}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: s3
baseUri: "https://s3.amazonaws.com"
authentication:
type: bearer
token: "$secrets.aws_session_token"
resources:
- name: presigned
path: "/{{bucket}}/{{key}}?X-Amz-Expires=3600"
inputParameters:
- name: bucket
in: path
- name: key
in: path
operations:
- name: get-presigned-url
method: GET
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: tasks
path: "/table/sc_task"
operations:
- name: create-task
method: POST
Identifies cross-sell opportunities from customer data in Snowflake, creates leads in Salesforce, prioritizes by propensity, and notifies agents.
naftiko: "0.5"
info:
label: "Cross-Sell Opportunity Pipeline"
description: "Identifies cross-sell opportunities from customer data in Snowflake, creates leads in Salesforce, prioritizes by propensity, and notifies agents."
tags:
- sales
- snowflake
- salesforce
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: sales
port: 8080
tools:
- name: cross_sell_opportunity_pipeline
description: "Orchestrate cross-sell opportunity pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-salesforce
type: call
call: "salesforce.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-servicenow
type: call
call: "servicenow.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
Aggregates customer data from Salesforce CRM, Workday HR records, and ServiceNow interaction history into a unified view. Used by agents to prepare for customer calls.
naftiko: "0.5"
info:
label: "Customer 360 Aggregator"
description: "Aggregates customer data from Salesforce CRM, Workday HR records, and ServiceNow interaction history into a unified view. Used by agents to prepare for customer calls."
tags:
- customer-service
- salesforce
- workday
- servicenow
capability:
exposes:
- type: mcp
namespace: customer-360
port: 8080
tools:
- name: build-customer-profile
description: "Given a customer email, pull CRM data from Salesforce, employment info from Workday, and service history from ServiceNow to build a unified customer profile."
inputParameters:
- name: customer_email
in: body
type: string
description: "The customer email address to look up across all systems."
steps:
- name: get-crm-record
type: call
call: "salesforce.get-contact"
with:
email: "{{customer_email}}"
- name: get-policies
type: call
call: "salesforce.get-policies-by-contact"
with:
contact_id: "{{get-crm-record.records[0].Id}}"
- name: get-service-history
type: call
call: "servicenow.list-incidents"
with:
caller_email: "{{customer_email}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/query/?q=SELECT+Id,Name,Email,Phone+FROM+Contact+WHERE+Email='{{email}}'"
inputParameters:
- name: email
in: query
operations:
- name: get-contact
method: GET
- name: policies
path: "/query/?q=SELECT+Id,Policy_Number__c,Coverage_Type__c,Status__c+FROM+Policy__c+WHERE+Contact__c='{{contact_id}}'"
inputParameters:
- name: contact_id
in: query
operations:
- name: get-policies-by-contact
method: GET
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=caller_id.email={{caller_email}}"
inputParameters:
- name: caller_email
in: query
operations:
- name: list-incidents
method: GET
Aggregates complaints from multiple channels, analyzes trends in Snowflake, creates action items in Jira, and notifies customer experience.
naftiko: "0.5"
info:
label: "Customer Complaint Trends Pipeline"
description: "Aggregates complaints from multiple channels, analyzes trends in Snowflake, creates action items in Jira, and notifies customer experience."
tags:
- customer-experience
- snowflake
- jira
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: customer-experience
port: 8080
tools:
- name: customer_complaint_trends_pipeline
description: "Orchestrate customer complaint trends pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-jira
type: call
call: "jira.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-servicenow
type: call
call: "servicenow.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: jira
baseUri: "https://allstate.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
Runs churn models in Snowflake, identifies at-risk customers, triggers retention actions in Salesforce, and notifies agents.
naftiko: "0.5"
info:
label: "Customer Retention Prediction Pipeline"
description: "Runs churn models in Snowflake, identifies at-risk customers, triggers retention actions in Salesforce, and notifies agents."
tags:
- retention
- snowflake
- salesforce
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: retention
port: 8080
tools:
- name: customer_retention_prediction_pipeline
description: "Orchestrate customer retention prediction pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-salesforce
type: call
call: "salesforce.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-servicenow
type: call
call: "servicenow.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
Detects threats in Splunk SIEM, enriches with Datadog data, creates incidents in ServiceNow, blocks threats, and notifies SecOps.
naftiko: "0.5"
info:
label: "Cybersecurity Incident Response Pipeline"
description: "Detects threats in Splunk SIEM, enriches with Datadog data, creates incidents in ServiceNow, blocks threats, and notifies SecOps."
tags:
- security
- splunk
- datadog
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: cybersecurity_incident_response_pipeline
description: "Orchestrate cybersecurity incident response pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-splunk
type: call
call: "splunk.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-datadog
type: call
call: "datadog.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-servicenow
type: call
call: "servicenow.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: splunk
baseUri: "https://allstate-splunk.com/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: splunk-op
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
header: "DD-API-KEY"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: datadog-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Retrieves current health metrics for the claims processing API from Datadog monitoring, including latency percentiles, error rates, and throughput.
naftiko: "0.5"
info:
label: "Datadog Claims API Health Check"
description: "Retrieves current health metrics for the claims processing API from Datadog monitoring, including latency percentiles, error rates, and throughput."
tags:
- monitoring
- claims-processing
- datadog
capability:
exposes:
- type: mcp
namespace: api-monitoring
port: 8080
tools:
- name: get-claims-api-health
description: "Fetch real-time health metrics for the claims API from Datadog. Returns p95 latency and error rate."
inputParameters:
- name: time_range
in: body
type: string
description: "Time range to query, e.g. 'last_1h', 'last_24h'."
call: "datadog.query-metrics"
with:
query: "avg:trace.http.request.duration.by.service{service:claims-api}"
from: "{{time_range}}"
outputParameters:
- name: p95_latency_ms
type: string
mapping: "$.series[0].pointlist[-1][1]"
- name: error_rate
type: string
mapping: "$.series[1].pointlist[-1][1]"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
resources:
- name: metrics
path: "/query"
operations:
- name: query-metrics
method: GET
Retrieves Datadog monitor status for Allstate infrastructure.
naftiko: "0.5"
info:
label: "Datadog Monitor Status"
description: "Retrieves Datadog monitor status for Allstate infrastructure."
tags:
- monitoring
- datadog
- alerting
capability:
exposes:
- type: mcp
namespace: observability
port: 8080
tools:
- name: get-monitor
description: "Check monitor at Allstate."
inputParameters:
- name: monitor_id
in: body
type: string
description: "The monitor_id to look up."
call: "datadog.get-monitor_id"
with:
monitor_id: "{{monitor_id}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
header: "DD-API-KEY"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: datadog_monitor_status
method: GET
Monitors quote funnel metrics in Snowflake, identifies drop-off points, runs A/B tests, creates optimization tasks, and notifies digital team.
naftiko: "0.5"
info:
label: "Digital Quote Funnel Optimizer"
description: "Monitors quote funnel metrics in Snowflake, identifies drop-off points, runs A/B tests, creates optimization tasks, and notifies digital team."
tags:
- digital
- snowflake
- datadog
- jira
- slack
capability:
exposes:
- type: mcp
namespace: digital
port: 8080
tools:
- name: digital_quote_funnel_optimizer
description: "Orchestrate digital quote funnel optimizer workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-datadog
type: call
call: "datadog.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-jira
type: call
call: "jira.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
header: "DD-API-KEY"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: datadog-op
method: POST
- type: http
namespace: jira
baseUri: "https://allstate.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Searches the claims data index in Elasticsearch by policy number, date range, or claim type. Used by analysts and adjusters for claims research.
naftiko: "0.5"
info:
label: "Elasticsearch Claims Search"
description: "Searches the claims data index in Elasticsearch by policy number, date range, or claim type. Used by analysts and adjusters for claims research."
tags:
- search
- claims-processing
- elasticsearch
capability:
exposes:
- type: mcp
namespace: claims-search
port: 8080
tools:
- name: search-claims
description: "Search the Elasticsearch claims index. Returns matching claim documents with scores."
inputParameters:
- name: query
in: body
type: string
description: "Elasticsearch query string."
- name: index
in: body
type: string
description: "Index name, default 'claims-2026'."
call: "elasticsearch.search"
with:
index: "{{index}}"
q: "{{query}}"
outputParameters:
- name: total_hits
type: string
mapping: "$.hits.total.value"
- name: results
type: string
mapping: "$.hits.hits"
consumes:
- type: http
namespace: elasticsearch
baseUri: "https://allstate-es.es.eastus2.azure.elastic-cloud.com"
authentication:
type: basic
username: "$secrets.es_user"
password: "$secrets.es_password"
resources:
- name: search
path: "/{{index}}/_search"
inputParameters:
- name: index
in: path
operations:
- name: search
method: GET
Searches Elasticsearch indexes for Allstate.
naftiko: "0.5"
info:
label: "Elasticsearch Log Query"
description: "Searches Elasticsearch indexes for Allstate."
tags:
- data
- elasticsearch
- search
capability:
exposes:
- type: mcp
namespace: search
port: 8080
tools:
- name: search-logs
description: "Search ES logs at Allstate."
inputParameters:
- name: query
in: body
type: string
description: "The query to look up."
call: "elasticsearch.get-query"
with:
query: "{{query}}"
consumes:
- type: http
namespace: elasticsearch
baseUri: "https://allstate-es.com:9200"
authentication:
type: bearer
token: "$secrets.elasticsearch_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: elasticsearch_log_query
method: GET
Analyzes benefits utilization from Workday, models optimization scenarios in Snowflake, generates recommendations, and notifies HR.
naftiko: "0.5"
info:
label: "Employee Benefits Optimization Pipeline"
description: "Analyzes benefits utilization from Workday, models optimization scenarios in Snowflake, generates recommendations, and notifies HR."
tags:
- hr
- workday
- snowflake
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: employee_benefits_optimization_pipeline
description: "Orchestrate employee benefits optimization pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-workday
type: call
call: "workday.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-snowflake
type: call
call: "snowflake.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-servicenow
type: call
call: "servicenow.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/allstate"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: workday-op
method: POST
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint document folder, and sends a Microsoft Teams welcome message to the new employee.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint document folder, and sends a Microsoft Teams welcome message to the new employee."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-onboarding
description: "Given a Workday employee ID and start date, orchestrate the full onboarding sequence across ServiceNow, SharePoint, and Microsoft Teams."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID for the new hire."
- name: start_date
in: body
type: string
description: "The employee start date in YYYY-MM-DD format."
- name: department
in: body
type: string
description: "Department the new hire is joining."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{workday_employee_id}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "New hire onboarding: {{get-employee.full_name}}"
category: "hr_onboarding"
assigned_group: "IT_Onboarding"
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "hr_onboarding_site"
folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
- name: send-welcome
type: call
call: "msteams.send-message"
with:
channel_id: "{{department}}-general"
text: "Welcome to Allstate, {{get-employee.first_name}}! Your IT ticket is {{open-ticket.number}}. Documents: {{provision-folder.url}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Processes an adjuster expense by submitting to SAP Concur, validating against Oracle budget, and sending approval notification via Microsoft Teams.
naftiko: "0.5"
info:
label: "Expense Reimbursement Pipeline"
description: "Processes an adjuster expense by submitting to SAP Concur, validating against Oracle budget, and sending approval notification via Microsoft Teams."
tags:
- expense-management
- claims-processing
- sap-concur
- oracle
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: expense-pipeline
port: 8080
tools:
- name: process-adjuster-expense
description: "Submit and validate an adjuster expense through SAP Concur and Oracle, then notify via Teams."
inputParameters:
- name: employee_id
in: body
type: string
description: "Employee ID of the adjuster."
- name: amount
in: body
type: string
description: "Expense amount in USD."
- name: claim_number
in: body
type: string
description: "Related claim number."
steps:
- name: submit-expense
type: call
call: "concur.create-report"
with:
employee_id: "{{employee_id}}"
report_name: "Claim {{claim_number}} Expense"
total_amount: "{{amount}}"
- name: validate-budget
type: call
call: "oracle.check-budget"
with:
cost_center: "claims_operations"
amount: "{{amount}}"
- name: notify-approver
type: call
call: "msteams.send-message"
with:
channel_id: "claims-management"
text: "Expense submitted: ${{amount}} for claim {{claim_number}} by {{employee_id}}. Budget status: {{validate-budget.status}}. Concur report: {{submit-expense.ID}}."
consumes:
- type: http
namespace: concur
baseUri: "https://us.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: expense-reports
path: "/expense/reports"
operations:
- name: create-report
method: POST
- type: http
namespace: oracle
baseUri: "https://allstate-ebs.oracle.com/webservices/rest/v1"
authentication:
type: basic
username: "$secrets.oracle_user"
password: "$secrets.oracle_password"
resources:
- name: budget
path: "/budget/check"
operations:
- name: check-budget
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
When a claim is flagged, pulls claim details from ServiceNow, runs predictive fraud scoring via Azure Machine Learning, logs results in Splunk, and escalates suspicious claims to the SIU team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Fraud Detection Pipeline"
description: "When a claim is flagged, pulls claim details from ServiceNow, runs predictive fraud scoring via Azure Machine Learning, logs results in Splunk, and escalates suspicious claims to the SIU team in Microsoft Teams."
tags:
- fraud-detection
- claims-processing
- servicenow
- azure-machine-learning
- splunk
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: fraud-detection
port: 8080
tools:
- name: evaluate-claim-fraud
description: "Given a claim number, evaluate fraud risk by pulling claim details, running ML scoring, logging results, and escalating if risk exceeds threshold."
inputParameters:
- name: claim_number
in: body
type: string
description: "The ServiceNow claim incident number."
- name: risk_threshold
in: body
type: string
description: "Fraud score threshold (0-100) above which to escalate."
steps:
- name: get-claim
type: call
call: "servicenow.get-incident"
with:
number: "{{claim_number}}"
- name: score-fraud
type: call
call: "azureml.score"
with:
model_name: "claims-fraud-detector-v3"
input_data: "{{get-claim.result}}"
- name: log-score
type: call
call: "splunk.create-event"
with:
index: "fraud_scores"
event: "claim={{claim_number}} score={{score-fraud.prediction}} model=claims-fraud-detector-v3"
- name: escalate-siu
type: call
call: "msteams.send-message"
with:
channel_id: "siu-investigations"
text: "FRAUD ALERT: Claim {{claim_number}} scored {{score-fraud.prediction}}/100. Policyholder: {{get-claim.result.caller_id}}. Review required."
consumes:
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
inputParameters:
- name: number
in: query
operations:
- name: get-incident
method: GET
- type: http
namespace: azureml
baseUri: "https://allstate-fraud-ml.eastus2.inference.ml.azure.com"
authentication:
type: bearer
token: "$secrets.azureml_token"
resources:
- name: scoring
path: "/score"
operations:
- name: score
method: POST
- type: http
namespace: splunk
baseUri: "https://allstate-splunk.splunkcloud.com:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: events
path: "/receivers/simple"
operations:
- name: create-event
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Runs network analysis on claims data in Snowflake, identifies fraud rings, creates SIU investigation cases in ServiceNow, and notifies fraud team.
naftiko: "0.5"
info:
label: "Fraud Ring Detection Pipeline"
description: "Runs network analysis on claims data in Snowflake, identifies fraud rings, creates SIU investigation cases in ServiceNow, and notifies fraud team."
tags:
- fraud
- snowflake
- servicenow
- jira
- slack
capability:
exposes:
- type: mcp
namespace: fraud
port: 8080
tools:
- name: fraud_ring_detection_pipeline
description: "Orchestrate fraud ring detection pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-jira
type: call
call: "jira.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: jira
baseUri: "https://allstate.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Retrieves GitHub repository metadata for Allstate.
naftiko: "0.5"
info:
label: "GitHub Repository Lookup"
description: "Retrieves GitHub repository metadata for Allstate."
tags:
- devops
- github
- source-control
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: get-repo
description: "Look up repo at Allstate."
inputParameters:
- name: repo_name
in: body
type: string
description: "The repo_name to look up."
call: "github.get-repo_name"
with:
repo_name: "{{repo_name}}"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: github_repository_lookup
method: GET
Queries Grafana dashboard data for Allstate monitoring.
naftiko: "0.5"
info:
label: "Grafana Dashboard Query"
description: "Queries Grafana dashboard data for Allstate monitoring."
tags:
- monitoring
- grafana
- dashboards
capability:
exposes:
- type: mcp
namespace: monitoring
port: 8080
tools:
- name: get-dashboard
description: "Query dashboard at Allstate."
inputParameters:
- name: dashboard_uid
in: body
type: string
description: "The dashboard_uid to look up."
call: "grafana.get-dashboard_uid"
with:
dashboard_uid: "{{dashboard_uid}}"
consumes:
- type: http
namespace: grafana
baseUri: "https://allstate-grafana.com/api"
authentication:
type: bearer
token: "$secrets.grafana_api_key"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: grafana_dashboard_query
method: GET
Retrieves a secret from Hashicorp Vault for use in claims processing pipelines. Used by DevOps teams to securely access API keys and credentials.
naftiko: "0.5"
info:
label: "Hashicorp Vault Secret Retrieval"
description: "Retrieves a secret from Hashicorp Vault for use in claims processing pipelines. Used by DevOps teams to securely access API keys and credentials."
tags:
- security
- secrets-management
- hashicorp-vault
capability:
exposes:
- type: mcp
namespace: secrets
port: 8080
tools:
- name: get-secret
description: "Retrieve a secret from Hashicorp Vault by path. Returns the secret data."
inputParameters:
- name: secret_path
in: body
type: string
description: "Vault secret path, e.g. 'claims/api-keys/audatex'."
- name: mount
in: body
type: string
description: "Vault secrets engine mount, default 'kv'."
call: "vault.read-secret"
with:
path: "{{secret_path}}"
mount: "{{mount}}"
consumes:
- type: http
namespace: vault
baseUri: "https://vault.corp.allstate.com/v1"
authentication:
type: bearer
token: "$secrets.vault_token"
resources:
- name: secrets
path: "/{{mount}}/data/{{path}}"
inputParameters:
- name: mount
in: path
- name: path
in: path
operations:
- name: read-secret
method: GET
Schedules a property inspection by looking up the policy in Salesforce, creating an inspection task in ServiceNow, geocoding the property address via Google Maps, and notifying the inspector via Microsoft Teams.
naftiko: "0.5"
info:
label: "Homeowner Inspection Orchestrator"
description: "Schedules a property inspection by looking up the policy in Salesforce, creating an inspection task in ServiceNow, geocoding the property address via Google Maps, and notifying the inspector via Microsoft Teams."
tags:
- inspections
- home-insurance
- salesforce
- servicenow
- google-maps
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: property-inspections
port: 8080
tools:
- name: schedule-inspection
description: "Schedule a homeowner property inspection by orchestrating across Salesforce, ServiceNow, Google Maps, and Teams."
inputParameters:
- name: policy_number
in: body
type: string
description: "The homeowner policy number."
- name: inspection_type
in: body
type: string
description: "Type of inspection: initial, renewal, or claim."
- name: preferred_date
in: body
type: string
description: "Preferred inspection date in YYYY-MM-DD format."
steps:
- name: get-policy
type: call
call: "salesforce.get-policy"
with:
policy_number: "{{policy_number}}"
- name: geocode-property
type: call
call: "googlemaps.geocode"
with:
address: "{{get-policy.records[0].Property_Address__c}}"
- name: create-inspection
type: call
call: "servicenow.create-task"
with:
short_description: "Property inspection: {{policy_number}} - {{inspection_type}}"
assignment_group: "Field_Inspectors"
scheduled_date: "{{preferred_date}}"
- name: notify-inspector
type: call
call: "msteams.send-message"
with:
channel_id: "field-inspectors"
text: "New {{inspection_type}} inspection for {{preferred_date}}. Policy: {{policy_number}}. Address: {{geocode-property.results[0].formatted_address}}. Task: {{create-inspection.number}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: policy-query
path: "/query/?q=SELECT+Id,Policy_Number__c,Property_Address__c+FROM+Policy__c+WHERE+Policy_Number__c='{{policy_number}}'"
inputParameters:
- name: policy_number
in: query
operations:
- name: get-policy
method: GET
- type: http
namespace: googlemaps
baseUri: "https://maps.googleapis.com/maps/api"
authentication:
type: apiKey
key: "$secrets.google_maps_key"
resources:
- name: geocode
path: "/geocode/json?address={{address}}"
inputParameters:
- name: address
in: query
operations:
- name: geocode
method: GET
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: tasks
path: "/table/sc_task"
operations:
- name: create-task
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Orchestrates a security incident response by creating a Splunk search, opening a ServiceNow security incident, blocking suspicious IPs via Palo Alto, and alerting the SOC team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Incident Response Orchestrator"
description: "Orchestrates a security incident response by creating a Splunk search, opening a ServiceNow security incident, blocking suspicious IPs via Palo Alto, and alerting the SOC team in Microsoft Teams."
tags:
- security
- incident-response
- splunk
- servicenow
- palo-alto-networks
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: incident-response
port: 8080
tools:
- name: respond-to-incident
description: "Orchestrate a security incident response across Splunk, ServiceNow, Palo Alto, and Teams."
inputParameters:
- name: suspicious_ip
in: body
type: string
description: "The suspicious source IP address."
- name: incident_description
in: body
type: string
description: "Description of the security incident."
- name: severity
in: body
type: string
description: "Severity: critical, high, medium, low."
steps:
- name: search-activity
type: call
call: "splunk.search"
with:
search: "search src_ip={{suspicious_ip}} earliest=-24h"
- name: create-sec-incident
type: call
call: "servicenow.create-security-incident"
with:
short_description: "Security incident: {{incident_description}}"
severity: "{{severity}}"
source_ip: "{{suspicious_ip}}"
- name: block-ip
type: call
call: "paloalto.block-ip"
with:
ip: "{{suspicious_ip}}"
rule_name: "auto-block-{{create-sec-incident.number}}"
- name: alert-soc
type: call
call: "msteams.send-message"
with:
channel_id: "soc-alerts"
text: "SECURITY INCIDENT: {{incident_description}}. Severity: {{severity}}. IP {{suspicious_ip}} blocked. Incident: {{create-sec-incident.number}}."
consumes:
- type: http
namespace: splunk
baseUri: "https://allstate-splunk.splunkcloud.com:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: search-jobs
path: "/search/jobs"
operations:
- name: search
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: security-incidents
path: "/table/sn_si_incident"
operations:
- name: create-security-incident
method: POST
- type: http
namespace: paloalto
baseUri: "https://allstate-fw.paloaltonetworks.com/restapi/v10.2"
authentication:
type: apiKey
key: "$secrets.paloalto_api_key"
resources:
- name: security-rules
path: "/Policies/SecurityRules"
operations:
- name: block-ip
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Detects infrastructure drift by running a Terraform plan, comparing with Datadog monitored state, and creating an Azure DevOps work item for remediation.
naftiko: "0.5"
info:
label: "Infrastructure Drift Detection"
description: "Detects infrastructure drift by running a Terraform plan, comparing with Datadog monitored state, and creating an Azure DevOps work item for remediation."
tags:
- infrastructure
- compliance
- terraform
- datadog
- azure-devops
capability:
exposes:
- type: mcp
namespace: infra-compliance
port: 8080
tools:
- name: detect-drift
description: "Run drift detection across Terraform, Datadog, and create a remediation ticket in Azure DevOps."
inputParameters:
- name: workspace_id
in: body
type: string
description: "Terraform Cloud workspace ID."
- name: environment
in: body
type: string
description: "Environment: dev, staging, production."
steps:
- name: run-plan
type: call
call: "terraform.create-run"
with:
workspace_id: "{{workspace_id}}"
message: "Drift detection for {{environment}}"
- name: check-monitoring
type: call
call: "datadog.query-metrics"
with:
query: "avg:system.cpu.idle{env:{{environment}}}"
from: "last_1h"
- name: create-ticket
type: call
call: "azuredevops.create-work-item"
with:
project: "InfraOps"
type: "Bug"
title: "Infrastructure drift detected in {{environment}}"
description: "Terraform plan status: {{run-plan.data.attributes.status}}. Monitoring check: {{check-monitoring.series[0].pointlist[-1][1]}}."
consumes:
- type: http
namespace: terraform
baseUri: "https://app.terraform.io/api/v2"
authentication:
type: bearer
token: "$secrets.terraform_token"
resources:
- name: runs
path: "/runs"
operations:
- name: create-run
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
resources:
- name: metrics
path: "/query"
operations:
- name: query-metrics
method: GET
- type: http
namespace: azuredevops
baseUri: "https://dev.azure.com/allstate"
authentication:
type: basic
username: ""
password: "$secrets.azuredevops_pat"
resources:
- name: work-items
path: "/{{project}}/_apis/wit/workitems/${{type}}?api-version=7.0"
inputParameters:
- name: project
in: path
- name: type
in: path
operations:
- name: create-work-item
method: POST
Configures new product in Salesforce, sets up rating algorithms in Snowflake, creates marketing materials, and notifies distribution.
naftiko: "0.5"
info:
label: "Insurance Product Launch Pipeline"
description: "Configures new product in Salesforce, sets up rating algorithms in Snowflake, creates marketing materials, and notifies distribution."
tags:
- product-launch
- salesforce
- snowflake
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: product-launch
port: 8080
tools:
- name: insurance_product_launch_pipeline
description: "Orchestrate insurance product launch pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-salesforce
type: call
call: "salesforce.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-snowflake
type: call
call: "snowflake.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-servicenow
type: call
call: "servicenow.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Initiates DR test, validates system failover, checks data integrity in Snowflake, generates test report, and notifies IT leadership.
naftiko: "0.5"
info:
label: "IT Disaster Recovery Test Pipeline"
description: "Initiates DR test, validates system failover, checks data integrity in Snowflake, generates test report, and notifies IT leadership."
tags:
- disaster-recovery
- snowflake
- servicenow
- datadog
- slack
capability:
exposes:
- type: mcp
namespace: disaster-recovery
port: 8080
tools:
- name: it_disaster_recovery_test_pipeline
description: "Orchestrate it disaster recovery test pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-datadog
type: call
call: "datadog.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
header: "DD-API-KEY"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: datadog-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Retrieves Jira issue status for Allstate engineering teams.
naftiko: "0.5"
info:
label: "Jira Issue Status"
description: "Retrieves Jira issue status for Allstate engineering teams."
tags:
- devops
- jira
- project-management
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: get-issue
description: "Look up Jira issue at Allstate."
inputParameters:
- name: issue_key
in: body
type: string
description: "The issue_key to look up."
call: "jira.get-issue_key"
with:
issue_key: "{{issue_key}}"
consumes:
- type: http
namespace: jira
baseUri: "https://allstate.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira_issue_status
method: GET
Replays claim events from Apache Kafka, indexes them in Elasticsearch for audit, and logs the replay summary in Splunk for compliance tracking.
naftiko: "0.5"
info:
label: "Kafka Event Replay and Audit"
description: "Replays claim events from Apache Kafka, indexes them in Elasticsearch for audit, and logs the replay summary in Splunk for compliance tracking."
tags:
- audit
- compliance
- apache-kafka
- elasticsearch
- splunk
capability:
exposes:
- type: mcp
namespace: event-audit
port: 8080
tools:
- name: replay-and-audit-events
description: "Replay claim events from Kafka, index in Elasticsearch, and log in Splunk for audit compliance."
inputParameters:
- name: topic
in: body
type: string
description: "Kafka topic to replay from."
- name: start_offset
in: body
type: string
description: "Starting offset for replay."
- name: end_offset
in: body
type: string
description: "Ending offset for replay."
steps:
- name: consume-events
type: call
call: "kafka.consume"
with:
topic: "{{topic}}"
offset_start: "{{start_offset}}"
offset_end: "{{end_offset}}"
- name: index-for-audit
type: call
call: "elasticsearch.bulk-index"
with:
index: "claims-audit-{{topic}}"
body: "{{consume-events.records}}"
- name: log-replay
type: call
call: "splunk.create-event"
with:
index: "audit_trail"
event: "topic={{topic}} start={{start_offset}} end={{end_offset}} records={{consume-events.count}}"
consumes:
- type: http
namespace: kafka
baseUri: "https://allstate-kafka-rest.corp.allstate.com/v3"
authentication:
type: basic
username: "$secrets.kafka_user"
password: "$secrets.kafka_password"
resources:
- name: records
path: "/clusters/allstate-prod/topics/{{topic}}/records"
inputParameters:
- name: topic
in: path
operations:
- name: consume
method: GET
- type: http
namespace: elasticsearch
baseUri: "https://allstate-es.es.eastus2.azure.elastic-cloud.com"
authentication:
type: basic
username: "$secrets.es_user"
password: "$secrets.es_password"
resources:
- name: bulk
path: "/{{index}}/_bulk"
inputParameters:
- name: index
in: path
operations:
- name: bulk-index
method: POST
- type: http
namespace: splunk
baseUri: "https://allstate-splunk.splunkcloud.com:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: events
path: "/receivers/simple"
operations:
- name: create-event
method: POST
Calculates loss ratios by line of business in Snowflake, identifies deteriorating segments, creates action plans, and notifies management.
naftiko: "0.5"
info:
label: "Loss Ratio Monitoring Pipeline"
description: "Calculates loss ratios by line of business in Snowflake, identifies deteriorating segments, creates action plans, and notifies management."
tags:
- actuarial
- snowflake
- powerbi
- jira
- slack
capability:
exposes:
- type: mcp
namespace: actuarial
port: 8080
tools:
- name: loss_ratio_monitoring_pipeline
description: "Orchestrate loss ratio monitoring pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-jira
type: call
call: "jira.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-servicenow
type: call
call: "servicenow.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: jira
baseUri: "https://allstate.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
Collects marketing touchpoints from Salesforce, runs attribution models in Snowflake, calculates ROI, updates Power BI, and notifies marketing.
naftiko: "0.5"
info:
label: "Marketing Attribution Pipeline"
description: "Collects marketing touchpoints from Salesforce, runs attribution models in Snowflake, calculates ROI, updates Power BI, and notifies marketing."
tags:
- marketing
- salesforce
- snowflake
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: marketing
port: 8080
tools:
- name: marketing_attribution_pipeline
description: "Orchestrate marketing attribution pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-salesforce
type: call
call: "salesforce.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-snowflake
type: call
call: "snowflake.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-servicenow
type: call
call: "servicenow.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
Launches an insurance marketing campaign by creating the campaign in HubSpot, generating ad copy via OpenAI, tracking in Google Analytics, and notifying the marketing team.
naftiko: "0.5"
info:
label: "Marketing Campaign Launcher"
description: "Launches an insurance marketing campaign by creating the campaign in HubSpot, generating ad copy via OpenAI, tracking in Google Analytics, and notifying the marketing team."
tags:
- marketing
- campaigns
- hubspot
- openai
- google-analytics
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: marketing-campaigns
port: 8080
tools:
- name: launch-campaign
description: "Launch a marketing campaign across HubSpot, OpenAI, and Google Analytics with team notification."
inputParameters:
- name: campaign_name
in: body
type: string
description: "Campaign name."
- name: target_audience
in: body
type: string
description: "Target audience segment."
- name: product_line
in: body
type: string
description: "Insurance product: auto, home, life, renters."
steps:
- name: generate-copy
type: call
call: "openai.create-completion"
with:
model: "gpt-4o"
prompt: "Write compelling ad copy for Allstate {{product_line}} insurance targeting {{target_audience}}. Include a call to action."
- name: create-campaign
type: call
call: "hubspot.create-campaign"
with:
name: "{{campaign_name}}"
content: "{{generate-copy.choices[0].text}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "marketing-team"
text: "Campaign '{{campaign_name}}' launched targeting {{target_audience}} for {{product_line}}. HubSpot ID: {{create-campaign.id}}."
consumes:
- type: http
namespace: openai
baseUri: "https://api.openai.com/v1"
authentication:
type: bearer
token: "$secrets.openai_api_key"
resources:
- name: completions
path: "/chat/completions"
operations:
- name: create-completion
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: campaigns
path: "/marketing/v3/campaigns"
operations:
- name: create-campaign
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Queries Microsoft Sentinel for active security alerts related to Allstate's insurance platform infrastructure. Returns severity, status, and affected resources.
naftiko: "0.5"
info:
label: "Microsoft Sentinel Threat Detection"
description: "Queries Microsoft Sentinel for active security alerts related to Allstate's insurance platform infrastructure. Returns severity, status, and affected resources."
tags:
- security
- threat-detection
- microsoft-sentinel
capability:
exposes:
- type: mcp
namespace: threat-detection
port: 8080
tools:
- name: get-active-alerts
description: "Fetch active security alerts from Microsoft Sentinel. Returns alert name, severity, and affected entities."
inputParameters:
- name: severity_filter
in: body
type: string
description: "Filter by severity: High, Medium, Low, or Informational."
call: "sentinel.list-alerts"
with:
filter: "properties/severity eq '{{severity_filter}}' and properties/status eq 'New'"
outputParameters:
- name: alerts
type: string
mapping: "$.value"
consumes:
- type: http
namespace: sentinel
baseUri: "https://management.azure.com/subscriptions/$secrets.azure_subscription_id/resourceGroups/allstate-security/providers/Microsoft.SecurityInsights"
authentication:
type: bearer
token: "$secrets.azure_token"
resources:
- name: alerts
path: "/alerts?api-version=2023-11-01"
operations:
- name: list-alerts
method: GET
Retrieves a credit risk assessment from Moody's for a commercial insurance applicant by company identifier. Used by commercial lines underwriters.
naftiko: "0.5"
info:
label: "Moody's Credit Risk Assessment"
description: "Retrieves a credit risk assessment from Moody's for a commercial insurance applicant by company identifier. Used by commercial lines underwriters."
tags:
- underwriting
- risk-assessment
- moodys
- commercial-insurance
capability:
exposes:
- type: mcp
namespace: credit-risk
port: 8080
tools:
- name: get-credit-risk
description: "Look up a company credit risk rating from Moody's. Returns rating, outlook, and probability of default."
inputParameters:
- name: company_id
in: body
type: string
description: "Moody's company identifier or DUNS number."
call: "moodys.get-rating"
with:
company_id: "{{company_id}}"
outputParameters:
- name: rating
type: string
mapping: "$.rating.currentRating"
- name: outlook
type: string
mapping: "$.rating.outlook"
- name: probability_of_default
type: string
mapping: "$.rating.probabilityOfDefault"
consumes:
- type: http
namespace: moodys
baseUri: "https://api.economy.com/data/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_key"
resources:
- name: ratings
path: "/ratings/{{company_id}}"
inputParameters:
- name: company_id
in: path
operations:
- name: get-rating
method: GET
Retrieves Okta user profile for Allstate identity management.
naftiko: "0.5"
info:
label: "Okta User Profile Lookup"
description: "Retrieves Okta user profile for Allstate identity management."
tags:
- security
- okta
- identity
capability:
exposes:
- type: mcp
namespace: identity
port: 8080
tools:
- name: get-user
description: "Look up user at Allstate."
inputParameters:
- name: user_email
in: body
type: string
description: "The user_email to look up."
call: "okta.get-user_email"
with:
user_email: "{{user_email}}"
consumes:
- type: http
namespace: okta
baseUri: "https://allstate.okta.com/api/v1"
authentication:
type: apiKey
key: "$secrets.okta_api_token"
header: "Authorization"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: okta_user_profile_lookup
method: GET
Retrieves PagerDuty incident details for Allstate on-call teams.
naftiko: "0.5"
info:
label: "PagerDuty Incident Details"
description: "Retrieves PagerDuty incident details for Allstate on-call teams."
tags:
- devops
- pagerduty
- on-call
capability:
exposes:
- type: mcp
namespace: incident-mgmt
port: 8080
tools:
- name: get-incident
description: "Look up incident at Allstate."
inputParameters:
- name: incident_id
in: body
type: string
description: "The incident_id to look up."
call: "pagerduty.get-incident_id"
with:
incident_id: "{{incident_id}}"
consumes:
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: pagerduty_incident_details
method: GET
Processes a policy cancellation by retrieving the policy from Salesforce, calculating prorated refund via Oracle financials, issuing payment via Mastercard, and sending confirmation via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Policy Cancellation Processor"
description: "Processes a policy cancellation by retrieving the policy from Salesforce, calculating prorated refund via Oracle financials, issuing payment via Mastercard, and sending confirmation via Microsoft Outlook."
tags:
- policy-management
- cancellations
- salesforce
- oracle
- mastercard
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: policy-cancellation
port: 8080
tools:
- name: cancel-policy
description: "Process a policy cancellation with prorated refund calculation and payment."
inputParameters:
- name: policy_number
in: body
type: string
description: "The policy number to cancel."
- name: cancellation_date
in: body
type: string
description: "Effective cancellation date in YYYY-MM-DD format."
- name: reason
in: body
type: string
description: "Cancellation reason code."
steps:
- name: get-policy
type: call
call: "salesforce.get-policy"
with:
policy_number: "{{policy_number}}"
- name: calculate-refund
type: call
call: "oracle.calculate-prorated-refund"
with:
premium: "{{get-policy.records[0].Annual_Premium__c}}"
effective_date: "{{get-policy.records[0].Effective_Date__c}}"
cancellation_date: "{{cancellation_date}}"
- name: issue-refund
type: call
call: "mastercard.initiate-payment"
with:
amount: "{{calculate-refund.refund_amount}}"
recipient_id: "{{get-policy.records[0].Contact__c}}"
- name: send-confirmation
type: call
call: "outlook.send-mail"
with:
to: "{{get-policy.records[0].Policyholder_Email__c}}"
subject: "Policy {{policy_number}} Cancellation Confirmation"
body: "Your policy has been cancelled effective {{cancellation_date}}. Refund of ${{calculate-refund.refund_amount}} will be processed within 5-7 business days."
consumes:
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: policy-query
path: "/query/?q=SELECT+Id,Policy_Number__c,Annual_Premium__c,Effective_Date__c,Policyholder_Email__c,Contact__c+FROM+Policy__c+WHERE+Policy_Number__c='{{policy_number}}'"
inputParameters:
- name: policy_number
in: query
operations:
- name: get-policy
method: GET
- type: http
namespace: oracle
baseUri: "https://allstate-ebs.oracle.com/webservices/rest/v1"
authentication:
type: basic
username: "$secrets.oracle_user"
password: "$secrets.oracle_password"
resources:
- name: refund-calculator
path: "/billing/prorated-refund"
operations:
- name: calculate-prorated-refund
method: POST
- type: http
namespace: mastercard
baseUri: "https://api.mastercard.com/disbursements/v1"
authentication:
type: bearer
token: "$secrets.mastercard_api_key"
resources:
- name: payments
path: "/payments"
operations:
- name: initiate-payment
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-mail
method: POST
Generates policy documents from template data, validates content, stores in SharePoint, delivers to policyholder, and logs in ServiceNow.
naftiko: "0.5"
info:
label: "Policy Document Generation Pipeline"
description: "Generates policy documents from template data, validates content, stores in SharePoint, delivers to policyholder, and logs in ServiceNow."
tags:
- document-mgmt
- servicenow
- salesforce
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: document-mgmt
port: 8080
tools:
- name: policy_document_generation_pipeline
description: "Orchestrate policy document generation pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-salesforce
type: call
call: "salesforce.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Identifies at-risk policies in Snowflake, triggers retention campaigns in Salesforce, sends notifications, and notifies retention team.
naftiko: "0.5"
info:
label: "Policy Lapse Prevention Pipeline"
description: "Identifies at-risk policies in Snowflake, triggers retention campaigns in Salesforce, sends notifications, and notifies retention team."
tags:
- retention
- snowflake
- salesforce
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: retention
port: 8080
tools:
- name: policy_lapse_prevention_pipeline
description: "Orchestrate policy lapse prevention pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-salesforce
type: call
call: "salesforce.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-servicenow
type: call
call: "servicenow.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Retrieves an Allstate insurance policy by policy number from the Salesforce policy administration system, returning coverage details, premium, and policyholder information.
naftiko: "0.5"
info:
label: "Policy Lookup"
description: "Retrieves an Allstate insurance policy by policy number from the Salesforce policy administration system, returning coverage details, premium, and policyholder information."
tags:
- policy-management
- salesforce
- insurance
capability:
exposes:
- type: mcp
namespace: policy-admin
port: 8080
tools:
- name: get-policy
description: "Look up an insurance policy by policy number. Returns coverage type, premium amount, effective dates, and policyholder name."
inputParameters:
- name: policy_number
in: body
type: string
description: "The Allstate policy number."
call: "salesforce.get-policy"
with:
policy_number: "{{policy_number}}"
outputParameters:
- name: coverage_type
type: string
mapping: "$.records[0].Coverage_Type__c"
- name: premium
type: string
mapping: "$.records[0].Annual_Premium__c"
- name: effective_date
type: string
mapping: "$.records[0].Effective_Date__c"
- name: policyholder_name
type: string
mapping: "$.records[0].Policyholder_Name__c"
consumes:
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: policies
path: "/query/?q=SELECT+Id,Coverage_Type__c,Annual_Premium__c,Effective_Date__c,Policyholder_Name__c+FROM+Policy__c+WHERE+Policy_Number__c='{{policy_number}}'"
inputParameters:
- name: policy_number
in: query
operations:
- name: get-policy
method: GET
Automates policy renewal by pulling expiring policies from Salesforce, recalculating premium via the underwriting ML model, generating a renewal quote, and emailing the policyholder via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Policy Renewal Workflow"
description: "Automates policy renewal by pulling expiring policies from Salesforce, recalculating premium via the underwriting ML model, generating a renewal quote, and emailing the policyholder via Microsoft Outlook."
tags:
- policy-management
- renewals
- salesforce
- azure-machine-learning
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: policy-renewals
port: 8080
tools:
- name: process-renewal
description: "Given a policy number expiring soon, recalculate premium, generate a renewal offer, and email the policyholder."
inputParameters:
- name: policy_number
in: body
type: string
description: "The policy number to renew."
steps:
- name: get-policy
type: call
call: "salesforce.get-policy"
with:
policy_number: "{{policy_number}}"
- name: recalc-premium
type: call
call: "azureml.score-renewal"
with:
policy_data: "{{get-policy.records[0]}}"
- name: update-policy
type: call
call: "salesforce.update-policy"
with:
policy_id: "{{get-policy.records[0].Id}}"
new_premium: "{{recalc-premium.recommended_premium}}"
renewal_status: "offered"
- name: email-policyholder
type: call
call: "outlook.send-mail"
with:
to: "{{get-policy.records[0].Policyholder_Email__c}}"
subject: "Your Allstate Policy {{policy_number}} Renewal"
body: "Your policy renewal is ready. New premium: ${{recalc-premium.recommended_premium}}/year. Log in to review and accept."
consumes:
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: policy-query
path: "/query/?q=SELECT+Id,Policy_Number__c,Policyholder_Email__c,Annual_Premium__c,Expiration_Date__c+FROM+Policy__c+WHERE+Policy_Number__c='{{policy_number}}'"
inputParameters:
- name: policy_number
in: query
operations:
- name: get-policy
method: GET
- name: policy-update
path: "/sobjects/Policy__c/{{policy_id}}"
inputParameters:
- name: policy_id
in: path
operations:
- name: update-policy
method: PATCH
- type: http
namespace: azureml
baseUri: "https://allstate-underwriting-ml.eastus2.inference.ml.azure.com"
authentication:
type: bearer
token: "$secrets.azureml_underwriting_token"
resources:
- name: renewal-scoring
path: "/score"
operations:
- name: score-renewal
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-mail
method: POST
Aggregates policy, claims, and billing data from multiple systems into Snowflake, updates Salesforce customer 360 view, and triggers insights.
naftiko: "0.5"
info:
label: "Policyholder 360 Aggregation"
description: "Aggregates policy, claims, and billing data from multiple systems into Snowflake, updates Salesforce customer 360 view, and triggers insights."
tags:
- customer-360
- snowflake
- salesforce
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: customer-360
port: 8080
tools:
- name: policyholder_360_aggregation
description: "Orchestrate policyholder 360 aggregation workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-salesforce
type: call
call: "salesforce.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-servicenow
type: call
call: "servicenow.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
Sends a multi-channel policyholder notification by creating an email via Microsoft Outlook, logging the communication in Salesforce, and posting to the agent dashboard in Microsoft Teams.
naftiko: "0.5"
info:
label: "Policyholder Communication Orchestrator"
description: "Sends a multi-channel policyholder notification by creating an email via Microsoft Outlook, logging the communication in Salesforce, and posting to the agent dashboard in Microsoft Teams."
tags:
- customer-service
- communications
- microsoft-outlook
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: customer-comms
port: 8080
tools:
- name: send-policyholder-notification
description: "Send a notification to a policyholder via email and log the communication in Salesforce."
inputParameters:
- name: policy_number
in: body
type: string
description: "The policy number."
- name: subject
in: body
type: string
description: "Notification subject."
- name: message
in: body
type: string
description: "Notification message body."
steps:
- name: get-policyholder
type: call
call: "salesforce.get-policy"
with:
policy_number: "{{policy_number}}"
- name: send-email
type: call
call: "outlook.send-mail"
with:
to: "{{get-policyholder.records[0].Policyholder_Email__c}}"
subject: "{{subject}}"
body: "{{message}}"
- name: log-communication
type: call
call: "salesforce.create-activity"
with:
contact_id: "{{get-policyholder.records[0].Contact__c}}"
subject: "{{subject}}"
type: "Email"
consumes:
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: policy-query
path: "/query/?q=SELECT+Id,Policyholder_Email__c,Contact__c+FROM+Policy__c+WHERE+Policy_Number__c='{{policy_number}}'"
inputParameters:
- name: policy_number
in: query
operations:
- name: get-policy
method: GET
- name: activities
path: "/sobjects/Task"
operations:
- name: create-activity
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-mail
method: POST
Generates batch policyholder correspondence by triggering a Power Automate flow, fetching templates from SharePoint, and logging delivery in Salesforce.
naftiko: "0.5"
info:
label: "Power Automate Correspondence Generator"
description: "Generates batch policyholder correspondence by triggering a Power Automate flow, fetching templates from SharePoint, and logging delivery in Salesforce."
tags:
- automation
- customer-service
- microsoft-power-automate
- sharepoint
- salesforce
capability:
exposes:
- type: mcp
namespace: correspondence
port: 8080
tools:
- name: generate-correspondence
description: "Generate and send batch correspondence to policyholders via Power Automate, SharePoint, and Salesforce."
inputParameters:
- name: template_name
in: body
type: string
description: "Correspondence template name."
- name: policy_numbers
in: body
type: string
description: "Comma-separated policy numbers."
steps:
- name: get-template
type: call
call: "sharepoint.get-file"
with:
site_id: "correspondence_templates"
file_path: "templates/{{template_name}}.docx"
- name: trigger-flow
type: call
call: "powerautomate.trigger-flow"
with:
flow_id: "correspondence-generator"
template_url: "{{get-template.webUrl}}"
policy_numbers: "{{policy_numbers}}"
- name: log-delivery
type: call
call: "salesforce.create-activity"
with:
subject: "Correspondence sent: {{template_name}}"
description: "Batch correspondence for policies: {{policy_numbers}}. Flow run: {{trigger-flow.run_id}}."
type: "Email"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: get-file
method: GET
- type: http
namespace: powerautomate
baseUri: "https://prod-00.eastus2.logic.azure.com/workflows"
authentication:
type: bearer
token: "$secrets.powerautomate_token"
resources:
- name: flows
path: "/{{flow_id}}/triggers/manual/paths/invoke"
inputParameters:
- name: flow_id
in: path
operations:
- name: trigger-flow
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: activities
path: "/sobjects/Task"
operations:
- name: create-activity
method: POST
Triggers Power BI dataset refresh for Allstate reporting.
naftiko: "0.5"
info:
label: "Power BI Refresh Trigger"
description: "Triggers Power BI dataset refresh for Allstate reporting."
tags:
- analytics
- power-bi
- reporting
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: trigger-refresh
description: "Trigger refresh at Allstate."
inputParameters:
- name: dataset_id
in: body
type: string
description: "The dataset_id to look up."
call: "powerbi.get-dataset_id"
with:
dataset_id: "{{dataset_id}}"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: power_bi_refresh_trigger
method: GET
Processes IoT sensor alerts for commercial property insurance by scoring risk via Azure ML, creating a preventive maintenance task in ServiceNow, and notifying the policyholder via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Predictive Maintenance Alert Processor"
description: "Processes IoT sensor alerts for commercial property insurance by scoring risk via Azure ML, creating a preventive maintenance task in ServiceNow, and notifying the policyholder via Microsoft Outlook."
tags:
- commercial-insurance
- iot
- azure-machine-learning
- servicenow
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: predictive-maintenance
port: 8080
tools:
- name: process-sensor-alert
description: "Process an IoT sensor alert for a commercial property policy by scoring risk and creating a maintenance task."
inputParameters:
- name: sensor_id
in: body
type: string
description: "IoT sensor identifier."
- name: alert_type
in: body
type: string
description: "Alert type: water_leak, temperature, fire, structural."
- name: policy_number
in: body
type: string
description: "Commercial property policy number."
steps:
- name: score-risk
type: call
call: "azureml.score-iot"
with:
sensor_id: "{{sensor_id}}"
alert_type: "{{alert_type}}"
- name: create-task
type: call
call: "servicenow.create-task"
with:
short_description: "Preventive maintenance: {{alert_type}} alert for policy {{policy_number}}"
priority: "{{score-risk.priority}}"
assignment_group: "Commercial_Claims"
- name: notify-policyholder
type: call
call: "outlook.send-mail"
with:
to: "{{score-risk.contact_email}}"
subject: "Maintenance Alert for Policy {{policy_number}}"
body: "Our sensors detected a {{alert_type}} condition at your property. Risk level: {{score-risk.risk_level}}. A maintenance task has been created: {{create-task.number}}."
consumes:
- type: http
namespace: azureml
baseUri: "https://allstate-iot-ml.eastus2.inference.ml.azure.com"
authentication:
type: bearer
token: "$secrets.azureml_iot_token"
resources:
- name: iot-scoring
path: "/score"
operations:
- name: score-iot
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: tasks
path: "/table/sc_task"
operations:
- name: create-task
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-mail
method: POST
Collects audit data from policyholders, validates against premium basis in Snowflake, calculates adjustments, and notifies underwriting.
naftiko: "0.5"
info:
label: "Premium Audit Processing Pipeline"
description: "Collects audit data from policyholders, validates against premium basis in Snowflake, calculates adjustments, and notifies underwriting."
tags:
- audit
- snowflake
- servicenow
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: audit
port: 8080
tools:
- name: premium_audit_processing_pipeline
description: "Orchestrate premium audit processing pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-salesforce
type: call
call: "salesforce.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Schedules property inspections, dispatches inspectors via ServiceNow, collects reports, analyzes in Snowflake, and notifies underwriting.
naftiko: "0.5"
info:
label: "Property Inspection Orchestrator"
description: "Schedules property inspections, dispatches inspectors via ServiceNow, collects reports, analyzes in Snowflake, and notifies underwriting."
tags:
- underwriting
- servicenow
- snowflake
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: underwriting
port: 8080
tools:
- name: property_inspection_orchestrator
description: "Orchestrate property inspection orchestrator workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-snowflake
type: call
call: "snowflake.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-salesforce
type: call
call: "salesforce.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Retrieves the current loss ratio analysis from a Qlik Sense app for a specified line of business. Used by actuaries and underwriting leadership.
naftiko: "0.5"
info:
label: "Qlik Sense Loss Ratio Dashboard"
description: "Retrieves the current loss ratio analysis from a Qlik Sense app for a specified line of business. Used by actuaries and underwriting leadership."
tags:
- analytics
- actuarial
- qlik-sense
capability:
exposes:
- type: mcp
namespace: actuarial-analytics
port: 8080
tools:
- name: get-loss-ratio
description: "Fetch loss ratio data from a Qlik Sense app by line of business. Returns current ratio and trend."
inputParameters:
- name: app_id
in: body
type: string
description: "Qlik Sense application ID."
- name: line_of_business
in: body
type: string
description: "Insurance line: auto, home, life, or commercial."
call: "qlik.get-hypercube"
with:
app_id: "{{app_id}}"
dimension: "{{line_of_business}}"
outputParameters:
- name: loss_ratio
type: string
mapping: "$.result.qDataPages[0].qMatrix[0][1].qNum"
- name: trend
type: string
mapping: "$.result.qDataPages[0].qMatrix[0][2].qText"
consumes:
- type: http
namespace: qlik
baseUri: "https://allstate.us.qlikcloud.com/api/v1"
authentication:
type: bearer
token: "$secrets.qlik_token"
resources:
- name: apps
path: "/apps/{{app_id}}/objects/loss-ratio-hypercube/data"
inputParameters:
- name: app_id
in: path
operations:
- name: get-hypercube
method: POST
Generates a regulatory compliance report by pulling policy data from Salesforce, financial data from Oracle, and filing records from SharePoint, then compiling into a Confluence page for state regulators.
naftiko: "0.5"
info:
label: "Regulatory Compliance Report Generator"
description: "Generates a regulatory compliance report by pulling policy data from Salesforce, financial data from Oracle, and filing records from SharePoint, then compiling into a Confluence page for state regulators."
tags:
- compliance
- regulatory
- salesforce
- oracle
- sharepoint
- confluence
capability:
exposes:
- type: mcp
namespace: compliance-reporting
port: 8080
tools:
- name: generate-compliance-report
description: "Generate a regulatory compliance report for a given state and reporting period."
inputParameters:
- name: state_code
in: body
type: string
description: "Two-letter state code, e.g. 'IL', 'CA'."
- name: reporting_period
in: body
type: string
description: "Reporting period, e.g. 'Q1-2026'."
steps:
- name: get-policy-stats
type: call
call: "salesforce.query-policies"
with:
state: "{{state_code}}"
period: "{{reporting_period}}"
- name: get-financial-data
type: call
call: "oracle.get-financials"
with:
state: "{{state_code}}"
period: "{{reporting_period}}"
- name: get-filings
type: call
call: "sharepoint.list-files"
with:
site_id: "regulatory_filings"
folder_path: "{{state_code}}/{{reporting_period}}"
- name: publish-report
type: call
call: "confluence.create-page"
with:
space_key: "COMPLIANCE"
title: "{{state_code}} Regulatory Report - {{reporting_period}}"
body: "Policies: {{get-policy-stats.totalSize}}. Premium Volume: ${{get-financial-data.total_premium}}. Loss Ratio: {{get-financial-data.loss_ratio}}."
consumes:
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: policy-stats
path: "/query/?q=SELECT+COUNT(Id)+FROM+Policy__c+WHERE+State__c='{{state}}'AND+Period__c='{{period}}'"
inputParameters:
- name: state
in: query
- name: period
in: query
operations:
- name: query-policies
method: GET
- type: http
namespace: oracle
baseUri: "https://allstate-ebs.oracle.com/webservices/rest/v1"
authentication:
type: basic
username: "$secrets.oracle_user"
password: "$secrets.oracle_password"
resources:
- name: financials
path: "/financials?state={{state}}&period={{period}}"
inputParameters:
- name: state
in: query
- name: period
in: query
operations:
- name: get-financials
method: GET
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{folder_path}}:/children"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: list-files
method: GET
- type: http
namespace: confluence
baseUri: "https://allstate.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
Prepares rate filings from actuarial models in Snowflake, generates documentation, submits to regulators, and notifies compliance team.
naftiko: "0.5"
info:
label: "Regulatory Rate Filing Pipeline"
description: "Prepares rate filings from actuarial models in Snowflake, generates documentation, submits to regulators, and notifies compliance team."
tags:
- regulatory
- snowflake
- servicenow
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: regulatory
port: 8080
tools:
- name: regulatory_rate_filing_pipeline
description: "Orchestrate regulatory rate filing pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Extracts treaty data from Oracle, calculates ceded premiums in Snowflake, generates reinsurance reports, and notifies reinsurance team.
naftiko: "0.5"
info:
label: "Reinsurance Reporting Pipeline"
description: "Extracts treaty data from Oracle, calculates ceded premiums in Snowflake, generates reinsurance reports, and notifies reinsurance team."
tags:
- reinsurance
- oracle
- snowflake
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: reinsurance
port: 8080
tools:
- name: reinsurance_reporting_pipeline
description: "Orchestrate reinsurance reporting pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-oracle
type: call
call: "oracle.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-snowflake
type: call
call: "snowflake.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-servicenow
type: call
call: "servicenow.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: oracle
baseUri: "https://allstate.oraclecloud.com/api/v1"
authentication:
type: bearer
token: "$secrets.oracle_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: oracle-op
method: POST
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
Retrieves Salesforce account details for Allstate sales teams.
naftiko: "0.5"
info:
label: "Salesforce Account Info"
description: "Retrieves Salesforce account details for Allstate sales teams."
tags:
- crm
- salesforce
- accounts
capability:
exposes:
- type: mcp
namespace: crm
port: 8080
tools:
- name: get-account
description: "Look up account at Allstate."
inputParameters:
- name: account_id
in: body
type: string
description: "The account_id to look up."
call: "salesforce.get-account_id"
with:
account_id: "{{account_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce_account_info
method: GET
Checks ServiceNow incident status for Allstate IT operations.
naftiko: "0.5"
info:
label: "ServiceNow Incident Status Check"
description: "Checks ServiceNow incident status for Allstate IT operations."
tags:
- itsm
- servicenow
- incident-management
capability:
exposes:
- type: mcp
namespace: itsm
port: 8080
tools:
- name: get-incident
description: "Look up incident at Allstate."
inputParameters:
- name: incident_id
in: body
type: string
description: "The incident_id to look up."
call: "servicenow.get-incident_id"
with:
incident_id: "{{incident_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow_incident_status_che
method: GET
Creates an IT incident in ServiceNow with categorization, priority, and assignment group. Used across all Allstate departments for IT support requests.
naftiko: "0.5"
info:
label: "ServiceNow IT Incident Creator"
description: "Creates an IT incident in ServiceNow with categorization, priority, and assignment group. Used across all Allstate departments for IT support requests."
tags:
- it-support
- servicenow
- incident-management
capability:
exposes:
- type: mcp
namespace: it-support
port: 8080
tools:
- name: create-it-incident
description: "Create a new IT incident in ServiceNow. Returns the incident number and sys_id."
inputParameters:
- name: short_description
in: body
type: string
description: "Brief description of the IT issue."
- name: category
in: body
type: string
description: "Incident category: network, hardware, software, access."
- name: priority
in: body
type: string
description: "Priority level: 1-critical, 2-high, 3-moderate, 4-low."
call: "servicenow.create-incident"
with:
short_description: "{{short_description}}"
category: "{{category}}"
priority: "{{priority}}"
outputParameters:
- name: incident_number
type: string
mapping: "$.result.number"
- name: sys_id
type: string
mapping: "$.result.sys_id"
consumes:
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
Sends a message to a Slack channel for Allstate notifications.
naftiko: "0.5"
info:
label: "Slack Channel Post"
description: "Sends a message to a Slack channel for Allstate notifications."
tags:
- collaboration
- slack
- messaging
capability:
exposes:
- type: mcp
namespace: messaging
port: 8080
tools:
- name: send-message
description: "Post to Slack at Allstate."
inputParameters:
- name: channel
in: body
type: string
description: "The channel to look up."
call: "slack.get-channel"
with:
channel: "{{channel}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack_channel_post
method: GET
Executes SQL queries against Allstate Snowflake warehouse.
naftiko: "0.5"
info:
label: "Snowflake Query Executor"
description: "Executes SQL queries against Allstate Snowflake warehouse."
tags:
- data
- snowflake
- analytics
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-query
description: "Run query at Allstate."
inputParameters:
- name: sql_query
in: body
type: string
description: "The sql_query to look up."
call: "snowflake.get-sql_query"
with:
sql_query: "{{sql_query}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake_query_executor
method: GET
Searches Splunk indexes for log entries at Allstate.
naftiko: "0.5"
info:
label: "Splunk Log Search"
description: "Searches Splunk indexes for log entries at Allstate."
tags:
- devops
- splunk
- logging
capability:
exposes:
- type: mcp
namespace: logging
port: 8080
tools:
- name: search-logs
description: "Search Splunk logs for Allstate."
inputParameters:
- name: query
in: body
type: string
description: "The query to look up."
call: "splunk.get-query"
with:
query: "{{query}}"
consumes:
- type: http
namespace: splunk
baseUri: "https://allstate-splunk.com/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: splunk_log_search
method: GET
Searches Splunk for security events related to a specific user or IP address within the Allstate network. Used by the security operations team for incident investigation.
naftiko: "0.5"
info:
label: "Splunk Security Event Search"
description: "Searches Splunk for security events related to a specific user or IP address within the Allstate network. Used by the security operations team for incident investigation."
tags:
- security
- incident-response
- splunk
capability:
exposes:
- type: mcp
namespace: security-ops
port: 8080
tools:
- name: search-security-events
description: "Search Splunk for security events by user or IP. Returns matching events with timestamp, source, and severity."
inputParameters:
- name: search_query
in: body
type: string
description: "Splunk search query, e.g. 'sourcetype=firewall src_ip=10.0.0.1'."
- name: time_range
in: body
type: string
description: "Time range, e.g. '-24h'."
call: "splunk.search"
with:
search: "search {{search_query}}"
earliest_time: "{{time_range}}"
consumes:
- type: http
namespace: splunk
baseUri: "https://allstate-splunk.splunkcloud.com:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: search-jobs
path: "/search/jobs"
operations:
- name: search
method: POST
Executes an SRE runbook by checking Prometheus metrics, querying Datadog for anomalies, restarting pods via Kubernetes, and logging the action in ServiceNow.
naftiko: "0.5"
info:
label: "SRE Runbook Executor"
description: "Executes an SRE runbook by checking Prometheus metrics, querying Datadog for anomalies, restarting pods via Kubernetes, and logging the action in ServiceNow."
tags:
- sre
- observability
- prometheus
- datadog
- kubernetes
- servicenow
capability:
exposes:
- type: mcp
namespace: sre-runbooks
port: 8080
tools:
- name: execute-runbook
description: "Execute an SRE runbook for a failing service: check metrics, restart pods, and log the action."
inputParameters:
- name: service_name
in: body
type: string
description: "Name of the failing service."
- name: namespace
in: body
type: string
description: "Kubernetes namespace."
steps:
- name: check-prometheus
type: call
call: "prometheus.query"
with:
query: "rate(http_requests_total{service=\"{{service_name}}\",code=~\"5..\"}[5m])"
- name: check-datadog
type: call
call: "datadog.query-metrics"
with:
query: "avg:trace.http.request.errors{service:{{service_name}}}"
from: "last_15m"
- name: restart-pods
type: call
call: "k8s.delete-pods"
with:
namespace: "{{namespace}}"
labelSelector: "app={{service_name}}"
- name: log-action
type: call
call: "servicenow.create-incident"
with:
short_description: "SRE runbook executed: {{service_name}} pod restart"
category: "infrastructure"
description: "Error rate: {{check-prometheus.data.result[0].value[1]}}. Pods restarted in {{namespace}}."
consumes:
- type: http
namespace: prometheus
baseUri: "https://allstate-prometheus.corp.allstate.com/api/v1"
authentication:
type: bearer
token: "$secrets.prometheus_token"
resources:
- name: query
path: "/query?query={{query}}"
inputParameters:
- name: query
in: query
operations:
- name: query
method: GET
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
resources:
- name: metrics
path: "/query"
operations:
- name: query-metrics
method: GET
- type: http
namespace: k8s
baseUri: "https://allstate-aks.eastus2.azmk8s.io"
authentication:
type: bearer
token: "$secrets.k8s_token"
resources:
- name: pods
path: "/api/v1/namespaces/{{namespace}}/pods?labelSelector={{labelSelector}}"
inputParameters:
- name: namespace
in: path
- name: labelSelector
in: query
operations:
- name: delete-pods
method: DELETE
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
Identifies subrogation opportunities from claims data in Snowflake, prioritizes recovery, creates ServiceNow tasks, and notifies subrogation team.
naftiko: "0.5"
info:
label: "Subrogation Recovery Optimization"
description: "Identifies subrogation opportunities from claims data in Snowflake, prioritizes recovery, creates ServiceNow tasks, and notifies subrogation team."
tags:
- subrogation
- snowflake
- servicenow
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: subrogation
port: 8080
tools:
- name: subrogation_recovery_optimization
description: "Orchestrate subrogation recovery optimization workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-salesforce
type: call
call: "salesforce.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Orchestrates subrogation recovery by pulling claim details from ServiceNow, generating a demand letter via OpenAI, storing it in Box, and creating a follow-up task.
naftiko: "0.5"
info:
label: "Subrogation Recovery Workflow"
description: "Orchestrates subrogation recovery by pulling claim details from ServiceNow, generating a demand letter via OpenAI, storing it in Box, and creating a follow-up task."
tags:
- claims-processing
- subrogation
- servicenow
- openai
- box
capability:
exposes:
- type: mcp
namespace: subrogation
port: 8080
tools:
- name: initiate-subrogation
description: "Start a subrogation recovery process for a claim by generating and sending a demand letter."
inputParameters:
- name: claim_number
in: body
type: string
description: "The claim incident number."
- name: at_fault_party
in: body
type: string
description: "Name of the at-fault party or their insurer."
- name: recovery_amount
in: body
type: string
description: "Requested recovery amount in USD."
steps:
- name: get-claim
type: call
call: "servicenow.get-incident"
with:
number: "{{claim_number}}"
- name: generate-letter
type: call
call: "openai.create-completion"
with:
model: "gpt-4o"
prompt: "Draft a professional insurance subrogation demand letter to {{at_fault_party}} for claim {{claim_number}} requesting ${{recovery_amount}} recovery. Claim date: {{get-claim.result.opened_at}}."
- name: store-letter
type: call
call: "box.upload-file"
with:
folder_id: "subrogation_{{claim_number}}"
file_name: "demand_letter_{{at_fault_party}}.pdf"
content: "{{generate-letter.choices[0].text}}"
- name: create-followup
type: call
call: "servicenow.create-task"
with:
short_description: "Subrogation follow-up: {{claim_number}} - {{at_fault_party}}"
assignment_group: "Subrogation_Unit"
description: "Demand letter sent for ${{recovery_amount}}. Document: {{store-letter.shared_link}}."
consumes:
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
inputParameters:
- name: number
in: query
operations:
- name: get-incident
method: GET
- name: tasks
path: "/table/sc_task"
operations:
- name: create-task
method: POST
- type: http
namespace: openai
baseUri: "https://api.openai.com/v1"
authentication:
type: bearer
token: "$secrets.openai_api_key"
resources:
- name: completions
path: "/chat/completions"
operations:
- name: create-completion
method: POST
- type: http
namespace: box
baseUri: "https://upload.box.com/api/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: files
path: "/files/content"
operations:
- name: upload-file
method: POST
Orchestrates recruiting by posting a job via Paradox chatbot, creating a Workday requisition, tracking candidates in Salesforce, and notifying the hiring manager via Microsoft Teams.
naftiko: "0.5"
info:
label: "Talent Acquisition Pipeline"
description: "Orchestrates recruiting by posting a job via Paradox chatbot, creating a Workday requisition, tracking candidates in Salesforce, and notifying the hiring manager via Microsoft Teams."
tags:
- recruitment
- talent-acquisition
- paradox
- workday
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: talent-acquisition
port: 8080
tools:
- name: launch-job-posting
description: "Launch a new job posting across Paradox, Workday, and Salesforce, and notify the hiring manager."
inputParameters:
- name: job_title
in: body
type: string
description: "Job title for the posting."
- name: department
in: body
type: string
description: "Department or business unit."
- name: hiring_manager_email
in: body
type: string
description: "Email of the hiring manager."
steps:
- name: create-requisition
type: call
call: "workday.create-requisition"
with:
job_title: "{{job_title}}"
department: "{{department}}"
hiring_manager: "{{hiring_manager_email}}"
- name: post-to-paradox
type: call
call: "paradox.create-job"
with:
title: "{{job_title}}"
requisition_id: "{{create-requisition.requisition_id}}"
- name: create-tracking-record
type: call
call: "salesforce.create-record"
with:
object: "Job_Posting__c"
title: "{{job_title}}"
requisition_id: "{{create-requisition.requisition_id}}"
- name: notify-manager
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{hiring_manager_email}}"
text: "Your job posting for {{job_title}} is live. Requisition: {{create-requisition.requisition_id}}."
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: requisitions
path: "/recruiting/v1/requisitions"
operations:
- name: create-requisition
method: POST
- type: http
namespace: paradox
baseUri: "https://api.paradox.ai/v1"
authentication:
type: bearer
token: "$secrets.paradox_token"
resources:
- name: jobs
path: "/jobs"
operations:
- name: create-job
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: records
path: "/sobjects/{{object}}"
inputParameters:
- name: object
in: path
operations:
- name: create-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Processes telematics data in Snowflake, calculates driving scores, updates policy pricing, and notifies policyholders of savings.
naftiko: "0.5"
info:
label: "Telematics Driving Score Pipeline"
description: "Processes telematics data in Snowflake, calculates driving scores, updates policy pricing, and notifies policyholders of savings."
tags:
- telematics
- snowflake
- salesforce
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: telematics
port: 8080
tools:
- name: telematics_driving_score_pipeline
description: "Orchestrate telematics driving score pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-salesforce
type: call
call: "salesforce.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-servicenow
type: call
call: "servicenow.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
Triggers a Terraform Cloud workspace run to provision or update cloud infrastructure for Allstate's claims platform on Azure.
naftiko: "0.5"
info:
label: "Terraform Infrastructure Provisioning"
description: "Triggers a Terraform Cloud workspace run to provision or update cloud infrastructure for Allstate's claims platform on Azure."
tags:
- infrastructure
- cloud
- terraform
capability:
exposes:
- type: mcp
namespace: infra-provisioning
port: 8080
tools:
- name: trigger-terraform-run
description: "Trigger a Terraform Cloud run for a workspace. Returns run ID and status."
inputParameters:
- name: workspace_id
in: body
type: string
description: "Terraform Cloud workspace ID."
- name: message
in: body
type: string
description: "Run message describing the change."
call: "terraform.create-run"
with:
workspace_id: "{{workspace_id}}"
message: "{{message}}"
outputParameters:
- name: run_id
type: string
mapping: "$.data.id"
- name: status
type: string
mapping: "$.data.attributes.status"
consumes:
- type: http
namespace: terraform
baseUri: "https://app.terraform.io/api/v2"
authentication:
type: bearer
token: "$secrets.terraform_token"
resources:
- name: runs
path: "/runs"
operations:
- name: create-run
method: POST
Ingests data from external vendors, validates quality in Snowflake, enriches policy records in Salesforce, and notifies data team.
naftiko: "0.5"
info:
label: "Third Party Data Integration Pipeline"
description: "Ingests data from external vendors, validates quality in Snowflake, enriches policy records in Salesforce, and notifies data team."
tags:
- data-integration
- snowflake
- salesforce
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: data-integration
port: 8080
tools:
- name: third_party_data_integration_pipeline
description: "Orchestrate third party data integration pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-salesforce
type: call
call: "salesforce.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-servicenow
type: call
call: "servicenow.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Evaluates third-party liability claims by pulling incident reports from ServiceNow, querying legal precedent via Elasticsearch, scoring liability via Azure ML, and creating a case summary in Confluence.
naftiko: "0.5"
info:
label: "Third-Party Liability Evaluator"
description: "Evaluates third-party liability claims by pulling incident reports from ServiceNow, querying legal precedent via Elasticsearch, scoring liability via Azure ML, and creating a case summary in Confluence."
tags:
- claims-processing
- liability
- servicenow
- elasticsearch
- azure-machine-learning
- confluence
capability:
exposes:
- type: mcp
namespace: liability-eval
port: 8080
tools:
- name: evaluate-liability
description: "Evaluate a third-party liability claim by pulling reports, checking precedent, scoring liability, and publishing a case summary."
inputParameters:
- name: claim_number
in: body
type: string
description: "The liability claim number."
- name: jurisdiction
in: body
type: string
description: "State jurisdiction for legal precedent lookup."
steps:
- name: get-incident
type: call
call: "servicenow.get-incident"
with:
number: "{{claim_number}}"
- name: search-precedent
type: call
call: "elasticsearch.search-precedent"
with:
index: "legal-precedent"
q: "{{jurisdiction}} AND liability AND {{get-incident.result.category}}"
- name: score-liability
type: call
call: "azureml.score-liability"
with:
claim_data: "{{get-incident.result}}"
precedent_count: "{{search-precedent.hits.total.value}}"
jurisdiction: "{{jurisdiction}}"
- name: publish-summary
type: call
call: "confluence.create-page"
with:
space_key: "LIABILITY"
title: "Liability Evaluation: {{claim_number}}"
body: "Liability score: {{score-liability.liability_pct}}%. Recommended action: {{score-liability.recommendation}}. Precedent matches: {{search-precedent.hits.total.value}}."
consumes:
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
inputParameters:
- name: number
in: query
operations:
- name: get-incident
method: GET
- type: http
namespace: elasticsearch
baseUri: "https://allstate-es.es.eastus2.azure.elastic-cloud.com"
authentication:
type: basic
username: "$secrets.es_user"
password: "$secrets.es_password"
resources:
- name: legal-search
path: "/{{index}}/_search"
inputParameters:
- name: index
in: path
operations:
- name: search-precedent
method: GET
- type: http
namespace: azureml
baseUri: "https://allstate-liability-ml.eastus2.inference.ml.azure.com"
authentication:
type: bearer
token: "$secrets.azureml_liability_token"
resources:
- name: scoring
path: "/score"
operations:
- name: score-liability
method: POST
- type: http
namespace: confluence
baseUri: "https://allstate.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
Generates an insurance quote by pulling applicant data from Salesforce, scoring risk via Azure ML, checking credit via Moody's, and returning a composite quote to the agent dashboard.
naftiko: "0.5"
info:
label: "Underwriting Quote Pipeline"
description: "Generates an insurance quote by pulling applicant data from Salesforce, scoring risk via Azure ML, checking credit via Moody's, and returning a composite quote to the agent dashboard."
tags:
- underwriting
- quoting
- salesforce
- azure-machine-learning
- moodys
capability:
exposes:
- type: mcp
namespace: underwriting-quote
port: 8080
tools:
- name: generate-quote
description: "Generate a new insurance quote by scoring applicant risk and credit, then computing premium."
inputParameters:
- name: applicant_id
in: body
type: string
description: "Salesforce applicant record ID."
- name: line_of_business
in: body
type: string
description: "Insurance line: auto, home, life, or commercial."
steps:
- name: get-applicant
type: call
call: "salesforce.get-applicant"
with:
applicant_id: "{{applicant_id}}"
- name: score-risk
type: call
call: "azureml.score-underwriting"
with:
applicant_data: "{{get-applicant.records[0]}}"
line_of_business: "{{line_of_business}}"
- name: check-credit
type: call
call: "moodys.get-rating"
with:
company_id: "{{get-applicant.records[0].Company_ID__c}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: applicants
path: "/query/?q=SELECT+Id,Name,Company_ID__c,Address__c+FROM+Applicant__c+WHERE+Id='{{applicant_id}}'"
inputParameters:
- name: applicant_id
in: query
operations:
- name: get-applicant
method: GET
- type: http
namespace: azureml
baseUri: "https://allstate-underwriting-ml.eastus2.inference.ml.azure.com"
authentication:
type: bearer
token: "$secrets.azureml_underwriting_token"
resources:
- name: scoring
path: "/score"
operations:
- name: score-underwriting
method: POST
- type: http
namespace: moodys
baseUri: "https://api.economy.com/data/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_key"
resources:
- name: ratings
path: "/ratings/{{company_id}}"
inputParameters:
- name: company_id
in: path
operations:
- name: get-rating
method: GET
Retrieves a risk score from the Azure Machine Learning underwriting model for a given applicant profile. Used by underwriters to assess new policy applications.
naftiko: "0.5"
info:
label: "Underwriting Risk Score"
description: "Retrieves a risk score from the Azure Machine Learning underwriting model for a given applicant profile. Used by underwriters to assess new policy applications."
tags:
- underwriting
- risk-assessment
- azure-machine-learning
capability:
exposes:
- type: mcp
namespace: underwriting
port: 8080
tools:
- name: get-risk-score
description: "Score an insurance applicant using the underwriting ML model. Returns risk tier, score, and recommended premium adjustment."
inputParameters:
- name: applicant_id
in: body
type: string
description: "The applicant identifier from the quoting system."
- name: line_of_business
in: body
type: string
description: "Insurance line: auto, home, life, or commercial."
call: "azureml.score-underwriting"
with:
applicant_id: "{{applicant_id}}"
line_of_business: "{{line_of_business}}"
outputParameters:
- name: risk_tier
type: string
mapping: "$.risk_tier"
- name: score
type: string
mapping: "$.risk_score"
- name: premium_adjustment
type: string
mapping: "$.premium_adjustment_pct"
consumes:
- type: http
namespace: azureml
baseUri: "https://allstate-underwriting-ml.eastus2.inference.ml.azure.com"
authentication:
type: bearer
token: "$secrets.azureml_underwriting_token"
resources:
- name: scoring
path: "/score"
operations:
- name: score-underwriting
method: POST
Collects applicant data, runs risk models in Snowflake, generates risk score, creates underwriting decision, and notifies agent.
naftiko: "0.5"
info:
label: "Underwriting Risk Scoring Pipeline"
description: "Collects applicant data, runs risk models in Snowflake, generates risk score, creates underwriting decision, and notifies agent."
tags:
- underwriting
- snowflake
- salesforce
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: underwriting
port: 8080
tools:
- name: underwriting_risk_scoring_pipeline
description: "Orchestrate underwriting risk scoring pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-salesforce
type: call
call: "salesforce.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-servicenow
type: call
call: "servicenow.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://allstate.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Tracks vendor performance in ServiceNow, scores in Snowflake, creates renewal evaluations in Jira, and notifies procurement.
naftiko: "0.5"
info:
label: "Vendor Management Pipeline"
description: "Tracks vendor performance in ServiceNow, scores in Snowflake, creates renewal evaluations in Jira, and notifies procurement."
tags:
- procurement
- servicenow
- snowflake
- jira
- slack
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: vendor_management_pipeline
description: "Orchestrate vendor management pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-snowflake
type: call
call: "snowflake.process-resource"
with:
resource_id: "{{resource_id}}"
- name: create-jira
type: call
call: "jira.create-resource"
with:
resource_id: "{{resource_id}}"
- name: notify-slack
type: call
call: "slack.notify-resource"
with:
resource_id: "{{resource_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: snowflake
baseUri: "https://allstate.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: jira
baseUri: "https://allstate.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Onboards a new insurance vendor by creating a Workday supplier record, opening a ServiceNow procurement ticket, storing contracts in Box, and notifying procurement via Microsoft Teams.
naftiko: "0.5"
info:
label: "Vendor Onboarding Workflow"
description: "Onboards a new insurance vendor by creating a Workday supplier record, opening a ServiceNow procurement ticket, storing contracts in Box, and notifying procurement via Microsoft Teams."
tags:
- vendor-management
- procurement
- workday
- servicenow
- box
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: vendor-onboarding
port: 8080
tools:
- name: onboard-vendor
description: "Onboard a new vendor across Workday, ServiceNow, Box, and Teams."
inputParameters:
- name: vendor_name
in: body
type: string
description: "Vendor company name."
- name: vendor_type
in: body
type: string
description: "Type: repair_shop, medical_provider, legal_firm, contractor."
- name: contact_email
in: body
type: string
description: "Vendor primary contact email."
steps:
- name: create-supplier
type: call
call: "workday.create-supplier"
with:
name: "{{vendor_name}}"
type: "{{vendor_type}}"
email: "{{contact_email}}"
- name: create-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "Vendor onboarding: {{vendor_name}}"
category: "procurement"
assignment_group: "Vendor_Management"
- name: create-contract-folder
type: call
call: "box.create-folder"
with:
parent_id: "vendor_contracts"
name: "{{vendor_name}}_{{create-supplier.supplier_id}}"
- name: notify-procurement
type: call
call: "msteams.send-message"
with:
channel_id: "procurement-team"
text: "New vendor onboarded: {{vendor_name}} ({{vendor_type}}). Supplier ID: {{create-supplier.supplier_id}}. Contract folder: {{create-contract-folder.url}}."
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: suppliers
path: "/procurement/v1/suppliers"
operations:
- name: create-supplier
method: POST
- type: http
namespace: servicenow
baseUri: "https://allstate.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: box
baseUri: "https://api.box.com/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: folders
path: "/folders"
operations:
- name: create-folder
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Tracks vulnerability remediation by pulling findings from Microsoft Defender, creating Azure DevOps work items for each critical finding, and notifying the security team in Microsoft Teams.
naftiko: "0.5"
info:
label: "Vulnerability Remediation Tracker"
description: "Tracks vulnerability remediation by pulling findings from Microsoft Defender, creating Azure DevOps work items for each critical finding, and notifying the security team in Microsoft Teams."
tags:
- security
- vulnerability-management
- microsoft-defender
- azure-devops
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: vuln-remediation
port: 8080
tools:
- name: track-remediation
description: "Create remediation tickets for critical vulnerabilities from Defender and notify the security team."
inputParameters:
- name: device_group
in: body
type: string
description: "Defender device group to scan."
steps:
- name: get-vulns
type: call
call: "defender.list-vulnerabilities"
with:
device_group: "{{device_group}}"
- name: create-tickets
type: call
call: "azuredevops.create-work-item"
with:
project: "SecurityOps"
type: "Bug"
title: "Critical vulnerability in {{device_group}}"
description: "Vulnerabilities found: {{get-vulns.value}}. Immediate remediation required."
- name: notify-security
type: call
call: "msteams.send-message"
with:
channel_id: "security-engineering"
text: "Vulnerability scan for {{device_group}} complete. Work item created: {{create-tickets.id}}."
consumes:
- type: http
namespace: defender
baseUri: "https://api.securitycenter.microsoft.com/api"
authentication:
type: bearer
token: "$secrets.defender_token"
resources:
- name: vulnerabilities
path: "/vulnerabilities?$filter=machineGroup eq '{{device_group}}'"
inputParameters:
- name: device_group
in: query
operations:
- name: list-vulnerabilities
method: GET
- type: http
namespace: azuredevops
baseUri: "https://dev.azure.com/allstate"
authentication:
type: basic
username: ""
password: "$secrets.azuredevops_pat"
resources:
- name: work-items
path: "/{{project}}/_apis/wit/workitems/${{type}}?api-version=7.0"
inputParameters:
- name: project
in: path
- name: type
in: path
operations:
- name: create-work-item
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Processes employee benefits enrollment changes in Workday during open enrollment, validates selections, and sends confirmation via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Workday Benefits Enrollment Processor"
description: "Processes employee benefits enrollment changes in Workday during open enrollment, validates selections, and sends confirmation via Microsoft Outlook."
tags:
- hr
- benefits
- workday
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: hr-benefits
port: 8080
tools:
- name: process-enrollment
description: "Process a benefits enrollment change in Workday and send confirmation to the employee."
inputParameters:
- name: worker_id
in: body
type: string
description: "Workday worker ID."
- name: benefit_plan
in: body
type: string
description: "Selected benefit plan name."
- name: effective_date
in: body
type: string
description: "Enrollment effective date in YYYY-MM-DD format."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
- name: enroll-benefit
type: call
call: "workday.enroll-benefit"
with:
worker_id: "{{worker_id}}"
plan: "{{benefit_plan}}"
effective_date: "{{effective_date}}"
- name: send-confirmation
type: call
call: "outlook.send-mail"
with:
to: "{{get-employee.work_email}}"
subject: "Benefits Enrollment Confirmation"
body: "Hi {{get-employee.first_name}}, your enrollment in {{benefit_plan}} is confirmed effective {{effective_date}}. Enrollment ID: {{enroll-benefit.enrollment_id}}."
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- name: benefits
path: "/benefits/enrollments"
operations:
- name: enroll-benefit
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-mail
method: POST
Retrieves employee details from Workday by employee ID. Used by HR and managers to look up reporting structure, department, and contact information.
naftiko: "0.5"
info:
label: "Workday Employee Directory Lookup"
description: "Retrieves employee details from Workday by employee ID. Used by HR and managers to look up reporting structure, department, and contact information."
tags:
- hr
- workday
- employee-management
capability:
exposes:
- type: mcp
namespace: hr-directory
port: 8080
tools:
- name: get-employee
description: "Look up an Allstate employee by worker ID in Workday. Returns name, department, manager, and title."
inputParameters:
- name: worker_id
in: body
type: string
description: "The Workday worker ID."
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
outputParameters:
- name: full_name
type: string
mapping: "$.worker.fullName"
- name: department
type: string
mapping: "$.worker.department"
- name: manager
type: string
mapping: "$.worker.manager.fullName"
- name: title
type: string
mapping: "$.worker.jobTitle"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
Retrieves employee profile from Workday at Allstate.
naftiko: "0.5"
info:
label: "Workday Employee Lookup"
description: "Retrieves employee profile from Workday at Allstate."
tags:
- hr
- workday
- employee-data
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: get-employee
description: "Look up Workday employee at Allstate."
inputParameters:
- name: employee_id
in: body
type: string
description: "The employee_id to look up."
call: "workday.get-employee_id"
with:
employee_id: "{{employee_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/allstate"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: workday_employee_lookup
method: GET