calculate_sample_size_tool
ChatGPTCalculate required sample size for a VWO A/B test — either for a running campaign or a planned one. [MODES] Mode 1 — Existing Campaign: Pass campaign_id. Tool fetches configuration automatically. Only goal_id may also be supplied (to target a non-primary goal). All other statistical parameters (mde, avg, rope, etc.) are ignored. Mode 2 — Custom / Hypothetical: Omit campaign_id. Supply statistical parameters directly. All parameters have sensible defaults; the tool works with only mde provided. [AGENT INSTRUCTIONS] Default mde to 0.20 (20% relative lift) when the user does not specify. Explain MDE, ROPE, or confidence thresholds only if the user asks or signals confusion. Do NOT use this tool alone to interpret already-collected significance — use fetch_campaign_report_tool for current conversion rates and statistical status. When the user asks both "is it significant?" and "how many more visitors are needed?", call fetch_campaign_report_tool first, then this tool in Mode 1 for the sample-size estimate. In Mode 1 (campaign_id provided), do NOT call fetch_campaign_report_tool solely to load campaign configuration — this tool fetches that automatically. If the call fails, retry once then report the error. Args: campaign_id (str | None): VWO campaign ID. When provided, activates Mode 1. Default: None (Mode 2 — custom parameters) goal_id (str | None): Goal ID within the campaign. Used only in Mode 1. Default: None (uses the campaign's primary goal) mde (float): Minimum Detectable Effect — the smallest relative lift you want to detect. 0.20 means detect a 20% relative improvement (e.g., 10% baseline → 12% target). Default: 0.20 rope (float): Region of Practical Equivalence — relative threshold below which differences are treated as negligible. Default: 0.01 (1%) ctbc_threshold (float): Confidence threshold for Chance to Beat Control. - 0.975 = 95% confidence (recommended) - 0.995 = 99% confidence Default: 0.975 avg (float): Baseline conversion rate or average revenue per visitor. - Conversion rate: decimal between 0–1 (e.g., 0.05 for 5%) - Revenue: numeric value (e.g., 25.0 for $25 per visitor) Default: 0.10 — providing your actual baseline is strongly recommended. is_revenue (bool): Set True for revenue metrics; False for conversion rate metrics. Affects how standard deviation is auto-calculated when data_std is not provided. Default: False variations (int): Total number of variations including control. Default: 2 (one control + one variation) power (float): Statistical power — probability of detecting a real effect. 0.80 = 80% (default); 0.90 = 90% requires larger sample. Default: 0.80 traffic_allocations (list[float] | None): Traffic split per variation, must sum to 1.0. Example: [0.5, 0.25, 0.25] for control + 2 variations. Default: None (equal split across all variations) multiple_correction (bool): Apply Bonferroni correction for multiple comparisons. Recommended when variations > 2. Default: False data_std (float | None): Standard deviation of the metric. Auto-calculated if not provided: - Conversion: sqrt(avg (1 - avg)) - Revenue: avg 3 Default: None total_visitors (int): Total visitors available for the experiment. Used for duration estimates. Default: 0 experiment_uptime (int): Expected experiment duration in days. Used for duration estimates. Default: 0 baseline_index (int): Index of the control variation in traffic_allocations. Default: 0 testing_objective (str): Statistical test objective. Allowed values: "superiority" (default), "non-inferiority", "equivalence" Default: "superiority" Returns: str: Formatted summary with required sample size per variation, total sample, estimated duration, and the key assumptions applied. Examples: Minimal — detect 25% lift on unknown baseline calculate_sample_size_tool(mde=0.25) Recommended — provide your actual baseline calculate_sample_size_tool(mde=0.20, avg=0.04) Existing campaign calculate_sample_size_tool(campaign_id="12345") Revenue test calculate_sample_size_tool(mde=0.15, avg=50.0, is_revenue=True)
calculate_sample_size_tool
ChatGPTCalculate required sample size for a VWO A/B test — either for a running campaign or a planned one. [MODES] Mode 1 — Existing Campaign: Pass campaign_id. Tool fetches configuration automatically. Only goal_id may also be supplied (to target a non-primary goal). All other statistical parameters (mde, avg, rope, etc.) are ignored. Mode 2 — Custom / Hypothetical: Omit campaign_id. Supply statistical parameters directly. All parameters have sensible defaults; the tool works with only mde provided. [AGENT INSTRUCTIONS] Default mde to 0.20 (20% relative lift) when the user does not specify. Explain MDE, ROPE, or confidence thresholds only if the user asks or signals confusion. Do NOT use this tool alone to interpret already-collected significance — use fetch_campaign_report_tool for current conversion rates and statistical status. When the user asks both "is it significant?" and "how many more visitors are needed?", call fetch_campaign_report_tool first, then this tool in Mode 1 for the sample-size estimate. In Mode 1 (campaign_id provided), do NOT call fetch_campaign_report_tool solely to load campaign configuration — this tool fetches that automatically. If the call fails, retry once then report the error. Args: campaign_id (str | None): VWO campaign ID. When provided, activates Mode 1. Default: None (Mode 2 — custom parameters) goal_id (str | None): Goal ID within the campaign. Used only in Mode 1. Default: None (uses the campaign's primary goal) mde (float): Minimum Detectable Effect — the smallest relative lift you want to detect. 0.20 means detect a 20% relative improvement (e.g., 10% baseline → 12% target). Default: 0.20 rope (float): Region of Practical Equivalence — relative threshold below which differences are treated as negligible. Default: 0.01 (1%) ctbc_threshold (float): Confidence threshold for Chance to Beat Control. - 0.975 = 95% confidence (recommended) - 0.995 = 99% confidence Default: 0.975 avg (float): Baseline conversion rate or average revenue per visitor. - Conversion rate: decimal between 0–1 (e.g., 0.05 for 5%) - Revenue: numeric value (e.g., 25.0 for $25 per visitor) Default: 0.10 — providing your actual baseline is strongly recommended. is_revenue (bool): Set True for revenue metrics; False for conversion rate metrics. Affects how standard deviation is auto-calculated when data_std is not provided. Default: False variations (int): Total number of variations including control. Default: 2 (one control + one variation) power (float): Statistical power — probability of detecting a real effect. 0.80 = 80% (default); 0.90 = 90% requires larger sample. Default: 0.80 traffic_allocations (list[float] | None): Traffic split per variation, must sum to 1.0. Example: [0.5, 0.25, 0.25] for control + 2 variations. Default: None (equal split across all variations) multiple_correction (bool): Apply Bonferroni correction for multiple comparisons. Recommended when variations > 2. Default: False data_std (float | None): Standard deviation of the metric. Auto-calculated if not provided: - Conversion: sqrt(avg (1 - avg)) - Revenue: avg 3 Default: None total_visitors (int): Total visitors available for the experiment. Used for duration estimates. Default: 0 experiment_uptime (int): Expected experiment duration in days. Used for duration estimates. Default: 0 baseline_index (int): Index of the control variation in traffic_allocations. Default: 0 testing_objective (str): Statistical test objective. Allowed values: "superiority" (default), "non-inferiority", "equivalence" Default: "superiority" Returns: str: Formatted summary with required sample size per variation, total sample, estimated duration, and the key assumptions applied. Examples: Minimal — detect 25% lift on unknown baseline calculate_sample_size_tool(mde=0.25) Recommended — provide your actual baseline calculate_sample_size_tool(mde=0.20, avg=0.04) Existing campaign calculate_sample_size_tool(campaign_id="12345") Revenue test calculate_sample_size_tool(mde=0.15, avg=50.0, is_revenue=True)
calculate_sample_size_tool
ChatGPTCalculate required sample size for a VWO A/B test — either for a running campaign or a planned one. [MODES] Mode 1 — Existing Campaign: Pass campaign_id. Tool fetches configuration automatically. Only goal_id may also be supplied (to target a non-primary goal). All other statistical parameters (mde, avg, rope, etc.) are ignored. Mode 2 — Custom / Hypothetical: Omit campaign_id. Supply statistical parameters directly. All parameters have sensible defaults; the tool works with only mde provided. [AGENT INSTRUCTIONS] Default mde to 0.20 (20% relative lift) when the user does not specify. Explain MDE, ROPE, or confidence thresholds only if the user asks or signals confusion. Do NOT use this tool alone to interpret already-collected significance — use fetch_campaign_report_tool for current conversion rates and statistical status. When the user asks both "is it significant?" and "how many more visitors are needed?", call fetch_campaign_report_tool first, then this tool in Mode 1 for the sample-size estimate. In Mode 1 (campaign_id provided), do NOT call fetch_campaign_report_tool solely to load campaign configuration — this tool fetches that automatically. If the call fails, retry once then report the error. Args: campaign_id (str | None): VWO campaign ID. When provided, activates Mode 1. Default: None (Mode 2 — custom parameters) goal_id (str | None): Goal ID within the campaign. Used only in Mode 1. Default: None (uses the campaign's primary goal) mde (float): Minimum Detectable Effect — the smallest relative lift you want to detect. 0.20 means detect a 20% relative improvement (e.g., 10% baseline → 12% target). Default: 0.20 rope (float): Region of Practical Equivalence — relative threshold below which differences are treated as negligible. Default: 0.01 (1%) ctbc_threshold (float): Confidence threshold for Chance to Beat Control. - 0.975 = 95% confidence (recommended) - 0.995 = 99% confidence Default: 0.975 avg (float): Baseline conversion rate or average revenue per visitor. - Conversion rate: decimal between 0–1 (e.g., 0.05 for 5%) - Revenue: numeric value (e.g., 25.0 for $25 per visitor) Default: 0.10 — providing your actual baseline is strongly recommended. is_revenue (bool): Set True for revenue metrics; False for conversion rate metrics. Affects how standard deviation is auto-calculated when data_std is not provided. Default: False variations (int): Total number of variations including control. Default: 2 (one control + one variation) power (float): Statistical power — probability of detecting a real effect. 0.80 = 80% (default); 0.90 = 90% requires larger sample. Default: 0.80 traffic_allocations (list[float] | None): Traffic split per variation, must sum to 1.0. Example: [0.5, 0.25, 0.25] for control + 2 variations. Default: None (equal split across all variations) multiple_correction (bool): Apply Bonferroni correction for multiple comparisons. Recommended when variations > 2. Default: False data_std (float | None): Standard deviation of the metric. Auto-calculated if not provided: - Conversion: sqrt(avg (1 - avg)) - Revenue: avg 3 Default: None total_visitors (int): Total visitors available for the experiment. Used for duration estimates. Default: 0 experiment_uptime (int): Expected experiment duration in days. Used for duration estimates. Default: 0 baseline_index (int): Index of the control variation in traffic_allocations. Default: 0 testing_objective (str): Statistical test objective. Allowed values: "superiority" (default), "non-inferiority", "equivalence" Default: "superiority" Returns: str: Formatted summary with required sample size per variation, total sample, estimated duration, and the key assumptions applied. Examples: Minimal — detect 25% lift on unknown baseline calculate_sample_size_tool(mde=0.25) Recommended — provide your actual baseline calculate_sample_size_tool(mde=0.20, avg=0.04) Existing campaign calculate_sample_size_tool(campaign_id="12345") Revenue test calculate_sample_size_tool(mde=0.15, avg=50.0, is_revenue=True)
clone_vwo_campaign_tool
ChatGPTClone a VWO campaign in the authenticated account. Args: campaign_id: The campaign to clone (used in the API path and in the body `id` field). to_account_id: Destination VWO account ID for the cloned campaign (toAccountId). When the clone should land in a subdomain workspace tied to your main account, this must be the numeric account ID of that subdomain account — not only the literal subdomain string. Omit to clone within the authenticated (main) account. retain_schedules: If true, cloned campaign keeps schedules from the source. Returns: JSON string of the VWO clone API response.
clone_vwo_campaign_tool
ChatGPTClone a VWO campaign in the authenticated account. Args: campaign_id: The campaign to clone (used in the API path and in the body `id` field). to_account_id: Destination VWO account ID for the cloned campaign (toAccountId). When the clone should land in a subdomain workspace tied to your main account, this must be the numeric account ID of that subdomain account — not only the literal subdomain string. Omit to clone within the authenticated (main) account. retain_schedules: If true, cloned campaign keeps schedules from the source. Returns: JSON string of the VWO clone API response.
clone_vwo_campaign_tool
ChatGPTClone a VWO campaign in the authenticated account. Args: campaign_id: The campaign to clone (used in the API path and in the body `id` field). to_account_id: Destination VWO account ID for the cloned campaign (toAccountId). When the clone should land in a subdomain workspace tied to your main account, this must be the numeric account ID of that subdomain account — not only the literal subdomain string. Omit to clone within the authenticated (main) account. retain_schedules: If true, cloned campaign keeps schedules from the source. Returns: JSON string of the VWO clone API response.
create_ab_campaign
ChatGPTCreate a VWO A/B test. This tool creates a VWO A/B test with the given urls to include, editor URL, metrics, segments and variation codes. IMPORTANT: Before using this tool, ALWAYS use the get_data360_entities tool to get the available metrics that can be tracked. Args: urls_to_include: The URLs/pages to include in the A/B test. This can contain multiple URLs. URLs can also contain wildcards. Example: ["https://example.com/pricing/", "https://example.com/plans"] editor_url: The URL of the page that will be edited to create the variations to run the A/B test on. This is required and should be provided by the user. Example: "https://example.com/pricing/monthly" metrics: The metrics/goals to track for the campaign. IMPORTANT: You MUST add an "isPrimary" boolean key to EXACTLY ONE metric and set it to true. All other metrics should have "isPrimary" set to false. The primary metric is the main goal of the campaign. variation_codes: JavaScript code to be executed on the variation pages. IMPORTANT NOTES:* - DO NOT provide code for the control variation. - Each code string MUST be valid JavaScript code wrapped in <script> tags. - Provide a list of strings for multiple variations (e.g., control + 2 variations = 2 code strings). - The JavaScript will be injected and executed on the page when visitors see that variation. Examples: Single variation: ["<script>document.querySelector('.cta-button').style.backgroundColor='green';</script>"] Multiple variations: [ "<script>document.querySelector('h1').textContent='Special Offer!';</script>", "<script>document.querySelector('.price').style.fontSize='32px';</script>" ] traffic_sources: The traffic sources to segment the campaign on. Default is empty list, which means all traffic sources. Valid values: dir (direct), ref (referral), eml (email), soc (social), org (organic search), pst (paid search traffic) Example: ["dir", "org"] device_types: The device types to segment the campaign on. Default is empty list, which means all device types. Valid values: desktop, mobile, tablet Example: ["desktop", "mobile"] countries: The countries to segment the campaign on. Default is empty list, which means all countries. Example: ["US", "CA", "GB"] visitor_type: The visitor type to segment the campaign on. Default is "all", which means all visitor types. Valid values: all, new (new visitor), ret (returning visitor) Returns: str: The details of the created VWO A/B test. Example Usage: Create an A/B test with 2 variations (control + 2 variations = 3 total) create_ab_campaign( campaign_name="CTA Button Color Test", urls_to_include=["https://example.com/pricing"], editor_url="https://example.com/pricing", metrics=[ {"id": 123, "isPrimary": true}, {"id": 456, "isPrimary": false} ], variation_codes=[ "<script>document.querySelector('.cta').style.backgroundColor='green';</script>", variation 1 code "<script>document.querySelector('.cta').style.backgroundColor='blue';</script>" variation 2 code ], no need to provide code for the control variation, that is created by default. device_types=["desktop"], visitor_type="all" )
create_ab_campaign
ChatGPTCreate a VWO A/B test. This tool creates a VWO A/B test with the given urls to include, editor URL, metrics, segments and variation codes. IMPORTANT: Before using this tool, ALWAYS use the get_data360_entities tool to get the available metrics that can be tracked. Args: urls_to_include: The URLs/pages to include in the A/B test. This can contain multiple URLs. URLs can also contain wildcards. Example: ["https://example.com/pricing/", "https://example.com/plans"] editor_url: The URL of the page that will be edited to create the variations to run the A/B test on. This is required and should be provided by the user. Example: "https://example.com/pricing/monthly" metrics: The metrics/goals to track for the campaign. IMPORTANT: You MUST add an "isPrimary" boolean key to EXACTLY ONE metric and set it to true. All other metrics should have "isPrimary" set to false. The primary metric is the main goal of the campaign. variation_codes: JavaScript code to be executed on the variation pages. IMPORTANT NOTES:* - DO NOT provide code for the control variation. - Each code string MUST be valid JavaScript code wrapped in <script> tags. - Provide a list of strings for multiple variations (e.g., control + 2 variations = 2 code strings). - The JavaScript will be injected and executed on the page when visitors see that variation. Examples: Single variation: ["<script>document.querySelector('.cta-button').style.backgroundColor='green';</script>"] Multiple variations: [ "<script>document.querySelector('h1').textContent='Special Offer!';</script>", "<script>document.querySelector('.price').style.fontSize='32px';</script>" ] traffic_sources: The traffic sources to segment the campaign on. Default is empty list, which means all traffic sources. Valid values: dir (direct), ref (referral), eml (email), soc (social), org (organic search), pst (paid search traffic) Example: ["dir", "org"] device_types: The device types to segment the campaign on. Default is empty list, which means all device types. Valid values: desktop, mobile, tablet Example: ["desktop", "mobile"] countries: The countries to segment the campaign on. Default is empty list, which means all countries. Example: ["US", "CA", "GB"] visitor_type: The visitor type to segment the campaign on. Default is "all", which means all visitor types. Valid values: all, new (new visitor), ret (returning visitor) Returns: str: The details of the created VWO A/B test. Example Usage: Create an A/B test with 2 variations (control + 2 variations = 3 total) create_ab_campaign( campaign_name="CTA Button Color Test", urls_to_include=["https://example.com/pricing"], editor_url="https://example.com/pricing", metrics=[ {"id": 123, "isPrimary": true}, {"id": 456, "isPrimary": false} ], variation_codes=[ "<script>document.querySelector('.cta').style.backgroundColor='green';</script>", variation 1 code "<script>document.querySelector('.cta').style.backgroundColor='blue';</script>" variation 2 code ], no need to provide code for the control variation, that is created by default. device_types=["desktop"], visitor_type="all" )
create_ab_campaign
ChatGPTCreate a VWO A/B test. This tool creates a VWO A/B test with the given urls to include, editor URL, metrics, segments and variation codes. IMPORTANT: Before using this tool, ALWAYS use the get_data360_entities tool to get the available metrics that can be tracked. Args: urls_to_include: The URLs/pages to include in the A/B test. This can contain multiple URLs. URLs can also contain wildcards. Example: ["https://example.com/pricing/", "https://example.com/plans"] editor_url: The URL of the page that will be edited to create the variations to run the A/B test on. This is required and should be provided by the user. Example: "https://example.com/pricing/monthly" metrics: The metrics/goals to track for the campaign. IMPORTANT: You MUST add an "isPrimary" boolean key to EXACTLY ONE metric and set it to true. All other metrics should have "isPrimary" set to false. The primary metric is the main goal of the campaign. variation_codes: JavaScript code to be executed on the variation pages. IMPORTANT NOTES:* - DO NOT provide code for the control variation. - Each code string MUST be valid JavaScript code wrapped in <script> tags. - Provide a list of strings for multiple variations (e.g., control + 2 variations = 2 code strings). - The JavaScript will be injected and executed on the page when visitors see that variation. Examples: Single variation: ["<script>document.querySelector('.cta-button').style.backgroundColor='green';</script>"] Multiple variations: [ "<script>document.querySelector('h1').textContent='Special Offer!';</script>", "<script>document.querySelector('.price').style.fontSize='32px';</script>" ] traffic_sources: The traffic sources to segment the campaign on. Default is empty list, which means all traffic sources. Valid values: dir (direct), ref (referral), eml (email), soc (social), org (organic search), pst (paid search traffic) Example: ["dir", "org"] device_types: The device types to segment the campaign on. Default is empty list, which means all device types. Valid values: desktop, mobile, tablet Example: ["desktop", "mobile"] countries: The countries to segment the campaign on. Default is empty list, which means all countries. Example: ["US", "CA", "GB"] visitor_type: The visitor type to segment the campaign on. Default is "all", which means all visitor types. Valid values: all, new (new visitor), ret (returning visitor) Returns: str: The details of the created VWO A/B test. Example Usage: Create an A/B test with 2 variations (control + 2 variations = 3 total) create_ab_campaign( campaign_name="CTA Button Color Test", urls_to_include=["https://example.com/pricing"], editor_url="https://example.com/pricing", metrics=[ {"id": 123, "isPrimary": true}, {"id": 456, "isPrimary": false} ], variation_codes=[ "<script>document.querySelector('.cta').style.backgroundColor='green';</script>", variation 1 code "<script>document.querySelector('.cta').style.backgroundColor='blue';</script>" variation 2 code ], no need to provide code for the control variation, that is created by default. device_types=["desktop"], visitor_type="all" )
create_split_url_campaign
ChatGPTCreate a VWO split URL campaign. This tool creates a VWO split URL campaign with the given control and variation URLs. It will also track the given metrics and segment the users based on the given segments. IMPORTANT: Before using this tool, ALWAYS use the get_data360_entities tool to get the available metrics that can be tracked. Args: control_url: The URL of the control page. variation_urls: The URLs of the variation pages. This can be a list of URLs or a single URL. metrics: The metrics/goals to track for the campaign. IMPORTANT: You MUST add an "isPrimary" boolean key to EXACTLY ONE metric and set it to true. All other metrics should have "isPrimary" set to false. The primary metric is the main goal of the campaign. traffic_sources: The traffic sources to segment the campaign on. Default is empty list, which means all traffic sources. Valid values: dir (direct), ref (referral), eml (email), soc (social), org (organic search), pst (paid search traffic) device_types: The device types to segment the campaign on. Default is empty list, which means all device types. Valid values: desktop, mobile, ipod, ipad, iphone, winphone, android, symbian countries: The countries to segment the campaign on. Default is empty list, which means all countries. Valid values: US, IN, GB, DE, etc. visitor_type: The visitor type to segment the campaign on. Default is "all", which means all visitor types. Valid values: all, new (new visitor), ret (returning visitor) Returns: str: The URL of the created VWO split URL campaign.
create_split_url_campaign
ChatGPTCreate a VWO split URL campaign. This tool creates a VWO split URL campaign with the given control and variation URLs. It will also track the given metrics and segment the users based on the given segments. IMPORTANT: Before using this tool, ALWAYS use the get_data360_entities tool to get the available metrics that can be tracked. Args: control_url: The URL of the control page. variation_urls: The URLs of the variation pages. This can be a list of URLs or a single URL. metrics: The metrics/goals to track for the campaign. IMPORTANT: You MUST add an "isPrimary" boolean key to EXACTLY ONE metric and set it to true. All other metrics should have "isPrimary" set to false. The primary metric is the main goal of the campaign. traffic_sources: The traffic sources to segment the campaign on. Default is empty list, which means all traffic sources. Valid values: dir (direct), ref (referral), eml (email), soc (social), org (organic search), pst (paid search traffic) device_types: The device types to segment the campaign on. Default is empty list, which means all device types. Valid values: desktop, mobile, ipod, ipad, iphone, winphone, android, symbian countries: The countries to segment the campaign on. Default is empty list, which means all countries. Valid values: US, IN, GB, DE, etc. visitor_type: The visitor type to segment the campaign on. Default is "all", which means all visitor types. Valid values: all, new (new visitor), ret (returning visitor) Returns: str: The URL of the created VWO split URL campaign.
create_split_url_campaign
ChatGPTCreate a VWO split URL campaign. This tool creates a VWO split URL campaign with the given control and variation URLs. It will also track the given metrics and segment the users based on the given segments. IMPORTANT: Before using this tool, ALWAYS use the get_data360_entities tool to get the available metrics that can be tracked. Args: control_url: The URL of the control page. variation_urls: The URLs of the variation pages. This can be a list of URLs or a single URL. metrics: The metrics/goals to track for the campaign. IMPORTANT: You MUST add an "isPrimary" boolean key to EXACTLY ONE metric and set it to true. All other metrics should have "isPrimary" set to false. The primary metric is the main goal of the campaign. traffic_sources: The traffic sources to segment the campaign on. Default is empty list, which means all traffic sources. Valid values: dir (direct), ref (referral), eml (email), soc (social), org (organic search), pst (paid search traffic) device_types: The device types to segment the campaign on. Default is empty list, which means all device types. Valid values: desktop, mobile, ipod, ipad, iphone, winphone, android, symbian countries: The countries to segment the campaign on. Default is empty list, which means all countries. Valid values: US, IN, GB, DE, etc. visitor_type: The visitor type to segment the campaign on. Default is "all", which means all visitor types. Valid values: all, new (new visitor), ret (returning visitor) Returns: str: The URL of the created VWO split URL campaign.
fe_create_feature_flag_rules_tool
ChatGPTCreate one or more rules under an environment for a feature. Before calling: From `fe_get_feature_flag_tool, read variation ids (featureVariationId) for FLAG_TESTING / FLAG_PERSONALIZE / FLAG_MULTIVARIATE rules. FLAG_ROLLOUT only needs campaignData.percentSplit. Rule schema per entry: name – display name of the rule. key – unique rule key. type – one of FLAG_ROLLOUT | FLAG_TESTING | FLAG_MULTIVARIATE | FLAG_PERSONALIZE. campaignData – traffic config: percentSplit (int, default 100) – overall traffic % for this rule. variations (list, optional) – per-variation traffic; shape: [{"featureVariationId": <int>, "percentSplit": <int, default 50>}, ...]. Rule-type requirements: FLAG_ROLLOUT: only campaignData.percentSplit is required. FLAG_TESTING: campaignData.variations required; at least 2 entries each with featureVariationId and percentSplit; splits must sum to 100. FLAG_PERSONALIZE: campaignData.variations required; exactly 1 entry. FLAG_MULTIVARIATE: campaignData.variations` required with all variation IDs. Each rule has independent traffic allocation (defaults to 100 %). For testing rules the traffic is split between variations (defaults to 50 % each). Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Target feature flag id or key. rules: List of rule dicts following the schema above. Returns: Markdown summary of created rules (supports both list and wrapped list shapes from the API).
fe_create_feature_flag_rules_tool
ChatGPTCreate one or more rules under an environment for a feature. Before calling: From `fe_get_feature_flag_tool, read variation ids (featureVariationId) for FLAG_TESTING / FLAG_PERSONALIZE / FLAG_MULTIVARIATE rules. FLAG_ROLLOUT only needs campaignData.percentSplit. Rule schema per entry: name – display name of the rule. key – unique rule key. type – one of FLAG_ROLLOUT | FLAG_TESTING | FLAG_MULTIVARIATE | FLAG_PERSONALIZE. campaignData – traffic config: percentSplit (int, default 100) – overall traffic % for this rule. variations (list, optional) – per-variation traffic; shape: [{"featureVariationId": <int>, "percentSplit": <int, default 50>}, ...]. Rule-type requirements: FLAG_ROLLOUT: only campaignData.percentSplit is required. FLAG_TESTING: campaignData.variations required; at least 2 entries each with featureVariationId and percentSplit; splits must sum to 100. FLAG_PERSONALIZE: campaignData.variations required; exactly 1 entry. FLAG_MULTIVARIATE: campaignData.variations` required with all variation IDs. Each rule has independent traffic allocation (defaults to 100 %). For testing rules the traffic is split between variations (defaults to 50 % each). Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Target feature flag id or key. rules: List of rule dicts following the schema above. Returns: Markdown summary of created rules (supports both list and wrapped list shapes from the API).
fe_create_feature_flag_rules_tool
ChatGPTCreate one or more rules under an environment for a feature. Before calling: From `fe_get_feature_flag_tool, read variation ids (featureVariationId) for FLAG_TESTING / FLAG_PERSONALIZE / FLAG_MULTIVARIATE rules. FLAG_ROLLOUT only needs campaignData.percentSplit. Rule schema per entry: name – display name of the rule. key – unique rule key. type – one of FLAG_ROLLOUT | FLAG_TESTING | FLAG_MULTIVARIATE | FLAG_PERSONALIZE. campaignData – traffic config: percentSplit (int, default 100) – overall traffic % for this rule. variations (list, optional) – per-variation traffic; shape: [{"featureVariationId": <int>, "percentSplit": <int, default 50>}, ...]. Rule-type requirements: FLAG_ROLLOUT: only campaignData.percentSplit is required. FLAG_TESTING: campaignData.variations required; at least 2 entries each with featureVariationId and percentSplit; splits must sum to 100. FLAG_PERSONALIZE: campaignData.variations required; exactly 1 entry. FLAG_MULTIVARIATE: campaignData.variations` required with all variation IDs. Each rule has independent traffic allocation (defaults to 100 %). For testing rules the traffic is split between variations (defaults to 50 % each). Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Target feature flag id or key. rules: List of rule dicts following the schema above. Returns: Markdown summary of created rules (supports both list and wrapped list shapes from the API).
fe_create_feature_flag_tool
ChatGPTCreate a new VWO FME feature flag for the authenticated account. Before calling: For goals with custom metric names, call `fe_get_fme_metrics_tool first so each goal's metricName exists on the account. Each variable must include variableName, dataType (boolean|string|int|float|json), and defaultValue matching that type. Behavior: On success, the API returns feature data (including id and featureKey). If the envelope is empty, the tool surfaces an explicit empty-payload message instead of assuming fields exist. Args: feature_key: Unique key (alphanumeric + underscores). name: Display name; defaults to feature_key. description: Free text. feature_type: TEMPORARY (default) or PERMANENT. goals: Optional list of {"metricName": str}`. variables: Optional list of variable dicts. Returns: Markdown summary of the created flag.
fe_create_feature_flag_tool
ChatGPTCreate a new VWO FME feature flag for the authenticated account. Before calling: For goals with custom metric names, call `fe_get_fme_metrics_tool first so each goal's metricName exists on the account. Each variable must include variableName, dataType (boolean|string|int|float|json), and defaultValue matching that type. Behavior: On success, the API returns feature data (including id and featureKey). If the envelope is empty, the tool surfaces an explicit empty-payload message instead of assuming fields exist. Args: feature_key: Unique key (alphanumeric + underscores). name: Display name; defaults to feature_key. description: Free text. feature_type: TEMPORARY (default) or PERMANENT. goals: Optional list of {"metricName": str}`. variables: Optional list of variable dicts. Returns: Markdown summary of the created flag.
fe_create_feature_flag_tool
ChatGPTCreate a new VWO FME feature flag for the authenticated account. Before calling: For goals with custom metric names, call `fe_get_fme_metrics_tool first so each goal's metricName exists on the account. Each variable must include variableName, dataType (boolean|string|int|float|json), and defaultValue matching that type. Behavior: On success, the API returns feature data (including id and featureKey). If the envelope is empty, the tool surfaces an explicit empty-payload message instead of assuming fields exist. Args: feature_key: Unique key (alphanumeric + underscores). name: Display name; defaults to feature_key. description: Free text. feature_type: TEMPORARY (default) or PERMANENT. goals: Optional list of {"metricName": str}`. variables: Optional list of variable dicts. Returns: Markdown summary of the created flag.
fe_create_feature_flag_with_defaults_tool
ChatGPTCreate a ready-to-use feature flag in one call: creates the flag, adds a variation, creates rules, enables all created rules, then enables the flag. Use `fe_toggle_feature_flag_rules_tool afterward for selective rule enablement. variables and variations are both required on every call. variableId auto-resolution: Pass positional placeholder IDs (1, 2, 3 …) in variations[*].variables. After flag creation the tool resolves them to the real server-assigned IDs by index — callers never need to look up internal IDs. Default rules (when feature_rule is omitted): One FLAG_ROLLOUT rule at 100 % traffic and one FLAG_TESTING rule with a 50 / 50 split are created automatically. Prerequisite: Call fe_list_projects_and_environments_tool first if the environment is unknown. Call fe_get_fme_metrics_tool to get valid metric names for goals when unsure. Args: feature_key: Unique flag key (alphanumeric + underscores). environment_id_or_key: Environment numeric ID or key (default "3" = Dev). sdk: SDK identifier echoed in the response (e.g. "python", "node"). name: Display name; defaults to feature_key. description: Optional flag description. feature_type: "TEMPORARY" (default) or "PERMANENT". goals: List of {"metricName": "<name>"} dicts. Defaults to [{"metricName": "Default Metric MCP"}] when omitted. variables: **Required.** List of variable dicts, each with: - variableName (str) - dataType: "boolean" | "string" | "int" | "float" | "json" - defaultValue: matching the dataType (bool / str / number / object) variations: **Required. Exactly one** non-default variation dict containing: - name (str) - key (str) - variables: list of {"variableId": <placeholder int>, "value": <variant value>} ordered to match the variables list (auto-resolved to server IDs). feature_rule: {"rules": [...]}` dict. If omitted, default rollout + testing rules are generated automatically. Returns: Markdown summary with per-step outcomes.
fe_create_feature_flag_with_defaults_tool
ChatGPTCreate a ready-to-use feature flag in one call: creates the flag, adds a variation, creates rules, enables all created rules, then enables the flag. Use `fe_toggle_feature_flag_rules_tool afterward for selective rule enablement. variables and variations are both required on every call. variableId auto-resolution: Pass positional placeholder IDs (1, 2, 3 …) in variations[*].variables. After flag creation the tool resolves them to the real server-assigned IDs by index — callers never need to look up internal IDs. Default rules (when feature_rule is omitted): One FLAG_ROLLOUT rule at 100 % traffic and one FLAG_TESTING rule with a 50 / 50 split are created automatically. Prerequisite: Call fe_list_projects_and_environments_tool first if the environment is unknown. Call fe_get_fme_metrics_tool to get valid metric names for goals when unsure. Args: feature_key: Unique flag key (alphanumeric + underscores). environment_id_or_key: Environment numeric ID or key (default "3" = Dev). sdk: SDK identifier echoed in the response (e.g. "python", "node"). name: Display name; defaults to feature_key. description: Optional flag description. feature_type: "TEMPORARY" (default) or "PERMANENT". goals: List of {"metricName": "<name>"} dicts. Defaults to [{"metricName": "Default Metric MCP"}] when omitted. variables: **Required.** List of variable dicts, each with: - variableName (str) - dataType: "boolean" | "string" | "int" | "float" | "json" - defaultValue: matching the dataType (bool / str / number / object) variations: **Required. Exactly one** non-default variation dict containing: - name (str) - key (str) - variables: list of {"variableId": <placeholder int>, "value": <variant value>} ordered to match the variables list (auto-resolved to server IDs). feature_rule: {"rules": [...]}` dict. If omitted, default rollout + testing rules are generated automatically. Returns: Markdown summary with per-step outcomes.
fe_create_feature_flag_with_defaults_tool
ChatGPTCreate a ready-to-use feature flag in one call: creates the flag, adds a variation, creates rules, enables all created rules, then enables the flag. Use `fe_toggle_feature_flag_rules_tool afterward for selective rule enablement. variables and variations are both required on every call. variableId auto-resolution: Pass positional placeholder IDs (1, 2, 3 …) in variations[*].variables. After flag creation the tool resolves them to the real server-assigned IDs by index — callers never need to look up internal IDs. Default rules (when feature_rule is omitted): One FLAG_ROLLOUT rule at 100 % traffic and one FLAG_TESTING rule with a 50 / 50 split are created automatically. Prerequisite: Call fe_list_projects_and_environments_tool first if the environment is unknown. Call fe_get_fme_metrics_tool to get valid metric names for goals when unsure. Args: feature_key: Unique flag key (alphanumeric + underscores). environment_id_or_key: Environment numeric ID or key (default "3" = Dev). sdk: SDK identifier echoed in the response (e.g. "python", "node"). name: Display name; defaults to feature_key. description: Optional flag description. feature_type: "TEMPORARY" (default) or "PERMANENT". goals: List of {"metricName": "<name>"} dicts. Defaults to [{"metricName": "Default Metric MCP"}] when omitted. variables: **Required.** List of variable dicts, each with: - variableName (str) - dataType: "boolean" | "string" | "int" | "float" | "json" - defaultValue: matching the dataType (bool / str / number / object) variations: **Required. Exactly one** non-default variation dict containing: - name (str) - key (str) - variables: list of {"variableId": <placeholder int>, "value": <variant value>} ordered to match the variables list (auto-resolved to server IDs). feature_rule: {"rules": [...]}` dict. If omitted, default rollout + testing rules are generated automatically. Returns: Markdown summary with per-step outcomes.
fe_delete_feature_flag_rule_tool
ChatGPTDelete one rule from a feature in an environment. Before calling: List rules with `fe_list_feature_flag_rules_tool to confirm rule_id_or_key`. Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Feature flag id or key. rule_id_or_key: Rule id or key to delete. Returns: Markdown confirmation and any delete payload returned by the API.
fe_delete_feature_flag_rule_tool
ChatGPTDelete one rule from a feature in an environment. Before calling: List rules with `fe_list_feature_flag_rules_tool to confirm rule_id_or_key`. Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Feature flag id or key. rule_id_or_key: Rule id or key to delete. Returns: Markdown confirmation and any delete payload returned by the API.
fe_delete_feature_flag_rule_tool
ChatGPTDelete one rule from a feature in an environment. Before calling: List rules with `fe_list_feature_flag_rules_tool to confirm rule_id_or_key`. Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Feature flag id or key. rule_id_or_key: Rule id or key to delete. Returns: Markdown confirmation and any delete payload returned by the API.
fe_delete_feature_flag_tool
ChatGPTPermanently delete a feature flag by id or key. Before calling: Confirm the correct `feature_id_or_key via fe_list_feature_flags_tool or fe_get_feature_flag_tool`. Warning: Deletion is irreversible for that flag id; dependent rules in environments may be removed or invalidated per product behavior. Args: feature_id_or_key: Numeric id or string key to delete. Returns: Markdown confirmation and any payload returned by the delete endpoint.
fe_delete_feature_flag_tool
ChatGPTPermanently delete a feature flag by id or key. Before calling: Confirm the correct `feature_id_or_key via fe_list_feature_flags_tool or fe_get_feature_flag_tool`. Warning: Deletion is irreversible for that flag id; dependent rules in environments may be removed or invalidated per product behavior. Args: feature_id_or_key: Numeric id or string key to delete. Returns: Markdown confirmation and any payload returned by the delete endpoint.
fe_delete_feature_flag_tool
ChatGPTPermanently delete a feature flag by id or key. Before calling: Confirm the correct `feature_id_or_key via fe_list_feature_flags_tool or fe_get_feature_flag_tool`. Warning: Deletion is irreversible for that flag id; dependent rules in environments may be removed or invalidated per product behavior. Args: feature_id_or_key: Numeric id or string key to delete. Returns: Markdown confirmation and any payload returned by the delete endpoint.
fe_get_feature_flag_rule_tool
ChatGPTFetch a single rule by rule id or key under a feature and environment. Before calling: Use `fe_list_feature_flag_rules_tool to discover rule_id_or_key. Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Feature flag id or key. rule_id_or_key: Numeric rule id or string rule key. Returns: Markdown rule detail. If the rule does not exist or _data` is empty, the tool explains missing payload instead of assuming fields.
fe_get_feature_flag_rule_tool
ChatGPTFetch a single rule by rule id or key under a feature and environment. Before calling: Use `fe_list_feature_flag_rules_tool to discover rule_id_or_key. Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Feature flag id or key. rule_id_or_key: Numeric rule id or string rule key. Returns: Markdown rule detail. If the rule does not exist or _data` is empty, the tool explains missing payload instead of assuming fields.
fe_get_feature_flag_rule_tool
ChatGPTFetch a single rule by rule id or key under a feature and environment. Before calling: Use `fe_list_feature_flag_rules_tool to discover rule_id_or_key. Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Feature flag id or key. rule_id_or_key: Numeric rule id or string rule key. Returns: Markdown rule detail. If the rule does not exist or _data` is empty, the tool explains missing payload instead of assuming fields.
fe_get_feature_flag_tool
ChatGPTFetch one feature flag by numeric id or string key (full config: variables with ids, variations, goals, rules count). Before calling: Use `fe_list_feature_flags_tool if you do not know the id/key. Use the response when: Updating variables or variations (you need server id values). Building rule payloads that reference featureVariationId. Args: feature_id_or_key: Numeric id or string key of the feature flag. Returns: Markdown summary. If the flag does not exist or the API returns no _data`, the output explains empty payload rather than failing silently.
fe_get_feature_flag_tool
ChatGPTFetch one feature flag by numeric id or string key (full config: variables with ids, variations, goals, rules count). Before calling: Use `fe_list_feature_flags_tool if you do not know the id/key. Use the response when: Updating variables or variations (you need server id values). Building rule payloads that reference featureVariationId. Args: feature_id_or_key: Numeric id or string key of the feature flag. Returns: Markdown summary. If the flag does not exist or the API returns no _data`, the output explains empty payload rather than failing silently.
fe_get_feature_flag_tool
ChatGPTFetch one feature flag by numeric id or string key (full config: variables with ids, variations, goals, rules count). Before calling: Use `fe_list_feature_flags_tool if you do not know the id/key. Use the response when: Updating variables or variations (you need server id values). Building rule payloads that reference featureVariationId. Args: feature_id_or_key: Numeric id or string key of the feature flag. Returns: Markdown summary. If the flag does not exist or the API returns no _data`, the output explains empty payload rather than failing silently.
fe_get_fme_metrics_tool
ChatGPTList account-wide Data360 metrics usable with feature flags (API filter: flag-testing campaign type). Call this before: `fe_create_feature_flag_tool / fe_update_feature_flag_tool / fe_create_feature_flag_with_defaults_tool when you need valid metricName` values for goals. Returns: Markdown table of metrics. An empty list means no metrics matched the filter—not necessarily an auth error; verify account setup and metric catalog.
fe_get_fme_metrics_tool
ChatGPTList account-wide Data360 metrics usable with feature flags (API filter: flag-testing campaign type). Call this before: `fe_create_feature_flag_tool / fe_update_feature_flag_tool / fe_create_feature_flag_with_defaults_tool when you need valid metricName` values for goals. Returns: Markdown table of metrics. An empty list means no metrics matched the filter—not necessarily an auth error; verify account setup and metric catalog.
fe_get_fme_metrics_tool
ChatGPTList account-wide Data360 metrics usable with feature flags (API filter: flag-testing campaign type). Call this before: `fe_create_feature_flag_tool / fe_update_feature_flag_tool / fe_create_feature_flag_with_defaults_tool when you need valid metricName` values for goals. Returns: Markdown table of metrics. An empty list means no metrics matched the filter—not necessarily an auth error; verify account setup and metric catalog.
fe_list_feature_flag_rules_tool
ChatGPTList rules for a given feature in a given environment (paginated). Before calling: Resolve `environment_id_or_key via fe_list_projects_and_environments_tool. Resolve feature_id_or_key via fe_list_feature_flags_tool or fe_get_feature_flag_tool`. Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Feature flag id or key. limit: Maximum rules per page (1-25, default 10). offset: Records to skip. Returns: Markdown list/table. An empty rule set is a valid outcome—check offset/limit and that rules were created for that env/feature.
fe_list_feature_flag_rules_tool
ChatGPTList rules for a given feature in a given environment (paginated). Before calling: Resolve `environment_id_or_key via fe_list_projects_and_environments_tool. Resolve feature_id_or_key via fe_list_feature_flags_tool or fe_get_feature_flag_tool`. Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Feature flag id or key. limit: Maximum rules per page (1-25, default 10). offset: Records to skip. Returns: Markdown list/table. An empty rule set is a valid outcome—check offset/limit and that rules were created for that env/feature.
fe_list_feature_flag_rules_tool
ChatGPTList rules for a given feature in a given environment (paginated). Before calling: Resolve `environment_id_or_key via fe_list_projects_and_environments_tool. Resolve feature_id_or_key via fe_list_feature_flags_tool or fe_get_feature_flag_tool`. Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Feature flag id or key. limit: Maximum rules per page (1-25, default 10). offset: Records to skip. Returns: Markdown list/table. An empty rule set is a valid outcome—check offset/limit and that rules were created for that env/feature.
fe_list_feature_flags_tool
ChatGPTList feature flags with pagination (limit/offset). Use this to: Discover `feature_id_or_key values for get/update/delete/toggle. See counts and types before deeper calls. Empty page: A valid response may contain no rows; that is not an error—adjust offset` or confirm the account has flags. Args: limit: Page size (typical API max 25; default 10). offset: Skip count for pagination. Returns: Markdown table (and optional metadata block).
fe_list_feature_flags_tool
ChatGPTList feature flags with pagination (limit/offset). Use this to: Discover `feature_id_or_key values for get/update/delete/toggle. See counts and types before deeper calls. Empty page: A valid response may contain no rows; that is not an error—adjust offset` or confirm the account has flags. Args: limit: Page size (typical API max 25; default 10). offset: Skip count for pagination. Returns: Markdown table (and optional metadata block).
fe_list_feature_flags_tool
ChatGPTList feature flags with pagination (limit/offset). Use this to: Discover `feature_id_or_key values for get/update/delete/toggle. See counts and types before deeper calls. Empty page: A valid response may contain no rows; that is not an error—adjust offset` or confirm the account has flags. Args: limit: Page size (typical API max 25; default 10). offset: Skip count for pagination. Returns: Markdown table (and optional metadata block).
fe_list_projects_and_environments_tool
ChatGPTList FME projects and their environments (ids, names, enabled flags, rule counts where available). Call this first when: Any tool requires `environment_id_or_key` and you are unsure of ids or standard env names (e.g. Dev/Staging/Prod mappings differ by account). Returns: Markdown tables for projects and environments. Sensitive fields like sdk keys are not surfaced in the primary tables.
fe_list_projects_and_environments_tool
ChatGPTList FME projects and their environments (ids, names, enabled flags, rule counts where available). Call this first when: Any tool requires `environment_id_or_key` and you are unsure of ids or standard env names (e.g. Dev/Staging/Prod mappings differ by account). Returns: Markdown tables for projects and environments. Sensitive fields like sdk keys are not surfaced in the primary tables.
fe_list_projects_and_environments_tool
ChatGPTList FME projects and their environments (ids, names, enabled flags, rule counts where available). Call this first when: Any tool requires `environment_id_or_key` and you are unsure of ids or standard env names (e.g. Dev/Staging/Prod mappings differ by account). Returns: Markdown tables for projects and environments. Sensitive fields like sdk keys are not surfaced in the primary tables.
fe_toggle_feature_flag_rules_tool
ChatGPTEnable or disable one, many, or all rules for a feature in an environment. Behavior: If `rule_ids is omitted (None), **all** rules for that feature in that environment are toggled. Pass one or more numeric ids to limit scope. An empty list ([]) is rejected — do not pass []. Enable only specific rule(s) (e.g. one rollout while others stay off): 1. fe_list_feature_flag_rules_tool — copy numeric id (not key). 2. This tool with is_enabled=False and no rule_ids (disable all). 3. This tool with is_enabled=True and rule_ids=[<target_id>]`. Before calling: Confirm environment and feature ids/keys (projects list + feature list/get). Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Feature flag id or key. is_enabled: True to enable, False to disable (default True). rule_ids: Optional list of numeric rule ids; omit to toggle all. Returns: Markdown summary of the toggle response.
fe_toggle_feature_flag_rules_tool
ChatGPTEnable or disable one, many, or all rules for a feature in an environment. Behavior: If `rule_ids is omitted (None), **all** rules for that feature in that environment are toggled. Pass one or more numeric ids to limit scope. An empty list ([]) is rejected — do not pass []. Enable only specific rule(s) (e.g. one rollout while others stay off): 1. fe_list_feature_flag_rules_tool — copy numeric id (not key). 2. This tool with is_enabled=False and no rule_ids (disable all). 3. This tool with is_enabled=True and rule_ids=[<target_id>]`. Before calling: Confirm environment and feature ids/keys (projects list + feature list/get). Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Feature flag id or key. is_enabled: True to enable, False to disable (default True). rule_ids: Optional list of numeric rule ids; omit to toggle all. Returns: Markdown summary of the toggle response.
fe_toggle_feature_flag_rules_tool
ChatGPTEnable or disable one, many, or all rules for a feature in an environment. Behavior: If `rule_ids is omitted (None), **all** rules for that feature in that environment are toggled. Pass one or more numeric ids to limit scope. An empty list ([]) is rejected — do not pass []. Enable only specific rule(s) (e.g. one rollout while others stay off): 1. fe_list_feature_flag_rules_tool — copy numeric id (not key). 2. This tool with is_enabled=False and no rule_ids (disable all). 3. This tool with is_enabled=True and rule_ids=[<target_id>]`. Before calling: Confirm environment and feature ids/keys (projects list + feature list/get). Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Feature flag id or key. is_enabled: True to enable, False to disable (default True). rule_ids: Optional list of numeric rule ids; omit to toggle all. Returns: Markdown summary of the toggle response.
fe_toggle_feature_flag_tool
ChatGPTEnable or disable a feature flag for one environment. Does not enable or disable individual rules — use `fe_toggle_feature_flag_rules_tool for per-rule control. Before calling: Use fe_list_projects_and_environments_tool to resolve environment_id_or_key (numeric id or environment name/key as supported by your account). Use fe_list_feature_flags_tool to resolve feature_id_or_key. Args: environment_id_or_key: Target environment. feature_id_or_key: Target feature. is_enabled: True to turn on, False to turn off. Returns: Markdown summary of toggle result; empty API _data` is handled gracefully.
fe_toggle_feature_flag_tool
ChatGPTEnable or disable a feature flag for one environment. Does not enable or disable individual rules — use `fe_toggle_feature_flag_rules_tool for per-rule control. Before calling: Use fe_list_projects_and_environments_tool to resolve environment_id_or_key (numeric id or environment name/key as supported by your account). Use fe_list_feature_flags_tool to resolve feature_id_or_key. Args: environment_id_or_key: Target environment. feature_id_or_key: Target feature. is_enabled: True to turn on, False to turn off. Returns: Markdown summary of toggle result; empty API _data` is handled gracefully.
fe_toggle_feature_flag_tool
ChatGPTEnable or disable a feature flag for one environment. Does not enable or disable individual rules — use `fe_toggle_feature_flag_rules_tool for per-rule control. Before calling: Use fe_list_projects_and_environments_tool to resolve environment_id_or_key (numeric id or environment name/key as supported by your account). Use fe_list_feature_flags_tool to resolve feature_id_or_key. Args: environment_id_or_key: Target environment. feature_id_or_key: Target feature. is_enabled: True to turn on, False to turn off. Returns: Markdown summary of toggle result; empty API _data` is handled gracefully.
fe_update_feature_flag_rule_tool
ChatGPTUpdate traffic or variation allocation for one rule (`campaign_data only; other rule fields unchanged unless API allows). Before calling: Use fe_get_feature_flag_rule_tool or list output to confirm rule_id_or_key and current campaignData shape. Variation ids in campaign_data must match the feature's variations from fe_get_feature_flag_tool. Examples: Rollout: {"percentSplit": 80}. Testing: include variations with percentSplit and featureVariationId. Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Feature flag id or key. rule_id_or_key: Rule id or key to update. campaign_data: Updated campaignData` payload for the API. Returns: Markdown summary of the updated rule.
fe_update_feature_flag_rule_tool
ChatGPTUpdate traffic or variation allocation for one rule (`campaign_data only; other rule fields unchanged unless API allows). Before calling: Use fe_get_feature_flag_rule_tool or list output to confirm rule_id_or_key and current campaignData shape. Variation ids in campaign_data must match the feature's variations from fe_get_feature_flag_tool. Examples: Rollout: {"percentSplit": 80}. Testing: include variations with percentSplit and featureVariationId. Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Feature flag id or key. rule_id_or_key: Rule id or key to update. campaign_data: Updated campaignData` payload for the API. Returns: Markdown summary of the updated rule.
fe_update_feature_flag_rule_tool
ChatGPTUpdate traffic or variation allocation for one rule (`campaign_data only; other rule fields unchanged unless API allows). Before calling: Use fe_get_feature_flag_rule_tool or list output to confirm rule_id_or_key and current campaignData shape. Variation ids in campaign_data must match the feature's variations from fe_get_feature_flag_tool. Examples: Rollout: {"percentSplit": 80}. Testing: include variations with percentSplit and featureVariationId. Args: environment_id_or_key: Numeric id or name of the environment. feature_id_or_key: Feature flag id or key. rule_id_or_key: Rule id or key to update. campaign_data: Updated campaignData` payload for the API. Returns: Markdown summary of the updated rule.
fe_update_feature_flag_tool
ChatGPTPatch an existing feature flag; only provided fields are sent to the API. Before calling: Call `fe_get_feature_flag_tool for the same feature_id_or_key to obtain current variable ids, variation ids, and structure. For goals, ensure metricName values exist (fe_get_fme_metrics_tool`). Notes: Omitting a field leaves it unchanged on the server (do not send empty lists unless you intend to clear something the API allows clearing). If the API returns an empty body after success, formatting still completes with a clear message. Args: feature_id_or_key: Id or key from list/get. name: Optional display name. description: Optional description. goals, variables, variations: Optional lists in API shape. Returns: Markdown summary of the updated flag.
fe_update_feature_flag_tool
ChatGPTPatch an existing feature flag; only provided fields are sent to the API. Before calling: Call `fe_get_feature_flag_tool for the same feature_id_or_key to obtain current variable ids, variation ids, and structure. For goals, ensure metricName values exist (fe_get_fme_metrics_tool`). Notes: Omitting a field leaves it unchanged on the server (do not send empty lists unless you intend to clear something the API allows clearing). If the API returns an empty body after success, formatting still completes with a clear message. Args: feature_id_or_key: Id or key from list/get. name: Optional display name. description: Optional description. goals, variables, variations: Optional lists in API shape. Returns: Markdown summary of the updated flag.
fe_update_feature_flag_tool
ChatGPTPatch an existing feature flag; only provided fields are sent to the API. Before calling: Call `fe_get_feature_flag_tool for the same feature_id_or_key to obtain current variable ids, variation ids, and structure. For goals, ensure metricName values exist (fe_get_fme_metrics_tool`). Notes: Omitting a field leaves it unchanged on the server (do not send empty lists unless you intend to clear something the API allows clearing). If the API returns an empty body after success, formatting still completes with a clear message. Args: feature_id_or_key: Id or key from list/get. name: Optional display name. description: Optional description. goals, variables, variations: Optional lists in API shape. Returns: Markdown summary of the updated flag.
fetch_campaign_daywise_data_report_tool
ChatGPTFetch day-by-day conversion data for a VWO campaign to surface trends over time. [AGENT INSTRUCTIONS] Use this tool only when the user asks about trends, patterns over time, or day-over-day performance — not for a single-point performance snapshot (use fetch_campaign_report_tool for that). Args: campaign_id (str): VWO campaign ID. Example: "1234" Returns: str: Markdown report with daily conversion rates per variation. Suitable for identifying ramp-up periods, seasonality, or sudden performance shifts.
fetch_campaign_daywise_data_report_tool
ChatGPTFetch day-by-day conversion data for a VWO campaign to surface trends over time. [AGENT INSTRUCTIONS] Use this tool only when the user asks about trends, patterns over time, or day-over-day performance — not for a single-point performance snapshot (use fetch_campaign_report_tool for that). Args: campaign_id (str): VWO campaign ID. Example: "1234" Returns: str: Markdown report with daily conversion rates per variation. Suitable for identifying ramp-up periods, seasonality, or sudden performance shifts.
fetch_campaign_daywise_data_report_tool
ChatGPTFetch day-by-day conversion data for a VWO campaign to surface trends over time. [AGENT INSTRUCTIONS] Use this tool only when the user asks about trends, patterns over time, or day-over-day performance — not for a single-point performance snapshot (use fetch_campaign_report_tool for that). Args: campaign_id (str): VWO campaign ID. Example: "1234" Returns: str: Markdown report with daily conversion rates per variation. Suitable for identifying ramp-up periods, seasonality, or sudden performance shifts.
fetch_campaign_report_tool
ChatGPTFetch performance data for a VWO campaign — conversion rates, lift, and goal results per variation. [AGENT INSTRUCTIONS] Use for point-in-time or segmented campaign performance — conversion rates, lift, chance to beat control, and goal IDs. Use fetch_campaign_daywise_data_report_tool instead when the user asks about trends or day-over-day patterns. segment_description filters WHO the users are (device, location, visitor type) — not page-level behavior mid-session. Goal IDs from this output are required input for campaign_roi_tool. Date params use YYYY-MM-DD (unlike heatmap/recording tools which use DD/MM/YYYY). Args: campaign_id (str): VWO campaign ID. Example: "1234" segment_description (str | None): Natural language description of the user segment to filter by. Describes WHO the users are — not what they did. - Location: "users from India", "people not from the US" - Device + location: "mobile users from Germany" - Browser + location: "Chrome users from New York" Default: None (returns data for all users) start_time (str | None): Start of data window in YYYY-MM-DD format. Example: "2024-01-01" Default: None (beginning of campaign) end_time (str | None): End of data window in YYYY-MM-DD format. Example: "2024-12-31" Default: None (through today) Returns: str: Markdown report containing per-variation results — conversion rate, lift over control, chance to beat control, goal IDs, and statistical status. Goal IDs from this output are used as input to campaign_roi_tool.
fetch_campaign_report_tool
ChatGPTFetch performance data for a VWO campaign — conversion rates, lift, and goal results per variation. [AGENT INSTRUCTIONS] Use for point-in-time or segmented campaign performance — conversion rates, lift, chance to beat control, and goal IDs. Use fetch_campaign_daywise_data_report_tool instead when the user asks about trends or day-over-day patterns. segment_description filters WHO the users are (device, location, visitor type) — not page-level behavior mid-session. Goal IDs from this output are required input for campaign_roi_tool. Date params use YYYY-MM-DD (unlike heatmap/recording tools which use DD/MM/YYYY). Args: campaign_id (str): VWO campaign ID. Example: "1234" segment_description (str | None): Natural language description of the user segment to filter by. Describes WHO the users are — not what they did. - Location: "users from India", "people not from the US" - Device + location: "mobile users from Germany" - Browser + location: "Chrome users from New York" Default: None (returns data for all users) start_time (str | None): Start of data window in YYYY-MM-DD format. Example: "2024-01-01" Default: None (beginning of campaign) end_time (str | None): End of data window in YYYY-MM-DD format. Example: "2024-12-31" Default: None (through today) Returns: str: Markdown report containing per-variation results — conversion rate, lift over control, chance to beat control, goal IDs, and statistical status. Goal IDs from this output are used as input to campaign_roi_tool.
fetch_campaign_report_tool
ChatGPTFetch performance data for a VWO campaign — conversion rates, lift, and goal results per variation. [AGENT INSTRUCTIONS] Use for point-in-time or segmented campaign performance — conversion rates, lift, chance to beat control, and goal IDs. Use fetch_campaign_daywise_data_report_tool instead when the user asks about trends or day-over-day patterns. segment_description filters WHO the users are (device, location, visitor type) — not page-level behavior mid-session. Goal IDs from this output are required input for campaign_roi_tool. Date params use YYYY-MM-DD (unlike heatmap/recording tools which use DD/MM/YYYY). Args: campaign_id (str): VWO campaign ID. Example: "1234" segment_description (str | None): Natural language description of the user segment to filter by. Describes WHO the users are — not what they did. - Location: "users from India", "people not from the US" - Device + location: "mobile users from Germany" - Browser + location: "Chrome users from New York" Default: None (returns data for all users) start_time (str | None): Start of data window in YYYY-MM-DD format. Example: "2024-01-01" Default: None (beginning of campaign) end_time (str | None): End of data window in YYYY-MM-DD format. Example: "2024-12-31" Default: None (through today) Returns: str: Markdown report containing per-variation results — conversion rate, lift over control, chance to beat control, goal IDs, and statistical status. Goal IDs from this output are used as input to campaign_roi_tool.
get_account_details_tool
ChatGPTGet comprehensive account details, SmartCode configuration for the authenticated VWO account. This tool fetches three critical pieces of information about your VWO account: 1. Account Data: Complete account configuration including: - Account settings and preferences - Product subscriptions (Testing, Insights, Engage, Deploy, Data360, etc.) - Plan types for each enabled product - Feature flags and enabled capabilities - Account policies and permissions - Billing information and usage limits - Account hierarchy and workspace details - Integration settings (GA, GTM, UA, etc.) 2. SmartCode Properties: VWO SmartCode tracking configuration including: - All registered domains and properties - SmartCode installation status per property - Platform types (website, mobile app, etc.) - Primary and archived properties - Last activity timestamps - Property-level statistics This information is useful for: - Understanding account capabilities and limitations - Debugging tracking and integration issues - Verifying product subscriptions and features - Checking SmartCode installation and configuration - Account auditing and compliance checks Returns: str: CRITICAL: The LLM MUST output this Markdown-formatted report directly and without any conversational wrapping, commentary, or modification to the content or structure. This string contains the final, ready-to-display report for account data, SmartCode properties. Raises: ValueError: If authentication fails or API requests fail Example output includes: - Account ID and name - Enabled products and their plan types - SmartCode properties table with all domains - Campaign counts by type and status - Integration details Note: This tool uses the authenticated account from the authorization header. No additional parameters are required.
get_account_details_tool
ChatGPTGet comprehensive account details, SmartCode configuration for the authenticated VWO account. This tool fetches three critical pieces of information about your VWO account: 1. Account Data: Complete account configuration including: - Account settings and preferences - Product subscriptions (Testing, Insights, Engage, Deploy, Data360, etc.) - Plan types for each enabled product - Feature flags and enabled capabilities - Account policies and permissions - Billing information and usage limits - Account hierarchy and workspace details - Integration settings (GA, GTM, UA, etc.) 2. SmartCode Properties: VWO SmartCode tracking configuration including: - All registered domains and properties - SmartCode installation status per property - Platform types (website, mobile app, etc.) - Primary and archived properties - Last activity timestamps - Property-level statistics This information is useful for: - Understanding account capabilities and limitations - Debugging tracking and integration issues - Verifying product subscriptions and features - Checking SmartCode installation and configuration - Account auditing and compliance checks Returns: str: CRITICAL: The LLM MUST output this Markdown-formatted report directly and without any conversational wrapping, commentary, or modification to the content or structure. This string contains the final, ready-to-display report for account data, SmartCode properties. Raises: ValueError: If authentication fails or API requests fail Example output includes: - Account ID and name - Enabled products and their plan types - SmartCode properties table with all domains - Campaign counts by type and status - Integration details Note: This tool uses the authenticated account from the authorization header. No additional parameters are required.
get_account_details_tool
ChatGPTGet comprehensive account details, SmartCode configuration for the authenticated VWO account. This tool fetches three critical pieces of information about your VWO account: 1. Account Data: Complete account configuration including: - Account settings and preferences - Product subscriptions (Testing, Insights, Engage, Deploy, Data360, etc.) - Plan types for each enabled product - Feature flags and enabled capabilities - Account policies and permissions - Billing information and usage limits - Account hierarchy and workspace details - Integration settings (GA, GTM, UA, etc.) 2. SmartCode Properties: VWO SmartCode tracking configuration including: - All registered domains and properties - SmartCode installation status per property - Platform types (website, mobile app, etc.) - Primary and archived properties - Last activity timestamps - Property-level statistics This information is useful for: - Understanding account capabilities and limitations - Debugging tracking and integration issues - Verifying product subscriptions and features - Checking SmartCode installation and configuration - Account auditing and compliance checks Returns: str: CRITICAL: The LLM MUST output this Markdown-formatted report directly and without any conversational wrapping, commentary, or modification to the content or structure. This string contains the final, ready-to-display report for account data, SmartCode properties. Raises: ValueError: If authentication fails or API requests fail Example output includes: - Account ID and name - Enabled products and their plan types - SmartCode properties table with all domains - Campaign counts by type and status - Integration details Note: This tool uses the authenticated account from the authorization header. No additional parameters are required.
get_campaign_variation_code_tool
ChatGPTGet the injected code for each variation in a VWO campaign. Returns a markdown document showing the campaign name and the code injected into each variation (control and treatment). Args: campaign_id: The ID of the campaign to retrieve variation code for. Returns: str: Markdown with the campaign name as heading and each variation's code in fenced code blocks.
get_campaign_variation_code_tool
ChatGPTGet the injected code for each variation in a VWO campaign. Returns a markdown document showing the campaign name and the code injected into each variation (control and treatment). Args: campaign_id: The ID of the campaign to retrieve variation code for. Returns: str: Markdown with the campaign name as heading and each variation's code in fenced code blocks.
get_campaign_variation_code_tool
ChatGPTGet the injected code for each variation in a VWO campaign. Returns a markdown document showing the campaign name and the code injected into each variation (control and treatment). Args: campaign_id: The ID of the campaign to retrieve variation code for. Returns: str: Markdown with the campaign name as heading and each variation's code in fenced code blocks.
get_campaigns_overview_tool
ChatGPTList VWO campaigns matching the given filters, returning a formatted overview table. [AGENT INSTRUCTIONS] DISPLAY the returned markdown table exactly as-is — do not reformat, summarize, or condense it. Always prefix the response with: "Here are the campaigns for the period [start_time] to [end_time]:" When resolving a campaign name to an ID, extract the matched campaign_id silently and pass it to the next capability without asking the user to confirm. Args: start_time (str | None): Start of fetch window in DD/MM/YYYY format. Example: "01/01/2024" Default: None (6 months ago) end_time (str | None): End of fetch window in DD/MM/YYYY format. Example: "31/12/2024" Default: None (today) search (str | None): Keyword to filter campaigns by name (case-insensitive, partial match). Example: "checkout" returns all campaigns with "checkout" in the name. Default: None (no name filter) statuses (list[str] | None): Filter by campaign status. Allowed values: "all", "RUNNING", "PAUSED" Note: ARCHIVED, DRAFT, STOPPED, and NOT_STARTED campaigns are NOT supported. Default: ["all"] (no status filter — returns all supported statuses) campaignTypes (list[str] | None): Filter by test type. Allowed values: "ab", "multivariate", "split", "targeting", "experience", "flag-rollout", "flag-personalize", "flag-testing", "flag-multivariate", "feature-rollout", "feature-test" Default: None (all types) page_tag (str | None): Filter by VWO page tag (NOT a URL). Page tags are account-specific labels configured in VWO. Use search instead when filtering by URL or page name substring. The available page_tag values are: - ALL - FEATURES_PAGE Default: None section_tag (str | None): Filter by section tag. Pass None if not filtering by section. Section tags are account-specific labels configured in VWO. The available section_tag values are: - ALL - ["HERO_SECTION"] Default: None limit (int): Maximum number of campaigns to return. Default: 100 Returns: str: Complete markdown with a summary table. Contains campaign IDs, names, statuses, types, and basic metrics. Display this output directly without modification.
get_campaigns_overview_tool
ChatGPTList VWO campaigns matching the given filters, returning a formatted overview table. [AGENT INSTRUCTIONS] DISPLAY the returned markdown table exactly as-is — do not reformat, summarize, or condense it. Always prefix the response with: "Here are the campaigns for the period [start_time] to [end_time]:" When resolving a campaign name to an ID, extract the matched campaign_id silently and pass it to the next capability without asking the user to confirm. Args: start_time (str | None): Start of fetch window in DD/MM/YYYY format. Example: "01/01/2024" Default: None (6 months ago) end_time (str | None): End of fetch window in DD/MM/YYYY format. Example: "31/12/2024" Default: None (today) search (str | None): Keyword to filter campaigns by name (case-insensitive, partial match). Example: "checkout" returns all campaigns with "checkout" in the name. Default: None (no name filter) statuses (list[str] | None): Filter by campaign status. Allowed values: "all", "RUNNING", "PAUSED" Note: ARCHIVED, DRAFT, STOPPED, and NOT_STARTED campaigns are NOT supported. Default: ["all"] (no status filter — returns all supported statuses) campaignTypes (list[str] | None): Filter by test type. Allowed values: "ab", "multivariate", "split", "targeting", "experience", "flag-rollout", "flag-personalize", "flag-testing", "flag-multivariate", "feature-rollout", "feature-test" Default: None (all types) page_tag (str | None): Filter by VWO page tag (NOT a URL). Page tags are account-specific labels configured in VWO. Use search instead when filtering by URL or page name substring. The available page_tag values are: - ALL - FEATURES_PAGE Default: None section_tag (str | None): Filter by section tag. Pass None if not filtering by section. Section tags are account-specific labels configured in VWO. The available section_tag values are: - ALL - ["HERO_SECTION"] Default: None limit (int): Maximum number of campaigns to return. Default: 100 Returns: str: Complete markdown with a summary table. Contains campaign IDs, names, statuses, types, and basic metrics. Display this output directly without modification.
get_campaigns_overview_tool
ChatGPTList VWO campaigns matching the given filters, returning a formatted overview table. [AGENT INSTRUCTIONS] DISPLAY the returned markdown table exactly as-is — do not reformat, summarize, or condense it. Always prefix the response with: "Here are the campaigns for the period [start_time] to [end_time]:" When resolving a campaign name to an ID, extract the matched campaign_id silently and pass it to the next capability without asking the user to confirm. Args: start_time (str | None): Start of fetch window in DD/MM/YYYY format. Example: "01/01/2024" Default: None (6 months ago) end_time (str | None): End of fetch window in DD/MM/YYYY format. Example: "31/12/2024" Default: None (today) search (str | None): Keyword to filter campaigns by name (case-insensitive, partial match). Example: "checkout" returns all campaigns with "checkout" in the name. Default: None (no name filter) statuses (list[str] | None): Filter by campaign status. Allowed values: "all", "RUNNING", "PAUSED" Note: ARCHIVED, DRAFT, STOPPED, and NOT_STARTED campaigns are NOT supported. Default: ["all"] (no status filter — returns all supported statuses) campaignTypes (list[str] | None): Filter by test type. Allowed values: "ab", "multivariate", "split", "targeting", "experience", "flag-rollout", "flag-personalize", "flag-testing", "flag-multivariate", "feature-rollout", "feature-test" Default: None (all types) page_tag (str | None): Filter by VWO page tag (NOT a URL). Page tags are account-specific labels configured in VWO. Use search instead when filtering by URL or page name substring. The available page_tag values are: - ALL - FEATURES_PAGE Default: None section_tag (str | None): Filter by section tag. Pass None if not filtering by section. Section tags are account-specific labels configured in VWO. The available section_tag values are: - ALL - ["HERO_SECTION"] Default: None limit (int): Maximum number of campaigns to return. Default: 100 Returns: str: Complete markdown with a summary table. Contains campaign IDs, names, statuses, types, and basic metrics. Display this output directly without modification.
get_data360_entities
ChatGPTGet available VWO metrics for an authenticated VWO account for a given campaign type. ALWAYS use this tool before using create_split_url_campaign or create_ab_campaign to get the available metrics that can be tracked.
get_data360_entities
ChatGPTGet available VWO metrics for an authenticated VWO account for a given campaign type. ALWAYS use this tool before using create_split_url_campaign or create_ab_campaign to get the available metrics that can be tracked.
get_data360_entities
ChatGPTGet available VWO metrics for an authenticated VWO account for a given campaign type. ALWAYS use this tool before using create_split_url_campaign or create_ab_campaign to get the available metrics that can be tracked.
get_heatmap_clicks_tool
ChatGPTFetch click heatmap data for a VWO page or campaign variation with optional segmentation. [MODES] Mode 1 — All Variations: Pass campaign_id only (no variation_id). Returns tabular click analysis for every variation in the campaign, segmented by conversion status (CONVERTED / NOT_CONVERTED). Mode 2 — Single Variation: Pass campaign_id and variation_id. Returns click data for that specific variation only. Mode 3 — Single URL: Pass url (no campaign_id). start_time and end_time are optional; when omitted, defaults to the last 30 days. Returns AI-annotated screenshot with visible element interaction metrics and heatmap overlays. Use for single_page_analysis and segmented_analysis. [AGENT INSTRUCTIONS] In a campaign context (comparative_analysis), use Mode 1 or Mode 2 — never Mode 3. In a page context (single_page_analysis, segmented_analysis), use Mode 3 — never pass campaign_id. When campaign_id is provided, do NOT also pass url unless overriding the campaign's default page — the tool extracts the URL from campaign configuration automatically. Do not call this tool when heatmap markdown data is already present in the message — analyse the inline data directly (heatmap-analysis skill) instead. DATE RANGE: Mode 3 (url, no campaign_id): Pass start_time and end_time when the user specifies a range (DD/MM/YYYY). When omitted, the tool defaults to the last 30 days. When the user specifies a range: extract dates into DD/MM/YYYY. Mode 1/2 (campaign_id): Dates are optional at the API entry point; pass them when the user specifies a range, otherwise omit unless the call fails due to empty data. Format: Prefer DD/MM/YYYY; ISO (YYYY-MM-DD) is also accepted by the server. VARIATION ID MAPPING (applied automatically by the tool internally): Control → pass 0 Variation 1 → pass 1 Variation N → pass N The tool adds +1 to map these to backend IDs — never add the offset yourself. Args: campaign_id (int | None): VWO campaign ID. Required for Mode 1 and Mode 2. Omit for Mode 3. Default: None variation_id (int | None): Variation to analyse. Uses the mapping above. Omit to analyse all variations in the campaign (Mode 1). Must be paired with campaign_id — has no effect in Mode 3. Default: None url (str | None): Target page URL. Required in Mode 3. Auto-extracted from campaign configuration in Modes 1–2. Override only if a different URL than the campaign's default is needed. Default: None segment_description (str | None): Natural language description of the audience to filter by. Describes WHO the users are — not what they did. - Device + location: "mobile users from the US" - Browser + location: "Chrome users from New York" - Location negation: "people not from India" Default: None (all users) start_time (str | None): Start date in DD/MM/YYYY format (ISO YYYY-MM-DD also accepted). Example: "01/01/2024" Optional in Mode 3; defaults to today − 30 days when omitted. end_time (str | None): End date in DD/MM/YYYY format (ISO YYYY-MM-DD also accepted). Example: "31/01/2024" Optional in Mode 3; defaults to today when omitted. Returns: list[dict]: One or more analysis blocks: - {"type": "input_text", "text": "<markdown-formatted analysis>"} Contains sPath, click percentages, dead/rage/error metrics per element. - {"type": "input_image", "image_url": "<url>"} — Mode 3 only, if available. Extract sPath values and click metrics from the text block for Evidence lines. Raises: ValueError: If required parameters for the selected mode are missing (e.g. url absent in Mode 3, or campaign_id absent in Modes 1–2). ValueError: Invalid date format (expected DD/MM/YYYY or ISO YYYY-MM-DD). Examples: Mode 3 — single page, default last 30 days (no dates) get_heatmap_clicks_tool(url="https://example.com/pricing") Mode 3 — single page, explicit date range get_heatmap_clicks_tool( url="https://example.com/pricing", start_time="24/04/2026", end_time="23/05/2026" ) Mode 3 — single page, all users get_heatmap_clicks_tool( url="https://example.com/pricing", start_time="01/01/2024", end_time="31/01/2024" ) Mode 3 — single page, segmented get_heatmap_clicks_tool( url="https…
get_heatmap_clicks_tool
ChatGPTFetch click heatmap data for a VWO page or campaign variation with optional segmentation. [MODES] Mode 1 — All Variations: Pass campaign_id only (no variation_id). Returns tabular click analysis for every variation in the campaign, segmented by conversion status (CONVERTED / NOT_CONVERTED). Mode 2 — Single Variation: Pass campaign_id and variation_id. Returns click data for that specific variation only. Mode 3 — Single URL: Pass url (no campaign_id). start_time and end_time are optional; when omitted, defaults to the last 30 days. Returns AI-annotated screenshot with visible element interaction metrics and heatmap overlays. Use for single_page_analysis and segmented_analysis. [AGENT INSTRUCTIONS] In a campaign context (comparative_analysis), use Mode 1 or Mode 2 — never Mode 3. In a page context (single_page_analysis, segmented_analysis), use Mode 3 — never pass campaign_id. When campaign_id is provided, do NOT also pass url unless overriding the campaign's default page — the tool extracts the URL from campaign configuration automatically. Do not call this tool when heatmap markdown data is already present in the message — analyse the inline data directly (heatmap-analysis skill) instead. DATE RANGE: Mode 3 (url, no campaign_id): Pass start_time and end_time when the user specifies a range (DD/MM/YYYY). When omitted, the tool defaults to the last 30 days. When the user specifies a range: extract dates into DD/MM/YYYY. Mode 1/2 (campaign_id): Dates are optional at the API entry point; pass them when the user specifies a range, otherwise omit unless the call fails due to empty data. Format: Prefer DD/MM/YYYY; ISO (YYYY-MM-DD) is also accepted by the server. VARIATION ID MAPPING (applied automatically by the tool internally): Control → pass 0 Variation 1 → pass 1 Variation N → pass N The tool adds +1 to map these to backend IDs — never add the offset yourself. Args: campaign_id (int | None): VWO campaign ID. Required for Mode 1 and Mode 2. Omit for Mode 3. Default: None variation_id (int | None): Variation to analyse. Uses the mapping above. Omit to analyse all variations in the campaign (Mode 1). Must be paired with campaign_id — has no effect in Mode 3. Default: None url (str | None): Target page URL. Required in Mode 3. Auto-extracted from campaign configuration in Modes 1–2. Override only if a different URL than the campaign's default is needed. Default: None segment_description (str | None): Natural language description of the audience to filter by. Describes WHO the users are — not what they did. - Device + location: "mobile users from the US" - Browser + location: "Chrome users from New York" - Location negation: "people not from India" Default: None (all users) start_time (str | None): Start date in DD/MM/YYYY format (ISO YYYY-MM-DD also accepted). Example: "01/01/2024" Optional in Mode 3; defaults to today − 30 days when omitted. end_time (str | None): End date in DD/MM/YYYY format (ISO YYYY-MM-DD also accepted). Example: "31/01/2024" Optional in Mode 3; defaults to today when omitted. Returns: list[dict]: One or more analysis blocks: - {"type": "input_text", "text": "<markdown-formatted analysis>"} Contains sPath, click percentages, dead/rage/error metrics per element. - {"type": "input_image", "image_url": "<url>"} — Mode 3 only, if available. Extract sPath values and click metrics from the text block for Evidence lines. Raises: ValueError: If required parameters for the selected mode are missing (e.g. url absent in Mode 3, or campaign_id absent in Modes 1–2). ValueError: Invalid date format (expected DD/MM/YYYY or ISO YYYY-MM-DD). Examples: Mode 3 — single page, default last 30 days (no dates) get_heatmap_clicks_tool(url="https://example.com/pricing") Mode 3 — single page, explicit date range get_heatmap_clicks_tool( url="https://example.com/pricing", start_time="24/04/2026", end_time="23/05/2026" ) Mode 3 — single page, all users get_heatmap_clicks_tool( url="https://example.com/pricing", start_time="01/01/2024", end_time="31/01/2024" ) Mode 3 — single page, segmented get_heatmap_clicks_tool( url="https…
get_heatmap_clicks_tool
ChatGPTFetch click heatmap data for a VWO page or campaign variation with optional segmentation. [MODES] Mode 1 — All Variations: Pass campaign_id only (no variation_id). Returns tabular click analysis for every variation in the campaign, segmented by conversion status (CONVERTED / NOT_CONVERTED). Mode 2 — Single Variation: Pass campaign_id and variation_id. Returns click data for that specific variation only. Mode 3 — Single URL: Pass url (no campaign_id). start_time and end_time are optional; when omitted, defaults to the last 30 days. Returns AI-annotated screenshot with visible element interaction metrics and heatmap overlays. Use for single_page_analysis and segmented_analysis. [AGENT INSTRUCTIONS] In a campaign context (comparative_analysis), use Mode 1 or Mode 2 — never Mode 3. In a page context (single_page_analysis, segmented_analysis), use Mode 3 — never pass campaign_id. When campaign_id is provided, do NOT also pass url unless overriding the campaign's default page — the tool extracts the URL from campaign configuration automatically. Do not call this tool when heatmap markdown data is already present in the message — analyse the inline data directly (heatmap-analysis skill) instead. DATE RANGE: Mode 3 (url, no campaign_id): Pass start_time and end_time when the user specifies a range (DD/MM/YYYY). When omitted, the tool defaults to the last 30 days. When the user specifies a range: extract dates into DD/MM/YYYY. Mode 1/2 (campaign_id): Dates are optional at the API entry point; pass them when the user specifies a range, otherwise omit unless the call fails due to empty data. Format: Prefer DD/MM/YYYY; ISO (YYYY-MM-DD) is also accepted by the server. VARIATION ID MAPPING (applied automatically by the tool internally): Control → pass 0 Variation 1 → pass 1 Variation N → pass N The tool adds +1 to map these to backend IDs — never add the offset yourself. Args: campaign_id (int | None): VWO campaign ID. Required for Mode 1 and Mode 2. Omit for Mode 3. Default: None variation_id (int | None): Variation to analyse. Uses the mapping above. Omit to analyse all variations in the campaign (Mode 1). Must be paired with campaign_id — has no effect in Mode 3. Default: None url (str | None): Target page URL. Required in Mode 3. Auto-extracted from campaign configuration in Modes 1–2. Override only if a different URL than the campaign's default is needed. Default: None segment_description (str | None): Natural language description of the audience to filter by. Describes WHO the users are — not what they did. - Device + location: "mobile users from the US" - Browser + location: "Chrome users from New York" - Location negation: "people not from India" Default: None (all users) start_time (str | None): Start date in DD/MM/YYYY format (ISO YYYY-MM-DD also accepted). Example: "01/01/2024" Optional in Mode 3; defaults to today − 30 days when omitted. end_time (str | None): End date in DD/MM/YYYY format (ISO YYYY-MM-DD also accepted). Example: "31/01/2024" Optional in Mode 3; defaults to today when omitted. Returns: list[dict]: One or more analysis blocks: - {"type": "input_text", "text": "<markdown-formatted analysis>"} Contains sPath, click percentages, dead/rage/error metrics per element. - {"type": "input_image", "image_url": "<url>"} — Mode 3 only, if available. Extract sPath values and click metrics from the text block for Evidence lines. Raises: ValueError: If required parameters for the selected mode are missing (e.g. url absent in Mode 3, or campaign_id absent in Modes 1–2). ValueError: Invalid date format (expected DD/MM/YYYY or ISO YYYY-MM-DD). Examples: Mode 3 — single page, default last 30 days (no dates) get_heatmap_clicks_tool(url="https://example.com/pricing") Mode 3 — single page, explicit date range get_heatmap_clicks_tool( url="https://example.com/pricing", start_time="24/04/2026", end_time="23/05/2026" ) Mode 3 — single page, all users get_heatmap_clicks_tool( url="https://example.com/pricing", start_time="01/01/2024", end_time="31/01/2024" ) Mode 3 — single page, segmented get_heatmap_clicks_tool( url="https…
get_recording_data_tool
ChatGPTFetch session recording analysis for a VWO campaign or user segment — session narratives and page journey flows. [MODES] Mode 1 — All Variations: Pass campaign_id only (no variation_id). Returns session stories and journey data for every variation in the campaign, segmented by conversion status (CONVERTED / NOT_CONVERTED). Mode 2 — Single Variation: Pass campaign_id and variation_id. Returns session stories and journey data for that specific variation only. Mode 3 — Account / URL scope: Omit campaign_id. Use segment_description to scope by landing page, device, location, or visitor type. Required for URL-level friction questions with no campaign in context. [AGENT INSTRUCTIONS] When a specific variation or control is named by the user, variation_id is REQUIRED — never call this tool without it in that case. metric_id prefix conversion: if the user provides "M1", "M2", etc., strip the "M" and pass the integer (M1 → 1, M2 → 2). If no metric_id is provided, omit it — the tool uses the campaign's primary goal automatically. Do NOT call this tool when recording markdown is already present in the message — analyse the inline data directly (recording-analysis skill) instead. Do NOT use get_recording_events_tool unless the user explicitly asks for raw event sequences. VARIATION ID MAPPING (applied automatically by the tool internally): Control → pass 0 | Variation 1 → pass 1 | Variation N → pass N The tool adds +1 to map these to backend IDs — never add the offset yourself. Args: start_time (str | None): Start date in DD/MM/YYYY format. Example: "01/01/2024" Default: None (30 days ago) end_time (str | None): End date in DD/MM/YYYY format. Example: "31/01/2024" Default: None (today) limit (int): Maximum number of recordings to fetch. Default: 50 campaign_id (int | str | None): VWO campaign ID. Required for Mode 1 and Mode 2. Omit for Mode 3 (account- or URL-scoped analysis). Example: 988 Default: None variation_id (int | None): Variation to analyse. Uses the mapping above. Omit to analyse all variations (Mode 1). Must be paired with campaign_id — has no effect without it. Default: None metric_id (int | None): Goal metric ID. Pass as integer (1, 2, 3, etc.). If user provides "M1", "M2" format, strip the "M" prefix and pass the integer. Default: None (uses campaign's primary goal) segment_description (str | None): Natural language description of the audience to filter by. Describes WHO the users are and how they arrived — not what they did during the session. - Location: "people from India" - Device + location: "mobile users from US" - Browser + location: "Chrome users from New York" - Negation: "users NOT from India" - Visitor type + source: "new visitors from social media" - Landing page: "users who landed on pricing page" Note: "landed on X page" = first page in session, not a page visited mid-journey. Default: None (all users) minimum_recording_duration (int): Minimum session duration in seconds. Default: 0 Returns: str: Markdown-formatted analysis containing: - Session Stories: detailed narratives of user sessions for CONVERTED and NOT_CONVERTED users per variation - Page Journey Data: hierarchical navigation flows showing the sequence of pages visited with visit counts (e.g. "1-homepage.com → 2-product.com → 3-checkout.com") Raises: ValueError: If campaign_id is invalid or the date range returns no data. Widen the date range or verify the campaign_id and retry. Examples: Mode 1 — all variations in a campaign get_recording_data_tool( campaign_id=988, start_time="01/01/2024", end_time="31/01/2024", limit=50 ) Mode 2 — Control only get_recording_data_tool( campaign_id=988, variation_id=0, start_time="01/01/2024", end_time="31/01/2024" ) Mode 2 — Variation 1, mobile users only get_recording_data_tool( campaign_id=988, variation_id=1, segment_description="mobile users from US", start_time="01/01/2024", end_time="31/01/2024" ) Mode 3 — URL-scoped friction (no campaign_id) get_recording_data_tool( segment_description="users who landed on https://example.com/pricing", start_time="01/01/2024", end_time="31/01/2024" )
get_recording_data_tool
ChatGPTFetch session recording analysis for a VWO campaign or user segment — session narratives and page journey flows. [MODES] Mode 1 — All Variations: Pass campaign_id only (no variation_id). Returns session stories and journey data for every variation in the campaign, segmented by conversion status (CONVERTED / NOT_CONVERTED). Mode 2 — Single Variation: Pass campaign_id and variation_id. Returns session stories and journey data for that specific variation only. Mode 3 — Account / URL scope: Omit campaign_id. Use segment_description to scope by landing page, device, location, or visitor type. Required for URL-level friction questions with no campaign in context. [AGENT INSTRUCTIONS] When a specific variation or control is named by the user, variation_id is REQUIRED — never call this tool without it in that case. metric_id prefix conversion: if the user provides "M1", "M2", etc., strip the "M" and pass the integer (M1 → 1, M2 → 2). If no metric_id is provided, omit it — the tool uses the campaign's primary goal automatically. Do NOT call this tool when recording markdown is already present in the message — analyse the inline data directly (recording-analysis skill) instead. Do NOT use get_recording_events_tool unless the user explicitly asks for raw event sequences. VARIATION ID MAPPING (applied automatically by the tool internally): Control → pass 0 | Variation 1 → pass 1 | Variation N → pass N The tool adds +1 to map these to backend IDs — never add the offset yourself. Args: start_time (str | None): Start date in DD/MM/YYYY format. Example: "01/01/2024" Default: None (30 days ago) end_time (str | None): End date in DD/MM/YYYY format. Example: "31/01/2024" Default: None (today) limit (int): Maximum number of recordings to fetch. Default: 50 campaign_id (int | str | None): VWO campaign ID. Required for Mode 1 and Mode 2. Omit for Mode 3 (account- or URL-scoped analysis). Example: 988 Default: None variation_id (int | None): Variation to analyse. Uses the mapping above. Omit to analyse all variations (Mode 1). Must be paired with campaign_id — has no effect without it. Default: None metric_id (int | None): Goal metric ID. Pass as integer (1, 2, 3, etc.). If user provides "M1", "M2" format, strip the "M" prefix and pass the integer. Default: None (uses campaign's primary goal) segment_description (str | None): Natural language description of the audience to filter by. Describes WHO the users are and how they arrived — not what they did during the session. - Location: "people from India" - Device + location: "mobile users from US" - Browser + location: "Chrome users from New York" - Negation: "users NOT from India" - Visitor type + source: "new visitors from social media" - Landing page: "users who landed on pricing page" Note: "landed on X page" = first page in session, not a page visited mid-journey. Default: None (all users) minimum_recording_duration (int): Minimum session duration in seconds. Default: 0 Returns: str: Markdown-formatted analysis containing: - Session Stories: detailed narratives of user sessions for CONVERTED and NOT_CONVERTED users per variation - Page Journey Data: hierarchical navigation flows showing the sequence of pages visited with visit counts (e.g. "1-homepage.com → 2-product.com → 3-checkout.com") Raises: ValueError: If campaign_id is invalid or the date range returns no data. Widen the date range or verify the campaign_id and retry. Examples: Mode 1 — all variations in a campaign get_recording_data_tool( campaign_id=988, start_time="01/01/2024", end_time="31/01/2024", limit=50 ) Mode 2 — Control only get_recording_data_tool( campaign_id=988, variation_id=0, start_time="01/01/2024", end_time="31/01/2024" ) Mode 2 — Variation 1, mobile users only get_recording_data_tool( campaign_id=988, variation_id=1, segment_description="mobile users from US", start_time="01/01/2024", end_time="31/01/2024" ) Mode 3 — URL-scoped friction (no campaign_id) get_recording_data_tool( segment_description="users who landed on https://example.com/pricing", start_time="01/01/2024", end_time="31/01/2024" )
get_recording_data_tool
ChatGPTFetch session recording analysis for a VWO campaign or user segment — session narratives and page journey flows. [MODES] Mode 1 — All Variations: Pass campaign_id only (no variation_id). Returns session stories and journey data for every variation in the campaign, segmented by conversion status (CONVERTED / NOT_CONVERTED). Mode 2 — Single Variation: Pass campaign_id and variation_id. Returns session stories and journey data for that specific variation only. Mode 3 — Account / URL scope: Omit campaign_id. Use segment_description to scope by landing page, device, location, or visitor type. Required for URL-level friction questions with no campaign in context. [AGENT INSTRUCTIONS] When a specific variation or control is named by the user, variation_id is REQUIRED — never call this tool without it in that case. metric_id prefix conversion: if the user provides "M1", "M2", etc., strip the "M" and pass the integer (M1 → 1, M2 → 2). If no metric_id is provided, omit it — the tool uses the campaign's primary goal automatically. Do NOT call this tool when recording markdown is already present in the message — analyse the inline data directly (recording-analysis skill) instead. Do NOT use get_recording_events_tool unless the user explicitly asks for raw event sequences. VARIATION ID MAPPING (applied automatically by the tool internally): Control → pass 0 | Variation 1 → pass 1 | Variation N → pass N The tool adds +1 to map these to backend IDs — never add the offset yourself. Args: start_time (str | None): Start date in DD/MM/YYYY format. Example: "01/01/2024" Default: None (30 days ago) end_time (str | None): End date in DD/MM/YYYY format. Example: "31/01/2024" Default: None (today) limit (int): Maximum number of recordings to fetch. Default: 50 campaign_id (int | str | None): VWO campaign ID. Required for Mode 1 and Mode 2. Omit for Mode 3 (account- or URL-scoped analysis). Example: 988 Default: None variation_id (int | None): Variation to analyse. Uses the mapping above. Omit to analyse all variations (Mode 1). Must be paired with campaign_id — has no effect without it. Default: None metric_id (int | None): Goal metric ID. Pass as integer (1, 2, 3, etc.). If user provides "M1", "M2" format, strip the "M" prefix and pass the integer. Default: None (uses campaign's primary goal) segment_description (str | None): Natural language description of the audience to filter by. Describes WHO the users are and how they arrived — not what they did during the session. - Location: "people from India" - Device + location: "mobile users from US" - Browser + location: "Chrome users from New York" - Negation: "users NOT from India" - Visitor type + source: "new visitors from social media" - Landing page: "users who landed on pricing page" Note: "landed on X page" = first page in session, not a page visited mid-journey. Default: None (all users) minimum_recording_duration (int): Minimum session duration in seconds. Default: 0 Returns: str: Markdown-formatted analysis containing: - Session Stories: detailed narratives of user sessions for CONVERTED and NOT_CONVERTED users per variation - Page Journey Data: hierarchical navigation flows showing the sequence of pages visited with visit counts (e.g. "1-homepage.com → 2-product.com → 3-checkout.com") Raises: ValueError: If campaign_id is invalid or the date range returns no data. Widen the date range or verify the campaign_id and retry. Examples: Mode 1 — all variations in a campaign get_recording_data_tool( campaign_id=988, start_time="01/01/2024", end_time="31/01/2024", limit=50 ) Mode 2 — Control only get_recording_data_tool( campaign_id=988, variation_id=0, start_time="01/01/2024", end_time="31/01/2024" ) Mode 2 — Variation 1, mobile users only get_recording_data_tool( campaign_id=988, variation_id=1, segment_description="mobile users from US", start_time="01/01/2024", end_time="31/01/2024" ) Mode 3 — URL-scoped friction (no campaign_id) get_recording_data_tool( segment_description="users who landed on https://example.com/pricing", start_time="01/01/2024", end_time="31/01/2024" )
update_campaign_config
ChatGPTUpdate control URL for a split URL campaign or URLs for an A/B test, variations or goals for a VWO campaign. The control_url parameter is only applicable for split URL campaigns. To update the URLs for an A/B test, use the urls_to_include parameter. To update the name of the campaign, use the campaign_name parameter. If the user asks to update control URL/URLs for an A/B test campaign, use the urls_to_include parameter. If the user asks to update the URLs for a split URL campaign, use the control_url parameter. IMPORTANT: - This is a REPLACE operation. Include ALL items you want to keep. Items not included will be removed. If campaign_name is not provided, the campaign name will not be updated. - Use fetch_campaign_report_tool first to get existing variation/goal IDs for the campaign. - Do not make changes to a campaign if it is RUNNING. You can ONLY make changes to campaigns that are not live. Args: campaign_id: The campaign ID. campaign_name: The new name of the campaign. control_url: The new control URL of the campaign. Only use for split URL campaigns. variations: List of variations. For each variation: - {"id": 1} - Keep unchanged - {"id": 2, "name": "New Name"} - Update name - {"id": 2, "changes": "js code..."} - Update A/B test code - {"id": 2, "urls": [{"type": "url", "value": "https://..."}]} - Update Split URL - {"id": 2, "percentSplit": 50} - Update traffic % goals: List of goals. For each goal: - {"id": 1} - Keep existing goal unchanged - {"metricId": 789, "isPrimary": false} - Add new secondary goal - {"metricId": 123, "isPrimary": true} - Add/set as primary goal urls_to_include: The new control URL/URLs for the A/B test. This can contain multiple URLs. URLs can also contain wildcards. Example: https://example.com/pricing/ start_time: Schedule the campaign to start at this time (GMT). Format: "dd/mm/yy HH:MM" (e.g. "28/04/26 11:00"). pause_time: Schedule the campaign to pause at this time (GMT). Format: "dd/mm/yy HH:MM" (e.g. "30/04/26 23:59"). run_till: Pause the campaign after it reaches this many visitors. Returns: Success message. Examples: 1. Update variation 2's code, keep variation 1: variations=[{"id": 1}, {"id": 2, "changes": "document.body.style.color='red';"}] 2. Update control URL: control_url="https://new.com" 3. Update Split URL for variation 2: variations=[{"id": 1}, {"id": 2, "urls": [{"type": "url", "value": "https://new.com"}]}] 4. Keep goals 1,2 and add new secondary goal: goals=[{"id": 1}, {"id": 2}, {"metricId": 789, "isPrimary": false}] 5. Change primary goal to metric 123: goals=[{"id": 1}, {"metricId": 123, "isPrimary": true}] 6. Update A/B test control URLs: urls_to_include=["https://example.com/pricing", "https://example.com/checkout/"] 7. Schedule campaign to start and auto-pause: start_time="01/05/26 09:00", pause_time="15/05/26 18:00" 8. Pause campaign after 500 visitors: run_till=500
update_campaign_config
ChatGPTUpdate control URL for a split URL campaign or URLs for an A/B test, variations or goals for a VWO campaign. The control_url parameter is only applicable for split URL campaigns. To update the URLs for an A/B test, use the urls_to_include parameter. To update the name of the campaign, use the campaign_name parameter. If the user asks to update control URL/URLs for an A/B test campaign, use the urls_to_include parameter. If the user asks to update the URLs for a split URL campaign, use the control_url parameter. IMPORTANT: - This is a REPLACE operation. Include ALL items you want to keep. Items not included will be removed. If campaign_name is not provided, the campaign name will not be updated. - Use fetch_campaign_report_tool first to get existing variation/goal IDs for the campaign. - Do not make changes to a campaign if it is RUNNING. You can ONLY make changes to campaigns that are not live. Args: campaign_id: The campaign ID. campaign_name: The new name of the campaign. control_url: The new control URL of the campaign. Only use for split URL campaigns. variations: List of variations. For each variation: - {"id": 1} - Keep unchanged - {"id": 2, "name": "New Name"} - Update name - {"id": 2, "changes": "js code..."} - Update A/B test code - {"id": 2, "urls": [{"type": "url", "value": "https://..."}]} - Update Split URL - {"id": 2, "percentSplit": 50} - Update traffic % goals: List of goals. For each goal: - {"id": 1} - Keep existing goal unchanged - {"metricId": 789, "isPrimary": false} - Add new secondary goal - {"metricId": 123, "isPrimary": true} - Add/set as primary goal urls_to_include: The new control URL/URLs for the A/B test. This can contain multiple URLs. URLs can also contain wildcards. Example: https://example.com/pricing/ start_time: Schedule the campaign to start at this time (GMT). Format: "dd/mm/yy HH:MM" (e.g. "28/04/26 11:00"). pause_time: Schedule the campaign to pause at this time (GMT). Format: "dd/mm/yy HH:MM" (e.g. "30/04/26 23:59"). run_till: Pause the campaign after it reaches this many visitors. Returns: Success message. Examples: 1. Update variation 2's code, keep variation 1: variations=[{"id": 1}, {"id": 2, "changes": "document.body.style.color='red';"}] 2. Update control URL: control_url="https://new.com" 3. Update Split URL for variation 2: variations=[{"id": 1}, {"id": 2, "urls": [{"type": "url", "value": "https://new.com"}]}] 4. Keep goals 1,2 and add new secondary goal: goals=[{"id": 1}, {"id": 2}, {"metricId": 789, "isPrimary": false}] 5. Change primary goal to metric 123: goals=[{"id": 1}, {"metricId": 123, "isPrimary": true}] 6. Update A/B test control URLs: urls_to_include=["https://example.com/pricing", "https://example.com/checkout/"] 7. Schedule campaign to start and auto-pause: start_time="01/05/26 09:00", pause_time="15/05/26 18:00" 8. Pause campaign after 500 visitors: run_till=500
update_campaign_config
ChatGPTUpdate control URL for a split URL campaign or URLs for an A/B test, variations or goals for a VWO campaign. The control_url parameter is only applicable for split URL campaigns. To update the URLs for an A/B test, use the urls_to_include parameter. To update the name of the campaign, use the campaign_name parameter. If the user asks to update control URL/URLs for an A/B test campaign, use the urls_to_include parameter. If the user asks to update the URLs for a split URL campaign, use the control_url parameter. IMPORTANT: - This is a REPLACE operation. Include ALL items you want to keep. Items not included will be removed. If campaign_name is not provided, the campaign name will not be updated. - Use fetch_campaign_report_tool first to get existing variation/goal IDs for the campaign. - Do not make changes to a campaign if it is RUNNING. You can ONLY make changes to campaigns that are not live. Args: campaign_id: The campaign ID. campaign_name: The new name of the campaign. control_url: The new control URL of the campaign. Only use for split URL campaigns. variations: List of variations. For each variation: - {"id": 1} - Keep unchanged - {"id": 2, "name": "New Name"} - Update name - {"id": 2, "changes": "js code..."} - Update A/B test code - {"id": 2, "urls": [{"type": "url", "value": "https://..."}]} - Update Split URL - {"id": 2, "percentSplit": 50} - Update traffic % goals: List of goals. For each goal: - {"id": 1} - Keep existing goal unchanged - {"metricId": 789, "isPrimary": false} - Add new secondary goal - {"metricId": 123, "isPrimary": true} - Add/set as primary goal urls_to_include: The new control URL/URLs for the A/B test. This can contain multiple URLs. URLs can also contain wildcards. Example: https://example.com/pricing/ start_time: Schedule the campaign to start at this time (GMT). Format: "dd/mm/yy HH:MM" (e.g. "28/04/26 11:00"). pause_time: Schedule the campaign to pause at this time (GMT). Format: "dd/mm/yy HH:MM" (e.g. "30/04/26 23:59"). run_till: Pause the campaign after it reaches this many visitors. Returns: Success message. Examples: 1. Update variation 2's code, keep variation 1: variations=[{"id": 1}, {"id": 2, "changes": "document.body.style.color='red';"}] 2. Update control URL: control_url="https://new.com" 3. Update Split URL for variation 2: variations=[{"id": 1}, {"id": 2, "urls": [{"type": "url", "value": "https://new.com"}]}] 4. Keep goals 1,2 and add new secondary goal: goals=[{"id": 1}, {"id": 2}, {"metricId": 789, "isPrimary": false}] 5. Change primary goal to metric 123: goals=[{"id": 1}, {"metricId": 123, "isPrimary": true}] 6. Update A/B test control URLs: urls_to_include=["https://example.com/pricing", "https://example.com/checkout/"] 7. Schedule campaign to start and auto-pause: start_time="01/05/26 09:00", pause_time="15/05/26 18:00" 8. Pause campaign after 500 visitors: run_till=500
update_campaign_status
ChatGPTStart or pause a VWO campaign/test. This tool starts or pauses a VWO campaign with the given campaign ID. This is used to change the status of a campaign. Args: campaign_id: The ID of the campaign to start or pause. status: The status to set the campaign to. Valid values: RUNNING, PAUSED
update_campaign_status
ChatGPTStart or pause a VWO campaign/test. This tool starts or pauses a VWO campaign with the given campaign ID. This is used to change the status of a campaign. Args: campaign_id: The ID of the campaign to start or pause. status: The status to set the campaign to. Valid values: RUNNING, PAUSED
update_campaign_status
ChatGPTStart or pause a VWO campaign/test. This tool starts or pauses a VWO campaign with the given campaign ID. This is used to change the status of a campaign. Args: campaign_id: The ID of the campaign to start or pause. status: The status to set the campaign to. Valid values: RUNNING, PAUSED