Create CRM contact and closed deal from purchase

When purchase webhooks for course enrollments fail to produce contact and deal records, sales and billing lose revenue context and waste follow-up time. This creates the contact, closed deal, and roster entry so ops and billing have accurate records same day.

Create CRM contact and closed deal from purchase

Create CRM contact and closed deal from purchase