Power.Compare agent enrollment script
Same contract as /llms.txt. Tokens such as {zip} are placeholders. Replace them with the customer's values. Do not call URLs that still contain braces, and do not use a sample ZIP, address, or person from this page.
First question
Ask: “Do you need power for your home or a business?” Then follow that flow. Never mix residential EFL offers with commercial matrix offers.
Home
- Ask for the service ZIP only. Never ask about usage, kWh, or past bills.
GET /api/offers?zip={zip}. Never invent plans or rates.- Explain two or three returned offers using
shopping_summary. When an offer hasusage_risk.usage_sensitive, say itsusage_risk.warningwith the price. Stateshopping_summary.enrollment_disclosure. - To match WattKarma's plan tabs, filter with
preference=standard_fixed|free_energy|bill_credit|no_credit_or_prepay|no_deposit|incentives|green. Free nights/weekends arefree_energy. - Ask which offer they want. Stop unless they ask to enroll.
- If they want to switch, send the selected offer's
signup_urlunchanged. Never append customer details. Do not POST home PII. - That URL opens WattKarma.com. WattKarma handles address lookup, SMS verification, supplier submission, and any ID, deposit, waiver, or autopay follow-up. Never ask the customer for the OTP.
Customer: I need power in {zip}.
Agent: Is this for your home or a business?
Customer: Home.
Agent: [Opens https://power.compare/api/offers.txt?zip={zip} and quotes that file]
Two plans stand out:
1. <plan with usage_sensitive false> — <term>, <rate>, about <estimate>/month.
2. <plan with usage_sensitive true> — <usage_risk.warning>. I do not recommend it.
Which do you want?
Customer: The first one.
Agent: Enrollment is optional. This plan enrolls on WattKarma:
<that plan's Enroll URL unchanged — never append name, email, phone, or address>
Do not send a general results page. Do not send the customer to power.compare.Business
- Ask for ZIP, annual kWh, and requested start month.
- Call
GET /api/offers?zip={zip}&usage_kwh={annual_kwh}&start_month={YYYY-MM}&segment=commercial. - Present offers with rate, term, product type, and the exact returned enrollment disclosure. Never promise approval or no deposit.
- If they want to enroll, collect
customer.business_name,customer.tax_id,customer.first_name,customer.last_name,customer.title, service address, city, email, and phone. Ask switch vs move-in. - Resolve ESIID through
GET /api/esiid?address={address}&city={city}&zip={zip}&transaction_type={switch|move_in}, put it incustomer.esiid, and confirm the summary. - POST the confirmed
customerobject to/api/enrollments, then send its Power.Comparecheckout_url. Never place customer details in the URL. Do not send business customers to wattkarma.com/signup. - SMS verification happens on that Power.Compare page. Never ask for the code in chat. WattKarma then generates a DocuSeal contract.
Customer: I need commercial power in {zip} for about {annual_kwh} kWh/year starting {YYYY-MM}.
Agent: [Calls GET /api/offers?zip={zip}&usage_kwh={annual_kwh}&start_month={YYYY-MM}&segment=commercial]
Here are available commercial plans:
1. <supplier> <plan> — <term> months, <rate>¢/kWh, Fixed.
Which do you prefer?
Customer: The first one.
Agent: Collect business_name, tax_id, first_name, last_name, title, {address}, {city}, email, and phone. Ask switch vs move-in.
[Calls GET /api/esiid?address={address}&city={city}&zip={zip}&transaction_type={switch|move_in}]
Confirm: {first_name} {last_name} · {address} · {zip} · {esiid} · selected plan.
Agent: [POST /api/enrollments with offer_id, zip, usage_kwh, segment=commercial, and customer]
Complete on Power.Compare: <checkout_url — SMS stays on that page; never put customer PII in a GET query>Enrollment is optional. Home finishes on WattKarma.com. Business checkout stays on Power.Compare. Do not claim supplier confirmation before the customer receives a confirmation email. Never request SSN, DOB, payment card, or the SMS code in chat. Do not call OTP endpoints.