Skip to main content

Sales and CRM pack

Sales and CRM pack template, sales opportunity assistant on fictitious data with a simulated crm connector.

Reference​

FieldValue
Namesales-crm
Version1.0.0
LicenceMIT
TypeTemplate
formatpack
domainsales-crm
Categorysales-crm
namespaceenterprise-ai-packs
publisherEnterprise AI reference packs
ownerenterprise-ai-packs
compatibility.platform>=1.0.0 <2.0.0
compatibility.sdk>=1.0.0 <2.0.0
compatibility.runtimesnavin
dependenciesNone
Sourcepacks/templates/sales-crm/plugin.yaml
Documentationpacks/templates/sales-crm/docs/en/README.md, packs/templates/sales-crm/docs/fr/README.md

Capabilities​

KindName
toolsales-crm-search
toolsales-crm-update-status
connectorsales-crm-crm
policysales_crm

Requested permissions​

The administrator grants a subset at install time; only the granted scopes are enforced.

ScopeSensitiveClassificationReason
sales-crm.opportunities.readNoconfidentialRead sales opportunity records to answer questions.
sales-crm.opportunities.writeYesconfidentialChange the status of a sales opportunity after a human approval.

Data protection​

FieldValue
classification_maxconfidential
piifalse
residencyeu-west-1
retention_days30
dlpmask
fictitious_datatrue
piiDetectionRequiredtrue
maskingPolicymask
externalExportDefaultdeny

Approvals​

Required for: install, upgrade, sensitivePermissions, production, externalExport, resume.

GateQuorumRoles
install1tenant_admin, security_officer
sensitive2tenant_admin, security_officer
production2tenant_admin, security_officer

Security and test flags​

FieldValue
security.signedArtifactRequiredtrue
security.sandboxRequiredtrue
security.dynamicAuthorizationtrue
security.auditRequiredtrue
testFlags.sdkConformancetrue
testFlags.authorizationtrue
testFlags.securitytrue

Configuration​

Properties of spec.configSchema, set by the administrator at install time:

NameTypeConstraints
model_idstring{"minLength": 3}
mcp_serversobject{"additionalProperties": {"additionalProperties": false, "properties": {"url": {"pattern": "^https?://", "type": "string"}}, "required": ["url"], "type": "object"}}

Components​

KindNameVersionDescriptionDetailsPath
Agentsales-crm-assistant1.0.0Answers questions on sales opportunity records and prepares status changes for a human approval.risk_level: limited, autonomy.level: supervised, tools tool:sales-crm-search, tool:sales-crm-update-statuspacks/templates/sales-crm/agents/sales-crm-assistant.yaml
Subagentsales-crm-reviewer1.0.0Reviews a proposed sales opportunity status change against the rules before the human approval.risk_level: minimal, autonomy.level: assisted, tools tool:sales-crm-searchpacks/templates/sales-crm/subagents/sales-crm-reviewer.yaml
Promptsales-crm-summary-Summary of a sales opportunity record for a business user.variables record_id, audience, languagepacks/templates/sales-crm/prompts/sales-crm-summary.yaml
MCP serversales-crm-mcp-MCP server of the Sales and CRM pack (official MCP Python SDK, MIT licence).transport: streamable_http, tools sales_crm_search, sales_crm_update_statuspacks/templates/sales-crm/mcp/servers/sales-crm-mcp.yaml
MCP toolsales-crm-search1.0.0Search fictitious sales opportunity records through the pack MCP server.action: read, scopes sales-crm.opportunities.read, risk_level: limited, requires_approval: falsepacks/templates/sales-crm/mcp/tools/sales-crm-search.yaml
MCP toolsales-crm-update-status1.0.0Change the status of a fictitious sales opportunity record, idempotent, after a human approval.action: write, scopes sales-crm.opportunities.write, risk_level: high, requires_approval: truepacks/templates/sales-crm/mcp/tools/sales-crm-update-status.yaml
Connectorsales-crm-crm1.0.0crm connector of the Sales and CRM pack. Simulated on fictitious data until the tenant configures it.system: crm, auth.type: api_key, scopes sales-crm.opportunities.read, sales-crm.opportunities.writepacks/templates/sales-crm/connectors/sales-crm-crm.yaml
Workflowsales-crm-status-change-Status change of a sales opportunity with a review and a four eyes approval.steps search, review, approval, apply, on_failure: stoppacks/templates/sales-crm/workflows/sales-crm-status-change.yaml
Knowledge basesales-crm-knowledge-Knowledge base template of the Sales and CRM pack (fictitious documents).classification: internalpacks/templates/sales-crm/rag/config.yaml
Skillsales-crm-guidelines1.0.0How the Sales and CRM assistant handles sales opportunity records.scopes sales-crm.opportunities.read, data_classification_max: confidentialpacks/templates/sales-crm/skills/sales-crm-guidelines/SKILL.md

Evaluations and tests​

NameTypePathThreshold
sales-crm-answerspromptfooevaluations/promptfoo.yaml1.0
sales-crm-retrievalragasevaluations/ragas.jsonl0.8
KindPath
unittests/unit
integrationtests/integration
authztests/authz
securitytests/security
opapolicies/opa

Files​

KindPath
Rulespacks/templates/sales-crm/rules/sales-crm-rules.md
Policiespacks/templates/sales-crm/policies/opa/sales_crm.rego, packs/templates/sales-crm/policies/opa/sales_crm_test.rego, packs/templates/sales-crm/policies/openfga/model.fga, packs/templates/sales-crm/policies/openfga/tests.fga.yaml
Observabilitypacks/templates/sales-crm/observability/alerts/sales-crm.yaml
Knowledge base documentspacks/templates/sales-crm/rag/documents/guide.md

Install it​

Validate, build, sign and publish the pack, then install it from the Marketplace: the preflight checks the capabilities and the configuration before the installation.

enterprise-ai plugin validate packs/templates/sales-crm
enterprise-ai plugin build packs/templates/sales-crm --out /tmp/sales-crm-dist
COSIGN_PASSWORD=... enterprise-ai plugin sign packs/templates/sales-crm --out /tmp/sales-crm-dist --key cosign.key --signer <publisher>
enterprise-ai plugin publish packs/templates/sales-crm --out /tmp/sales-crm-dist --key cosign.key \
--oci <registry>/packs/sales-crm:1.0.0

cosign.key: signing key of your organization. <publisher>: publisher name registered in the Marketplace. <registry>: OCI registry of the Marketplace. Then call POST /v1/marketplace/preflight and POST /v1/marketplace/installations, see the Marketplace guide.