Pharmeasy Autonomous Funnel Intelligence System
Pharmeasy Autonomous Funnel Intelligence System - Real-time funnel optimization through Perception-Reasoning-Action loop
Workflow Information
ID: pharmeasy_funnel_intelligence_master
Namespace: pharmeasy
Version: 1.0
Created: 2025-07-28
Updated: 2025-07-28
Tasks: 9
Quick Actions
Inputs
| Name | Type | Required | Default |
|---|---|---|---|
clevertap_account_id |
string | Required |
primary
|
clevertap_passcode |
string | Required | None |
clevertap_api_endpoint |
string | Optional |
https://api.clevertap.com/1
|
sales_drop_threshold |
float | Optional |
0.2
|
sales_spike_threshold |
float | Optional |
0.15
|
anomaly_sensitivity |
float | Optional |
2.5
|
analysis_window_days |
integer | Optional |
7
|
target_region |
string | Optional |
NCR
|
target_category |
string | Optional |
medicines
|
Outputs
| Name | Type | Source |
|---|---|---|
final_report |
object | Comprehensive funnel optimization report |
perception_data |
object | Combined data from CleverTap and internal systems |
campaign_results |
object | Recovery campaign execution results |
anomaly_detection |
object | Anomaly detection results and root cause analysis |
cross_sell_opportunities |
object | Identified cross-sell opportunities |
Tasks
initialize_pra_loop
scriptInitialize the Perception-Reasoning-Action loop
perception_data_bridge
scriptFetch and combine data from CleverTap and internal dashboards
detect_analyze_anomalies
scriptDetect anomalies and perform multi-hypothesis root cause analysis
anomaly_router
conditional_routerRoute based on anomaly detection results
Conditional Router
Default Route: normal_optimization
execute_recovery_actions
scriptExecute recovery campaigns and interventions
identify_cross_sell
scriptIdentify cross-sell opportunities during normal operations
ai_churn_prevention
ai_agentAI-powered churn prediction and prevention strategies
ai_journey_optimizer
ai_agentAI-powered dynamic customer journey optimization
generate_optimization_report
ai_agentGenerate comprehensive funnel optimization report
YAML Source
id: pharmeasy_funnel_intelligence_master
name: Pharmeasy Autonomous Funnel Intelligence System
tasks:
- id: initialize_pra_loop
name: Initialize Perception-Reasoning-Action Loop
type: script
script: "import os\nimport json\nfrom datetime import datetime, timedelta\n\nprint(\"\
\U0001F916 PHARMEASY FUNNEL INTELLIGENCE SYSTEM\")\nprint(\"=\" * 70)\nprint(\"\
\U0001F504 Initializing Perception-Reasoning-Action Loop...\")\nprint(\"\")\n\n\
# Get input parameters\nexecution_id = os.environ.get('EXECUTION_ID', 'unknown')\n\
clevertap_account = \"${clevertap_account_id}\"\ntarget_region = \"${target_region}\"\
\ntarget_category = \"${target_category}\"\nanalysis_window = int(\"${analysis_window_days}\"\
)\n\n# Calculate time ranges\nend_date = datetime.now()\nstart_date = end_date\
\ - timedelta(days=analysis_window)\n\nprint(\"\U0001F4CA Analysis Configuration:\"\
)\nprint(f\" Execution ID: {execution_id}\")\nprint(f\" Region: {target_region}\"\
)\nprint(f\" Category: {target_category}\")\nprint(f\" Analysis Window: {analysis_window}\
\ days\")\nprint(f\" Period: {start_date.strftime('%Y-%m-%d')} to {end_date.strftime('%Y-%m-%d')}\"\
)\nprint(\"\")\n\n# Define hypothesis framework for multi-hypothesis testing\n\
hypotheses = [\n \"payment_gateway_issues\",\n \"inventory_stockouts\",\
\ \n \"competitor_campaigns\",\n \"pricing_changes\",\n \"app_performance_issues\"\
,\n \"delivery_delays\",\n \"user_experience_friction\",\n \"seasonal_patterns\"\
,\n \"marketing_campaign_effectiveness\",\n \"new_user_onboarding_issues\"\
\n]\n\nprint(f\"\U0001F50D Multi-Hypothesis Testing Framework:\")\nprint(f\" \
\ Total Hypotheses: {len(hypotheses)}\")\nprint(f\" Approach: Parallel analysis\
\ across data silos\")\nprint(\"\")\n\nresult = {\n \"status\": \"initialized\"\
,\n \"execution_id\": execution_id,\n \"configuration\": {\n \"region\"\
: target_region,\n \"category\": target_category,\n \"start_date\"\
: start_date.isoformat(),\n \"end_date\": end_date.isoformat(),\n \
\ \"analysis_window_days\": analysis_window\n },\n \"hypotheses\": hypotheses,\n\
\ \"pra_loop_state\": \"PERCEPTION\",\n \"timestamp\": datetime.now().isoformat()\n\
}\n\nprint(\"\u2705 PRA Loop initialized. Starting PERCEPTION phase...\")\nprint(f\"\
__OUTPUTS__ {json.dumps(result)}\")\n"
description: Initialize the Perception-Reasoning-Action loop
timeout_seconds: 30
- id: perception_data_bridge
name: 'PERCEPTION: Bridge Data Silos'
type: script
script: "import json\nimport time\nimport random\nfrom datetime import datetime,\
\ timedelta\n\nprint(\"\")\nprint(\"\U0001F441\uFE0F PERCEPTION PHASE: Data Collection\"\
)\nprint(\"=\" * 50)\nprint(\"\")\n\nconfig = json.loads('${initialize_pra_loop.configuration}')\n\
region = config['region']\ncategory = config['category']\n\n# Simulate CleverTap\
\ API call\nprint(\"\U0001F517 Fetching CleverTap behavioral data...\")\ntime.sleep(1)\n\
\n# Generate realistic CleverTap data\nclevertap_data = {\n \"events\": {\n\
\ \"app_opens\": random.randint(50000, 80000),\n \"searches\": random.randint(30000,\
\ 50000),\n \"product_views\": random.randint(40000, 60000),\n \"\
add_to_cart\": random.randint(15000, 25000),\n \"checkout_initiated\":\
\ random.randint(8000, 12000),\n \"orders_placed\": random.randint(5000,\
\ 8000),\n \"orders_completed\": random.randint(4500, 7500)\n },\n \
\ \"funnel_metrics\": {\n \"search_to_view\": 0.75,\n \"view_to_cart\"\
: 0.35,\n \"cart_to_checkout\": 0.65,\n \"checkout_to_order\": 0.70,\n\
\ \"order_to_completion\": 0.92\n },\n \"user_segments\": {\n \
\ \"new_users\": random.randint(5000, 8000),\n \"chronic_patients\"\
: random.randint(12000, 15000),\n \"regular_buyers\": random.randint(20000,\
\ 25000),\n \"dormant_users\": random.randint(30000, 40000)\n },\n \
\ \"cart_abandonment_rate\": random.uniform(0.35, 0.45),\n \"avg_session_duration\"\
: random.randint(180, 300),\n \"bounce_rate\": random.uniform(0.25, 0.35)\n\
}\n\nprint(\"\u2713 CleverTap data fetched successfully\")\nprint(f\" - Total\
\ events tracked: {sum(clevertap_data['events'].values()):,}\")\nprint(f\" -\
\ Cart abandonment rate: {clevertap_data['cart_abandonment_rate']:.1%}\")\n\n\
# Simulate Internal Dashboard API call\nprint(\"\")\nprint(\"\U0001F4CA Fetching\
\ internal operational data...\")\ntime.sleep(1)\n\n# Generate realistic internal\
\ data with potential anomaly\nbase_sales = random.randint(800000, 1200000)\n\
sales_drop = random.uniform(0.15, 0.25) # 15-25% drop\n\ninternal_data = {\n\
\ \"sales_metrics\": {\n \"current_period_sales\": int(base_sales *\
\ (1 - sales_drop)),\n \"previous_period_sales\": base_sales,\n \
\ \"sales_change_percentage\": -sales_drop,\n \"average_order_value\":\
\ random.randint(450, 650),\n \"total_orders\": clevertap_data['events']['orders_completed']\n\
\ },\n \"inventory_status\": {\n \"total_skus\": random.randint(15000,\
\ 20000),\n \"in_stock_skus\": random.randint(12000, 18000),\n \"\
stockout_skus\": random.randint(500, 2000),\n \"critical_stockouts\": random.randint(50,\
\ 200)\n },\n \"payment_metrics\": {\n \"success_rate\": random.uniform(0.92,\
\ 0.98),\n \"failed_transactions\": random.randint(200, 500),\n \
\ \"avg_processing_time\": random.uniform(2.5, 4.5)\n },\n \"logistics_metrics\"\
: {\n \"on_time_delivery\": random.uniform(0.85, 0.95),\n \"avg_delivery_time_hours\"\
: random.randint(24, 48),\n \"pending_deliveries\": random.randint(500,\
\ 1500)\n }\n}\n\nprint(\"\u2713 Internal dashboard data fetched successfully\"\
)\nprint(f\" - Sales change: {internal_data['sales_metrics']['sales_change_percentage']:.1%}\"\
)\nprint(f\" - Stockout SKUs: {internal_data['inventory_status']['stockout_skus']:,}\"\
)\n\n# Combine data for unified analysis\nprint(\"\")\nprint(\"\U0001F504 Bridging\
\ data silos...\")\n\nunified_data = {\n \"timestamp\": datetime.now().isoformat(),\n\
\ \"region\": region,\n \"category\": category,\n \"clevertap_behavioral\"\
: clevertap_data,\n \"internal_operational\": internal_data,\n \"anomaly_detected\"\
: internal_data['sales_metrics']['sales_change_percentage'] < -0.15,\n \"anomaly_severity\"\
: \"HIGH\" if sales_drop > 0.2 else \"MEDIUM\",\n \"data_quality_score\": random.uniform(0.92,\
\ 0.98),\n \"pra_loop_state\": \"PERCEPTION_COMPLETE\"\n}\n\nprint(\"\u2705\
\ PERCEPTION phase complete. Data silos bridged successfully.\")\nprint(f\" \
\ Anomaly Detected: {'YES' if unified_data['anomaly_detected'] else 'NO'}\")\n\
if unified_data['anomaly_detected']:\n print(f\" Severity: {unified_data['anomaly_severity']}\"\
)\n\nprint(f\"__OUTPUTS__ {json.dumps(unified_data)}\")\n"
depends_on:
- initialize_pra_loop
description: Fetch and combine data from CleverTap and internal dashboards
timeout_seconds: 60
- id: detect_analyze_anomalies
name: 'REASONING: Anomaly Detection & Multi-Hypothesis Testing'
type: script
script: "import json\nimport math\nimport random\nfrom datetime import datetime\n\
\nprint(\"\")\nprint(\"\U0001F9E0 REASONING PHASE: Anomaly Detection & Analysis\"\
)\nprint(\"=\" * 50)\nprint(\"\")\n\n# Parse perception data\nperception_data\
\ = json.loads('${perception_data_bridge}')\nclevertap = perception_data['clevertap_behavioral']\n\
internal = perception_data['internal_operational']\nhypotheses = json.loads('${initialize_pra_loop.hypotheses}')\n\
sensitivity = float(\"${anomaly_sensitivity}\")\n\nprint(f\"\U0001F4CA Analyzing\
\ sales metrics...\")\nsales_change = internal['sales_metrics']['sales_change_percentage']\n\
print(f\" Sales Change: {sales_change:.1%}\")\nprint(f\" Z-Score Sensitivity:\
\ {sensitivity}\")\n\n# Calculate Z-score for anomaly detection\n# Simulate historical\
\ data for Z-score calculation\nhistorical_changes = [random.uniform(-0.05, 0.10)\
\ for _ in range(30)]\nmean_change = sum(historical_changes) / len(historical_changes)\n\
std_dev = math.sqrt(sum((x - mean_change) ** 2 for x in historical_changes) /\
\ len(historical_changes))\nz_score = (sales_change - mean_change) / std_dev if\
\ std_dev > 0 else 0\n\nprint(f\" Calculated Z-Score: {z_score:.2f}\")\nprint(f\"\
\ Anomaly Threshold: {-sensitivity}\")\n\nis_anomaly = z_score < -sensitivity\n\
print(f\" Anomaly Detected: {'YES' if is_anomaly else 'NO'}\")\n\n# Multi-hypothesis\
\ testing\nprint(\"\")\nprint(\"\U0001F50D Executing Multi-Hypothesis Testing...\"\
)\nprint(\" Testing 10 hypotheses in parallel...\")\n\nhypothesis_results =\
\ {}\n\n# Test each hypothesis based on data patterns\nfor hypothesis in hypotheses:\n\
\ score = 0.0\n evidence = []\n \n if hypothesis == \"payment_gateway_issues\"\
:\n if internal['payment_metrics']['success_rate'] < 0.95:\n \
\ score = 0.7\n evidence.append(f\"Payment success rate low: {internal['payment_metrics']['success_rate']:.1%}\"\
)\n if internal['payment_metrics']['failed_transactions'] > 300:\n \
\ score += 0.3\n evidence.append(f\"High failed transactions:\
\ {internal['payment_metrics']['failed_transactions']}\")\n \n elif\
\ hypothesis == \"inventory_stockouts\":\n stockout_rate = internal['inventory_status']['stockout_skus']\
\ / internal['inventory_status']['total_skus']\n if stockout_rate > 0.08:\n\
\ score = 0.8\n evidence.append(f\"High stockout rate: {stockout_rate:.1%}\"\
)\n if internal['inventory_status']['critical_stockouts'] > 100:\n \
\ score = min(score + 0.4, 1.0)\n evidence.append(f\"Critical\
\ stockouts: {internal['inventory_status']['critical_stockouts']}\")\n \
\ \n elif hypothesis == \"user_experience_friction\":\n if clevertap['cart_abandonment_rate']\
\ > 0.40:\n score = 0.6\n evidence.append(f\"High cart abandonment:\
\ {clevertap['cart_abandonment_rate']:.1%}\")\n if clevertap['funnel_metrics']['cart_to_checkout']\
\ < 0.60:\n score += 0.3\n evidence.append(\"Low cart-to-checkout\
\ conversion\")\n \n elif hypothesis == \"delivery_delays\":\n \
\ if internal['logistics_metrics']['on_time_delivery'] < 0.90:\n \
\ score = 0.5\n evidence.append(f\"Low on-time delivery: {internal['logistics_metrics']['on_time_delivery']:.1%}\"\
)\n \n else:\n # Simulate scores for other hypotheses\n \
\ score = random.uniform(0.1, 0.4)\n evidence.append(\"Pattern analysis\
\ in progress\")\n \n hypothesis_results[hypothesis] = {\n \"score\"\
: round(score, 2),\n \"evidence\": evidence,\n \"confidence\": \"\
HIGH\" if score > 0.7 else \"MEDIUM\" if score > 0.4 else \"LOW\"\n }\n\n#\
\ Sort hypotheses by score\nsorted_hypotheses = sorted(hypothesis_results.items(),\
\ key=lambda x: x[1]['score'], reverse=True)\n\nprint(\"\")\nprint(\"\U0001F4C8\
\ Top Root Causes Identified:\")\nfor i, (hyp, result) in enumerate(sorted_hypotheses[:3]):\n\
\ print(f\" {i+1}. {hyp.replace('_', ' ').title()}\")\n print(f\" \
\ Score: {result['score']}\")\n print(f\" Confidence: {result['confidence']}\"\
)\n for evidence in result['evidence'][:2]:\n print(f\" - {evidence}\"\
)\n\n# Determine primary root cause\nprimary_cause = sorted_hypotheses[0][0] if\
\ sorted_hypotheses[0][1]['score'] > 0.5 else \"multiple_factors\"\n\nanomaly_analysis\
\ = {\n \"timestamp\": datetime.now().isoformat(),\n \"anomaly_detected\"\
: is_anomaly,\n \"z_score\": round(z_score, 2),\n \"sales_change_percentage\"\
: sales_change,\n \"hypothesis_results\": hypothesis_results,\n \"primary_root_cause\"\
: primary_cause,\n \"top_3_causes\": [h[0] for h in sorted_hypotheses[:3]],\n\
\ \"confidence_level\": sorted_hypotheses[0][1]['confidence'] if sorted_hypotheses\
\ else \"LOW\",\n \"recommended_actions\": [],\n \"pra_loop_state\": \"\
REASONING_COMPLETE\"\n}\n\n# Generate recommended actions based on root cause\n\
if primary_cause == \"inventory_stockouts\":\n anomaly_analysis[\"recommended_actions\"\
] = [\n \"trigger_stockout_notification_campaign\",\n \"activate_alternative_product_recommendations\"\
,\n \"expedite_inventory_replenishment\"\n ]\nelif primary_cause ==\
\ \"payment_gateway_issues\":\n anomaly_analysis[\"recommended_actions\"] =\
\ [\n \"trigger_payment_retry_campaign\",\n \"activate_cod_promotion\"\
,\n \"notify_payment_team\"\n ]\nelif primary_cause == \"user_experience_friction\"\
:\n anomaly_analysis[\"recommended_actions\"] = [\n \"trigger_cart_recovery_campaign\"\
,\n \"simplify_checkout_flow\",\n \"offer_instant_discount\"\n \
\ ]\n\nprint(\"\")\nprint(\"\u2705 REASONING phase complete. Root cause analysis\
\ finished.\")\nprint(f\"__OUTPUTS__ {json.dumps(anomaly_analysis)}\")\n"
depends_on:
- perception_data_bridge
description: Detect anomalies and perform multi-hypothesis root cause analysis
timeout_seconds: 90
- id: anomaly_router
name: Anomaly Detection Router
type: conditional_router
conditions:
- name: anomaly_detected
route: handle_anomaly
condition: ${detect_analyze_anomalies.anomaly_detected} == true
depends_on:
- detect_analyze_anomalies
description: Route based on anomaly detection results
default_route: normal_optimization
- id: execute_recovery_actions
name: 'ACTION: Execute Recovery Campaigns'
type: script
script: "import json\nimport time\nimport random\nfrom datetime import datetime\n\
\nprint(\"\")\nprint(\"\U0001F680 ACTION PHASE: Executing Recovery Campaigns\"\
)\nprint(\"=\" * 50)\nprint(\"\")\n\n# Parse anomaly analysis\nanomaly_data =\
\ json.loads('${detect_analyze_anomalies}')\nperception_data = json.loads('${perception_data_bridge}')\n\
primary_cause = anomaly_data['primary_root_cause']\nrecommended_actions = anomaly_data['recommended_actions']\n\
\nprint(f\"\U0001F3AF Primary Root Cause: {primary_cause.replace('_', ' ').title()}\"\
)\nprint(f\"\U0001F4CB Recommended Actions: {len(recommended_actions)}\")\nprint(\"\
\")\n\ncampaign_results = []\n\n# Execute recommended actions\nfor action in recommended_actions:\n\
\ print(f\"\u26A1 Executing: {action.replace('_', ' ').title()}\")\n \n\
\ if action == \"trigger_stockout_notification_campaign\":\n # Simulate\
\ CleverTap campaign creation\n campaign = {\n \"name\": \"\
Critical Stockout Alert\",\n \"type\": \"push_notification\",\n \
\ \"segment\": \"users_with_stockout_items_in_cart\",\n \"\
message\": \"Items in your cart are running out fast! Complete your order now.\"\
,\n \"target_users\": random.randint(5000, 8000),\n \"expected_conversion\"\
: 0.15\n }\n print(f\" Creating campaign: {campaign['name']}\"\
)\n print(f\" Target users: {campaign['target_users']:,}\")\n \
\ time.sleep(0.5)\n \n # Simulate campaign execution\n campaign['status']\
\ = \"executed\"\n campaign['actual_sends'] = int(campaign['target_users']\
\ * 0.95)\n campaign['opens'] = int(campaign['actual_sends'] * random.uniform(0.25,\
\ 0.35))\n campaign['conversions'] = int(campaign['opens'] * random.uniform(0.12,\
\ 0.18))\n campaign['revenue_impact'] = campaign['conversions'] * random.randint(500,\
\ 800)\n \n campaign_results.append(campaign)\n print(f\"\
\ \u2713 Campaign executed successfully\")\n print(f\" Conversions:\
\ {campaign['conversions']:,}\")\n \n elif action == \"trigger_cart_recovery_campaign\"\
:\n campaign = {\n \"name\": \"Cart Abandonment Recovery\",\n\
\ \"type\": \"email_sms_combo\",\n \"segment\": \"cart_abandoners_last_24h\"\
,\n \"discount_offered\": \"10%\",\n \"target_users\": random.randint(8000,\
\ 12000),\n \"expected_conversion\": 0.08\n }\n print(f\"\
\ Creating campaign: {campaign['name']}\")\n print(f\" Discount offered:\
\ {campaign['discount_offered']}\")\n time.sleep(0.5)\n \n \
\ campaign['status'] = \"executed\"\n campaign['emails_sent'] = int(campaign['target_users']\
\ * 0.90)\n campaign['sms_sent'] = int(campaign['target_users'] * 0.85)\n\
\ campaign['conversions'] = int(campaign['target_users'] * random.uniform(0.06,\
\ 0.10))\n campaign['revenue_impact'] = campaign['conversions'] * random.randint(400,\
\ 600)\n \n campaign_results.append(campaign)\n print(f\"\
\ \u2713 Multi-channel campaign launched\")\n \n elif action == \"\
trigger_payment_retry_campaign\":\n campaign = {\n \"name\"\
: \"Payment Retry Assistance\",\n \"type\": \"in_app_notification\"\
,\n \"segment\": \"failed_payment_users\",\n \"cod_promotion\"\
: True,\n \"target_users\": random.randint(2000, 4000),\n \
\ \"expected_conversion\": 0.25\n }\n print(f\" Creating campaign:\
\ {campaign['name']}\")\n time.sleep(0.5)\n \n campaign['status']\
\ = \"executed\"\n campaign['notifications_shown'] = int(campaign['target_users']\
\ * 0.98)\n campaign['payment_retries'] = int(campaign['notifications_shown']\
\ * 0.30)\n campaign['successful_orders'] = int(campaign['payment_retries']\
\ * 0.80)\n campaign['revenue_impact'] = campaign['successful_orders']\
\ * random.randint(600, 900)\n \n campaign_results.append(campaign)\n\
\ print(f\" \u2713 Payment assistance activated\")\n \n print(\"\
\")\n\n# Calculate total impact\ntotal_conversions = sum(c.get('conversions',\
\ c.get('successful_orders', 0)) for c in campaign_results)\ntotal_revenue_impact\
\ = sum(c.get('revenue_impact', 0) for c in campaign_results)\n\nprint(\"\U0001F4CA\
\ Campaign Execution Summary:\")\nprint(f\" Total Campaigns: {len(campaign_results)}\"\
)\nprint(f\" Total Conversions: {total_conversions:,}\")\nprint(f\" Revenue\
\ Impact: \u20B9{total_revenue_impact:,}\")\nprint(f\" Recovery Rate: {(total_revenue_impact\
\ / abs(perception_data['internal_operational']['sales_metrics']['current_period_sales']\
\ - perception_data['internal_operational']['sales_metrics']['previous_period_sales'])\
\ * 100):.1f}%\")\n\naction_results = {\n \"timestamp\": datetime.now().isoformat(),\n\
\ \"campaigns_executed\": len(campaign_results),\n \"campaign_details\"\
: campaign_results,\n \"total_conversions\": total_conversions,\n \"total_revenue_impact\"\
: total_revenue_impact,\n \"execution_status\": \"SUCCESS\",\n \"pra_loop_state\"\
: \"ACTION_COMPLETE\"\n}\n\nprint(\"\")\nprint(\"\u2705 ACTION phase complete.\
\ Recovery campaigns executed.\")\nprint(f\"__OUTPUTS__ {json.dumps(action_results)}\"\
)\n"
depends_on:
- anomaly_router
description: Execute recovery campaigns and interventions
timeout_seconds: 120
execute_on_routes:
- handle_anomaly
- id: identify_cross_sell
name: Cross-sell Opportunity Identification
type: script
script: "import json\nimport random\nfrom datetime import datetime\n\nprint(\"\"\
)\nprint(\"\U0001F4A1 CROSS-SELL OPPORTUNITY ANALYSIS\")\nprint(\"=\" * 50)\n\
print(\"\")\n\nperception_data = json.loads('${perception_data_bridge}')\n\nprint(\"\
\U0001F50D Analyzing cross-category behavior patterns...\")\n\nopportunities =\
\ []\n\n# Medicine to Diagnostics cross-sell\nopportunity1 = {\n \"type\":\
\ \"medicine_to_diagnostics\",\n \"target_segment\": \"chronic_disease_medicine_buyers\"\
,\n \"segment_size\": random.randint(8000, 12000),\n \"current_penetration\"\
: random.uniform(0.15, 0.25),\n \"potential_penetration\": random.uniform(0.35,\
\ 0.45),\n \"recommended_action\": \"Bundle diabetes medicines with HbA1c tests\"\
,\n \"expected_revenue_uplift\": random.randint(200000, 400000)\n}\nopportunities.append(opportunity1)\n\
\n# Diagnostics to Wellness cross-sell\nopportunity2 = {\n \"type\": \"diagnostics_to_wellness\"\
,\n \"target_segment\": \"health_checkup_users\",\n \"segment_size\": random.randint(5000,\
\ 8000),\n \"current_penetration\": random.uniform(0.10, 0.20),\n \"potential_penetration\"\
: random.uniform(0.30, 0.40),\n \"recommended_action\": \"Recommend vitamins\
\ based on test results\",\n \"expected_revenue_uplift\": random.randint(150000,\
\ 250000)\n}\nopportunities.append(opportunity2)\n\nprint(f\"\u2713 Identified\
\ {len(opportunities)} cross-sell opportunities\")\n\nfor opp in opportunities:\n\
\ print(f\"\\n\U0001F4CC {opp['type'].replace('_', ' ').title()}\")\n print(f\"\
\ Target Size: {opp['segment_size']:,} users\")\n print(f\" Penetration\
\ Potential: {opp['current_penetration']:.1%} \u2192 {opp['potential_penetration']:.1%}\"\
)\n print(f\" Revenue Uplift: \u20B9{opp['expected_revenue_uplift']:,}\"\
)\n\ncross_sell_results = {\n \"timestamp\": datetime.now().isoformat(),\n\
\ \"opportunities_identified\": len(opportunities),\n \"opportunities\"\
: opportunities,\n \"total_revenue_potential\": sum(o['expected_revenue_uplift']\
\ for o in opportunities),\n \"execution_status\": \"READY_FOR_CAMPAIGNS\"\n\
}\n\nprint(\"\")\nprint(\"\u2705 Cross-sell analysis complete.\")\nprint(f\"__OUTPUTS__\
\ {json.dumps(cross_sell_results)}\")\n"
depends_on:
- anomaly_router
description: Identify cross-sell opportunities during normal operations
timeout_seconds: 60
execute_on_routes:
- normal_optimization
- id: ai_churn_prevention
name: AI Churn Prevention Strategist
type: ai_agent
config:
model_client_id: funnel_master
depends_on:
- perception_data_bridge
- detect_analyze_anomalies
description: AI-powered churn prediction and prevention strategies
user_message: 'Analyze churn risk based on this data:
User Segments:
- Chronic Patients: ${perception_data_bridge.clevertap_behavioral.user_segments.chronic_patients}
- Regular Buyers: ${perception_data_bridge.clevertap_behavioral.user_segments.regular_buyers}
- Dormant Users: ${perception_data_bridge.clevertap_behavioral.user_segments.dormant_users}
Behavioral Metrics:
- Cart Abandonment Rate: ${perception_data_bridge.clevertap_behavioral.cart_abandonment_rate}
- Avg Session Duration: ${perception_data_bridge.clevertap_behavioral.avg_session_duration}s
- Bounce Rate: ${perception_data_bridge.clevertap_behavioral.bounce_rate}
Provide churn prevention strategies focusing on chronic patient retention.
'
system_message: "You are an expert in customer retention and churn prevention for\
\ e-commerce pharmacy platforms.\n\nAnalyze the behavioral data and identify users\
\ at risk of churning. Provide your analysis in JSON format:\n{\n \"churn_risk_segments\"\
: [\n {\n \"segment_name\": \"segment description\",\n \"risk_level\"\
: \"HIGH|MEDIUM|LOW\",\n \"user_count\": estimated_number,\n \"key_indicators\"\
: [\"indicator1\", \"indicator2\"],\n \"recommended_interventions\": [\"\
action1\", \"action2\"]\n }\n ],\n \"chronic_patient_retention\": {\n \
\ \"at_risk_patients\": number,\n \"retention_strategies\": [\"strategy1\"\
, \"strategy2\"],\n \"personalization_approach\": \"description\"\n },\n \
\ \"overall_churn_rate\": percentage,\n \"predicted_revenue_at_risk\": amount\n\
}\n"
- id: ai_journey_optimizer
name: AI Dynamic Journey Creator
type: ai_agent
config:
model_client_id: campaign_creator
depends_on:
- execute_recovery_actions
- ai_churn_prevention
description: AI-powered dynamic customer journey optimization
user_message: 'Create optimized customer journeys based on:
Recent Campaign Performance: ${execute_recovery_actions.campaign_details}
User Behavior Patterns:
- Funnel Metrics: ${perception_data_bridge.clevertap_behavioral.funnel_metrics}
- Cart Abandonment: ${perception_data_bridge.clevertap_behavioral.cart_abandonment_rate}
Churn Risk Analysis: ${ai_churn_prevention.churn_risk_segments}
Focus on creating journeys that improve conversion and retention.
'
system_message: "You are an expert in creating personalized customer journeys for\
\ pharmaceutical e-commerce.\n\nBased on the campaign results and user behavior,\
\ design optimized customer journeys in JSON format:\n{\n \"journey_name\": \"\
descriptive name\",\n \"target_segments\": [\"segment1\", \"segment2\"],\n \"\
journey_stages\": [\n {\n \"stage\": \"stage_name\",\n \"trigger\"\
: \"event or condition\",\n \"action\": \"campaign or intervention\",\n \
\ \"expected_outcome\": \"metric improvement\",\n \"personalization_rules\"\
: [\"rule1\", \"rule2\"]\n }\n ],\n \"success_metrics\": {\n \"primary_kpi\"\
: \"metric name\",\n \"target_improvement\": percentage,\n \"measurement_period\"\
: \"timeframe\"\n },\n \"a_b_test_recommendations\": [\"test1\", \"test2\"]\n\
}\n"
- id: generate_optimization_report
name: AI Funnel Optimization Report Generator
type: ai_agent
config:
model_client_id: retention_optimizer
depends_on:
- ai_journey_optimizer
- identify_cross_sell
description: Generate comprehensive funnel optimization report
user_message: "Generate a comprehensive funnel optimization report based on:\n\n\
Initial State:\n- Sales Change: ${perception_data_bridge.internal_operational.sales_metrics.sales_change_percentage}%\n\
- Region: ${initialize_pra_loop.configuration.region}\n- Category: ${initialize_pra_loop.configuration.category}\n\
\nAnomaly Analysis:\n- Primary Cause: ${detect_analyze_anomalies.primary_root_cause}\n\
- Top Causes: ${detect_analyze_anomalies.top_3_causes}\n\nRecovery Actions:\n\
- Campaigns Executed: ${execute_recovery_actions.campaigns_executed}\n- Revenue\
\ Impact: \u20B9${execute_recovery_actions.total_revenue_impact}\n\nCross-sell\
\ Opportunities: ${identify_cross_sell.opportunities}\n\nCustomer Journey Optimization:\
\ ${ai_journey_optimizer}\n\nProvide actionable insights and strategic recommendations.\n"
previous_node:
- ai_journey_optimizer
- identify_cross_sell
system_message: "You are a senior analytics expert specializing in funnel optimization\
\ for e-commerce platforms.\n\nGenerate a comprehensive executive report in JSON\
\ format:\n{\n \"executive_summary\": {\n \"key_findings\": [\"finding1\"\
, \"finding2\", \"finding3\"],\n \"business_impact\": \"revenue and conversion\
\ impact summary\",\n \"recommended_priorities\": [\"priority1\", \"priority2\"\
]\n },\n \"funnel_performance\": {\n \"conversion_improvements\": {\n \
\ \"stage\": \"improvement_percentage\"\n },\n \"bottlenecks_addressed\"\
: [\"bottleneck1\", \"bottleneck2\"],\n \"optimization_opportunities\": [\"\
opportunity1\", \"opportunity2\"]\n },\n \"campaign_effectiveness\": {\n \
\ \"total_campaigns_executed\": number,\n \"overall_roi\": percentage,\n \
\ \"most_effective_campaign\": \"campaign_name\",\n \"learnings\": [\"learning1\"\
, \"learning2\"]\n },\n \"predictive_insights\": {\n \"next_7_days_forecast\"\
: \"prediction\",\n \"risk_factors\": [\"risk1\", \"risk2\"],\n \"proactive_recommendations\"\
: [\"recommendation1\", \"recommendation2\"]\n },\n \"action_plan\": {\n \
\ \"immediate_actions\": [\"action1\", \"action2\"],\n \"weekly_optimizations\"\
: [\"optimization1\", \"optimization2\"],\n \"strategic_initiatives\": [\"\
initiative1\", \"initiative2\"]\n }\n}\n"
inputs:
- name: clevertap_account_id
type: string
default: primary
required: true
description: CleverTap account ID for API access
- name: clevertap_passcode
type: string
required: true
description: CleverTap API passcode
- name: clevertap_api_endpoint
type: string
default: https://api.clevertap.com/1
description: CleverTap API endpoint
- name: sales_drop_threshold
type: float
default: 0.2
description: Threshold for sales drop detection (0.2 = 20% drop)
- name: sales_spike_threshold
type: float
default: 0.15
description: Threshold for sales spike detection (0.15 = 15% increase)
- name: anomaly_sensitivity
type: float
default: 2.5
description: Z-score sensitivity for anomaly detection
- name: analysis_window_days
type: integer
default: 7
description: Days to analyze for trends
- name: target_region
type: string
default: NCR
description: Region to analyze (NCR, Mumbai, Bangalore, or All)
- name: target_category
type: string
default: medicines
description: Category to analyze (medicines, diagnostics, wellness, or all)
outputs:
final_report:
type: object
source: generate_optimization_report
description: Comprehensive funnel optimization report
perception_data:
type: object
source: perception_data_bridge
description: Combined data from CleverTap and internal systems
campaign_results:
type: object
source: execute_recovery_actions
description: Recovery campaign execution results
anomaly_detection:
type: object
source: detect_analyze_anomalies
description: Anomaly detection results and root cause analysis
cross_sell_opportunities:
type: object
source: identify_cross_sell
description: Identified cross-sell opportunities
version: 1.0
namespace: pharmeasy
description: Pharmeasy Autonomous Funnel Intelligence System - Real-time funnel optimization
through Perception-Reasoning-Action loop
model_clients:
- id: funnel_master
config:
model: gpt-4o-mini
api_key: ${OPENAI_API_KEY}
max_tokens: 3000
temperature: 0.3
provider: openai
- id: anomaly_analyzer
config:
model: gpt-4o-mini
api_key: ${OPENAI_API_KEY}
max_tokens: 2000
temperature: 0.1
provider: openai
- id: retention_optimizer
config:
model: gpt-4o-mini
api_key: ${OPENAI_API_KEY}
max_tokens: 2500
temperature: 0.2
provider: openai
- id: campaign_creator
config:
model: gpt-4o-mini
api_key: ${OPENAI_API_KEY}
max_tokens: 2000
temperature: 0.4
provider: openai
timeout_seconds: 1800
No executions yet. Execute this workflow to see results here.