Sales Pipeline Tracking
In a sales environment, capturing and tracking opportunities throughout the sales pipeline is essential for effective opportunity management and forecasting. With this workflow, a Sales Opportunity Application broadcasts new opportunities using FDC3. A pipeline evaluation service (Action) processes these opportunities to update their status (e.g., from “Prospecting” to “Negotiation”) by raising an intent. Finally, the CRM system (via a Receptor) receives the qualified opportunity data and updates the sales pipeline for follow-up and reporting.
Sequence Diagram
Component Descriptions:
- Sales Opportunity App (Agent SDK): Initiates the process by broadcasting a new sales opportunity context.
- Delivery Hook: Optionally transforms or routes the sales opportunity context to the evaluation service.
- Pipeline Evaluation Service (Action): Processes the opportunity, updates status and scoring, then raises an intent for pipeline update.
- CRM System (Receptor): Receives the updated opportunity context to reflect the current pipeline stage.
Implementation Patterns & Code
Below are TypeScript code examples demonstrating key parts of this workflow.
1. Sales Opportunity Broadcast
This code snippet shows how the Sales Opportunity App broadcasts a new sales opportunity context:
import { DesktopAgent } from '@finos/fdc3';
import { createAgent } from 'https://platform.connectifi.app/agent/main.bundle.js';
// Initialize the Sales Opportunity App
const agent: DesktopAgent = await createAgent('https://platform.connectifi.app', 'SALES_OPPORTUNITY_APP@DIRECTORY');
// Function to broadcast a new sales opportunity context
const broadcastSalesOpportunity = async () => {
const opportunityContext = {
type: 'fdc3.sales.opportunity',
data: {
opportunityId: 'OPP-456',
accountName: 'GlobalTech Inc.',
contactName: 'John Smith',
stage: 'Prospecting',
estimatedValue: 125000
}
};
// Broadcast the context so that it flows through Delivery Hooks for transformation
await agent.broadcast(opportunityContext);
};
// Initiate broadcast
broadcastSalesOpportunity();
2. Pipeline Evaluation Service & Intent Raising
The evaluation service listens for incoming sales opportunity contexts. It processes the opportunity (e.g., updates the stage based on scoring or qualification rules) and raises an intent named “UpdatePipeline” with the updated opportunity data:
import { DesktopAgent } from '@finos/fdc3';
import { createAgent } from 'https://platform.connectifi.app/agent/main.bundle.js';
// Initialize the Pipeline Evaluation Service Agent
const evalAgent: DesktopAgent = await createAgent('https://platform.connectifi.app', 'PIPELINE_EVAL_SERVICE@DIRECTORY');
// Listen for sales opportunity contexts
evalAgent.addContextListener('fdc3.sales.opportunity', async (opportunityCtx) => {
console.log('Received sales opportunity:', opportunityCtx);
// Simulate evaluation processing - update stage based on some logic
const updatedStage = 'Negotiation'; // e.g., business logic might change stage from "Prospecting" to "Negotiation"
const updatedOpportunity = {
type: 'fdc3.sales.opportunity.updated',
data: {
...opportunityCtx.data,
stage: updatedStage,
evaluationTimestamp: new Date().toISOString()
}
};
// Raise the "UpdatePipeline" intent with the updated opportunity context
const result = await evalAgent.raiseIntent('UpdatePipeline', updatedOpportunity);
console.log('Pipeline update result:', result);
});
3. CRM System – Receptor Implementation
The CRM system registers as a receptor to listen for the updated sales opportunity contexts and update the sales pipeline accordingly:
import { DesktopAgent } from '@finos/fdc3';
import { createReceptorAgent } from 'https://platform.connectifi.app/receptor/main.bundle.js';
// Initialize the CRM System Receptor Agent
const crmAgent: DesktopAgent = await createReceptorAgent('https://platform.connectifi.app', 'CRM_SYSTEM@DIRECTORY');
// Listen for the updated sales opportunity context
crmAgent.addContextListener('fdc3.sales.opportunity.updated', (updatedOpportunity) => {
console.log('CRM System received updated opportunity:', updatedOpportunity);
// Process the update: e.g., update the sales pipeline with the new stage and details
// TODO: Integrate with CRM backend to update sales pipeline data
});
Connectifi Platform Configuration
To enable this workflow on the Connectifi platform, follow these high-level steps:
- Create and configure Directory entries for each application using the Admin UI, including the Sales Opportunity App, Pipeline Evaluation Service, and CRM System.
- Define custom FDC3 contexts such as “fdc3.sales.opportunity” and “fdc3.sales.opportunity.updated” in the platform settings.
- Configure the Delivery Hooks to transform or route broadcast contexts as needed.
- Register the “UpdatePipeline” intent in the platform settings, ensuring it points to the Pipeline Evaluation Service.
- Set up Receptors for the CRM system to receive and process the updated opportunity contexts.
Next Steps
- Embed the above code into your applications and test the overall broadcast, intent, and receptor flow.
- Dive deeper into integrating your CRM backend with the receptor to update your sales pipeline records.
- Review our documentation for advanced configurations and further examples.
- Explore Connectifi templates for more CRM and FDC3 workflow ideas at https://platform.connectifi.app/templates .
This workflow demonstrates how Connectifi’s unique features – including Delivery Hooks, intent routing with the Agent SDK, and Receptors – can be leveraged with FDC3 to efficiently track and update the sales pipeline within CRM workflows.