Economic Intelligence

Update Recommendation

Updates a recommendation status, records feedback, or both. Send sentiment to rate it. Include status: superseded to retire it and request replacements; a rating alone leaves its status unchanged.

patch/economic_intelligence/{id}

Request body

inputstring

What you want the replacement recommendation for, in your own words. Up to 1000 characters. Sent when superseding, it directs the generation that replaces the rejected recommendation.

sentiment'positive' | 'negative'

A signed-in user can rate a recommendation as positive or negative. Can be sent alone or together with status.

status'executed' | 'superseded'

Use executed to record approval, or superseded to reject the recommendation.

user_feedbackstring

An optional explanation of the rating or rejection. Negative feedback informs replacement recommendations.

Example request

{
  "input": "Focus on returning buyers instead",
  "sentiment": "positive",
  "status": "superseded",
  "user_feedback": "Wrong audience"
}

Response

recommendation superseded

account_idstring nullable required

ID of the account this recommendation is for, prefixed biz_, or null for personal onboarding.

action_typestring nullable required

Type of action recommended, or null when no type is assigned. New values may be added; handle unknown types gracefully.

ai_chat_idstring nullable required

The chat to resume after its initial message is accepted, or null before a chat is ready.

created_atstring nullable required

When the recommendation was created, as an ISO 8601 timestamp, or null for an unsaved recommendation.

executed_atstring nullable required

When the recommendation was approved, as an ISO 8601 timestamp, or null if it has not been approved.

idstring required

Recommendation ID, prefixed reca_, or create_business for an unsaved setup recommendation. Authenticate and list again before executing an unsaved recommendation.

inputstring nullable required

What you requested, in your own words, or null for recommendations generated without your input.

promptstring nullable required

Step-by-step instructions for Whop AI, or null when no instructions are available.

reasoningstring nullable required

Evidence and metrics supporting the recommendation, or null when no reasoning was provided.

sentiment'positive' | 'negative' | 'null' nullable required

How the user rated this recommendation, or null if they have not rated it

status'queued' | 'pending' | 'ready' | 'executed' | 'superseded' required

queued when awaiting generation; pending while generating; ready when available for approval; executed when approved; superseded when rejected or replaced.

superseded_atstring nullable required

When the recommendation was rejected or replaced, as an ISO 8601 timestamp, or null if neither has occurred.

target_urlstring nullable

Website URL selected for pixel setup, or null when no website was captured for this recommendation.

titlestring nullable required

Recommended action and its expected benefit, or null until generated.

user_feedbackstring nullable required

The user's written feedback, or null if they have not provided any.

Example response

{
  "account_id": "biz_xxxxxxxxxxxxxx",
  "action_type": "scale_winning_ads",
  "created_at": "2026-01-01T12:00:00.000Z",
  "executed_at": "2026-01-01T12:00:00.000Z",
  "expected_tool_calls": [
    {
      "description": "Increase the summer campaign budget",
      "tool_name": "updateAdCampaign"
    }
  ],
  "id": "reca_xxxxxxxxxxxxxx",
  "input": "more sales from ads",
  "prompt": "Create a 20% off promo code for my members.",
  "reasoning": "Capped 9 of 14 days.",
  "sentiment": "positive",
  "status": "ready",
  "superseded_at": "2026-01-01T12:00:00.000Z",
  "target_url": "https://example.com/join",
  "title": "Move $180 from 3 dead ad groups into BATCH#3, +1.7x return"
}

Changes