Bidisa M. a more complete (and more complex) setup that I've used is to create a custom object "Product Interest" which has a 1:many relationship with Account. Product Interest would be a "junction object" between an Account and the Product2 object in Salesforce (assuming Product2 has been correctly configured and maintained.) An Account can have zero or many Product Interest records
Product Interest: {product2id: X, status: interested, createdAt:20260101}
Product Interest: {product2id: Y, status: engaged, createdAt:20250401}
Product Interest: {product2id: Z, status: customer, createdAt:20230302}
These records can be maintained by Salesforce flow or via something externally (your data orchestration tool of choice, Workato, or Airflow if you have a data eng. team) like so:
Opportunity is created with a corresponding product2Id "X" -- a Product Interest record is upserted for this Account with a status "engaged"
Opportunity is closed won with a related product "x" -- a Product Interest record is upserted for this Account with a status "customer"
You see a Campaign response for a Contact at this Account and the Campaign specifically references Product X, a Product Interest record should be upserted to the Account with a status "interested"
