careCycle
Reference

Book of Business Field Reference

Every field, format, status, and matching rule for Medicare and ACA customer and policy imports and syncs.

This is the full field and matching reference for getting your book of business into careCycle. For the step-by-step walkthrough, see Import Your Book of Business.

Everything works as an upsert: if a matching record is already there, it gets updated, and if not, a new one is created. What counts as "matching" depends on how the data comes in, so CSV imports and API syncs are split out below.

How Matching Works

This is Settings > CRM Settings > Import Contacts, whether you map the columns yourself or use the import assistant.

Customers are matched by phone number. Nothing else (MBI, your system's ID, name, or date of birth) is used to match a customer on a CSV. So if a member's phone number changed since your last import, you'll get a second record.

Policies are matched in two passes:

  1. IDs first. careCycle checks every policy ID you sent: carrierAssignedPolicyId, ffmApplicationId, policyNumber, applicationId, healthSherpaPolicyId, and sunFireEnrollmentCode. The carrier's policy ID is checked against both carrierAssignedPolicyId and policyNumber, since exports put it in either one. If the IDs point at more than one policy, or disagree with each other, that row's policy is skipped rather than guessed.
  2. Then content. policyType + planCode + effectiveDate. If one of the last two is missing, policyType + planCode or policyType + effectiveDate.

For ACA, if you sent a policy ID and nothing matched it, careCycle creates a new policy instead of falling back to the content match.

Customer matching

  1. mbiNumber first (dashes and capitalization don't matter).
  2. firstName + lastName + dateOfBirth + phoneNumber if there's no MBI match. If a customer matches this way, their MBI gets updated.

Policy matching

  1. sunFireEnrollmentCode first, if you sent one.
  2. planCode + effectiveDate if there's no SunFire match.

When a new policy is created, any of that customer's existing policies of the same policy type with an effective date more than a year ago are automatically terminated.

Customer matching

  1. healthSherpaCustomerId
  2. externalId (your system's customer ID)
  3. carrierAssignedCustomerId
  4. firstName + lastName + dateOfBirth + phoneNumber

Policy matching

  1. healthSherpaPolicyId
  2. carrierAssignedPolicyId

When a new policy is created, any of that customer's existing policies with an effective date more than a year ago are automatically terminated. policyType is always set to ACA.

Medicare Plan Codes

For Medicare Advantage and Part D policies, planCode should be a CMS contract-style code. Dashes are optional in the import or sync payload, and careCycle stores the canonical dashed form.

policyTypeAccepted contract prefixesAccepted examplesStored as
MA / MAPDH or RH1234-001-000, H1234001000, H1234-001H1234-001-000
PDPS, H, R, E, or XS1234-001-000, S1234001000, S1234-001S1234-001-000
MSCarrier-specificPlan G, Aetna Plan NStored as provided, except trailing -null cleanup

For Medicare Advantage and Part D, the final three-digit segment is optional. If you send contract+plan only (for example H3146-036), careCycle infers the segment from CMS reference data and stores the complete code: it uses the plan's only segment when there is exactly one, defaults to -000 for a non-segmented plan, and rejects the record only when the plan has multiple segments (in which case include the segment to disambiguate).

CSV Import Options

A few settings only exist when you import a CSV:

  • Customer status (required for every import): Lead (new potential customer), Active (customer with active coverage), or Inactive (legacy customer without active coverage).
  • Policy type: if your file has policy columns but no policyType column, you pick one for the whole file. You can also set a Fallback policy type for rows that leave it blank.
  • Add to campaign (optional): adds everyone in the file to a campaign. Only do this with a campaign that's already active. See Add Customers to a Campaign.
  • Resolve Data Warnings: set default values for fields that are missing.
  • Files can be up to 100MB.

The only column a CSV strictly needs is the phone number. The required fields below are what the API syncs require, and what you'll want in your CSV anyway.

Required Fields

Customer Fields

These fields are required for all books.

FieldFormatExample
firstName1-255 charactersMargaret
lastName1-255 charactersThompson
phoneNumber+1XXXXXXXXXX, XXXXXXXXXX, or (XXX) XXX-XXXX+13125551234

Medicare Customer Fields

FieldFormatExample
mbiNumberMedicare Beneficiary Identifier1EG4-TE5-MK73

TCPA Compliance Fields

At least one of these needs to be on every record. Without a time zone or postal code, we can't tell what time it is for the member, so campaigns skip them.

FieldFormatExample
postalCode5 digits60614
timezoneIANA time zone or abbreviationAmerica/Chicago

Medicare Policy Fields

FieldFormatExample
policyTypeMA, MAPD, MS, or PDPMAPD
carrierName1-255 charactersHumana
planName1-255 charactersHumana Gold Plus HMO
planCodeCMS contract-style code for MA, MAPD, and PDP; carrier-specific for MSH1036-228
effectiveDateMM/DD/YYYY, MM-DD-YYYY, or YYYY-MM-DD01/01/2026
enrollmentDateMM/DD/YYYY, MM-DD-YYYY, or YYYY-MM-DD10/22/2025
aorNpnAgent of Record NPN, max 50 characters8245019
writingAgentNpnWriting Agent NPN, max 50 characters8245019

ACA Policy Fields

The ACA sync sets policyType to ACA for you. On a CSV, include a policyType column or pick ACA as the file's policy type when you import.

FieldFormatExample
carrierNameMax 255 charactersBlue Shield of California
planNameMax 255 charactersBlue Shield Silver 70 PPO
planCodeMax 255 characters93689CA0620004
effectiveDateMM/DD/YYYY, MM-DD-YYYY, or YYYY-MM-DD01/01/2026
enrollmentDateMM/DD/YYYY, MM-DD-YYYY, or YYYY-MM-DD12/10/2025
aorNpnAgent of Record NPN, max 50 characters8245019
writingAgentNpnWriting Agent NPN, max 50 characters8245019

You don't have to send these, but you really should. They make your campaigns smarter, your task automations more useful, and give Cora more to work with on a call.

  • Customer details: externalId, email, dateOfBirth, address, city, state, language
  • Communication preferences: doNotCall, doNotSMS, doNotEmail, doNotMail
  • Policy details: policySubType, policyNumber, applicationId, status (see Policy Statuses), electionPeriod, writtenAs
  • ACA-specific: exchangeStatus, metalLevel, usingSubsidy, subsidyAmount, grossPremium, netPremium, paidThroughDate, gracePeriodStartDate, healthSherpaPolicyId
  • Commission and financial: monthlyPremium, deductible, outOfPocketMax, initialCommission, renewalCommission, policyLives
  • Ancillary premium payments: premiumMode, paymentMode, paymentMethod
  • Underwriting (life and final expense): heightInches, weightPounds, smokerStatus
  • Final expense and life policy details: deathBenefit, coverageLevel, draftDay, term, maturityDate, riders

Underwriting Fields

Carriers ask for these on life and final expense applications. Supplying them up front means an agent does not have to collect them mid-call.

FieldTypeNotes
heightInchesintegerTotal height in inches, so 6'0" is 72. Not a formatted string.
weightPoundsintegerPounds.
smokerStatusbooleanOmit or send null when unknown. false means confirmed non-smoker, which is not the same answer as unknown.

Final Expense Policy Fields

FieldAccepted valuesExample
deathBenefitdecimal string25000.00
coverageLevelImmediate, Graded/ROP, Modified Level, Standard Level, Preferred LevelImmediate
draftDayinteger 1 to 3115

deathBenefit is the field agents often call "face value"; there is one field for both names. draftDay is the day of the month the premium drafts, not a date. Coverage level names carry age bands at most carriers (Immediate and Graded/ROP typically apply to ages 0 to 79); the field stores the level only.

Ancillary Premium Payment Fields

These fields apply to policy types outside MA, MAPD, PDP, MS, and ACA.

FieldAccepted valuesExample
premiumModeMonthly, Quarterly, Semi-Annual, AnnualMonthly
paymentModeACH, Credit/ debit card, Direct billACH
paymentMethodCredit Card, Debit Card, Check, ACH / Bank Draft, Money Order, Cash, OtherACH / Bank Draft

CSV imports normalize common capitalization and formatting variants to these canonical values. API requests must use one of the accepted values shown above.

Communication preferences are enforced for you. Contacts marked do-not-call or do-not-SMS are automatically kept out of future campaign calls or texts.

Policy Statuses

status takes one of these values. Statuses drive a lot: automations like Win-Backs and Rapid Disenrollment Save fire when a policy's status changes, and campaign filters use them too. See Automation Triggers and Filters.

StatusWhat it means
ActiveIn force
PlacedIssued by the carrier, not in force yet (future effective date)
PendingSubmitted, waiting on the carrier
Pending EffectuationEnrolled, not active yet
Pending FollowupNeeds something from the member (like DMI or verification)
SuspendedGrace period or temporary non-payment
CancelledThe member ended it
TerminatedThe carrier ended it
Future CancelScheduled to end (for example, an AOR change)
DeceasedThe member passed away
Not ApprovedThe application was denied

Other Accepted Values

FieldAccepted values
policyTypeMA, MAPD, PDP, MS, ACA, LTC, Individual Health, FE, Annuity, Life, Dental, Vision, Hospital Indemnity, Cancer, Critical Illness, Accident, Group, Home Health Care
electionPeriodIEP, AEP, OEP, SEP, ICEP, MA-OEP
writtenAsNew Business, Like Plan Change, Unlike Plan Change, Reinstatement, Rewrite
metalLevelCatastrophic, Bronze, Expanded Bronze, Silver, Gold, Platinum
exchangeStatusFFM, SBM, SBM FP, OFF EXCHANGE, PRIVATE EXCHANGE, UNKNOWN

The Medicare API sync only accepts MA, MAPD, MS, and PDP, and the ACA sync only ACA. CSV imports take any policy type.

More Fields You Can Import

The importer accepts a lot more than the fields above. A few worth knowing:

  • More customer details: middleName, preferredName, suffix, salutation, gender, address2, county, ethnicity
  • Medicare and Medicaid: medicarePartADate, medicarePartBDate, medicareCard, medicaid, medicaidNumber
  • Current coverage: existingCoverage, existingCoverageCarrier, existingCoveragePlanName
  • Household and income (ACA): householdIncome, filingStatus, dependentCount, annualIncome, subsidyEligible, desiredCoverageStartDate
  • Other: veteran, vaNumber, agentName, agentNpn
  • Policy IDs: carrierAssignedPolicyId, ffmApplicationId, sunFireEnrollmentCode, healthSherpaPolicyId

Anything that doesn't have a standard field can go into a custom field, for customers or policies.

Full Sync Field Coverage

For complete sync field coverage via the API, see:

On this page