[{"data":1,"prerenderedAt":59},["ShallowReactive",2],{"docs:rendered-article:\u002Fdocs\u002Fpublic\u002Fguides\u002Fmissing-and-empty-fields":3},{"path":4,"slug":5,"title":8,"description":9,"category":6,"categoryLabel":10,"order":11,"status":12,"family":13,"subfamily":13,"content":14,"html":15,"examplesHtml":16,"excerpt":17,"readTimeMinutes":18,"headings":19,"examplesHeadings":52,"lastUpdated":13,"endpointId":13,"requiredFlag":13,"relatedArticlePaths":53,"badge":13},"\u002Fdocs\u002Fguides\u002Fmissing-and-empty-fields",[6,7],"guides","missing-and-empty-fields","Missing and empty profile fields","Tell an unknown value from a real zero, an empty list or data that Reverse Contact does not collect.","Guides",42,"new",null,"\nA blank field does not automatically mean zero. It can mean the result did not include that field, the source supplied no usable value, the returned collection is empty, or Reverse Contact does not collect that kind of data at all.\n\nKeep these cases separate in Ask answers, Lists, exports and your own systems. Reverse Contact never turns an unknown value into a fact.\n\n## Check the result shape first\n\nDifferent lookups return different sets of fields. A light person result contains identity and current-role information. Photos, connection counts and work history belong to a full person profile, so those keys can be absent from a light result.\n\nWhen you use [Enrich profile](\u002Fdocs\u002Fendpoints\u002Fenrich-person), request a full profile for those fields and verify that the full shape was delivered. A missing key in the light shape says nothing about the person's source profile.\n\n## Read each empty-looking value correctly\n\n| What you receive | What you know | What you must not assume |\n| ---------------- | ------------- | ------------------------ |\n| A field is outside the result shape | This lookup did not return that field | The value is empty or zero |\n| `null` | No usable value was returned for this collected field | The exact reason, or that the value is `0` |\n| `[]` | The returned collection contains no entries | That entries exist elsewhere, or why none were returned |\n| `0` | The returned numeric value is zero | That another `null` or blank field also means zero |\n| No field exists for that kind of data | Reverse Contact does not collect it in profile enrichment | That a later refresh will add it |\n\nA `null` value carries no per-field reason code. The source may not provide the value, but the response does not prove whether it was omitted, unavailable at collection time or unusable for another reason. Preserve `null` as unknown unless another field or error explicitly explains it.\n\nUse a field's documented contract when it gives `null` a specific meaning. For example, `end: null` in an employment date range means that the position is current. Do not extend that meaning to unrelated fields.\n\n## Common fields\n\n### Connection count\n\n`connectionsCount` is a number or `null` on a full person profile. Preserve a returned `0` as zero and preserve `null` as unknown. Never store, display or average `null` as `0`.\n\nThe field is not part of a light person result. If Ask or a List has only the light shape, request the full profile before deciding that the count is unknown.\n\n### Profile photo\n\n`photoUrl` is a URL or `null` on a full person profile. A blank avatar can therefore mean that the full profile was not delivered or that the full result returned `null`. Neither case explains why a photo URL was unavailable.\n\n### Work history\n\n`experience` is a list on a full person profile. An empty list means that the returned work-history collection has no entries. It does not identify a collection failure or prove a specific reason.\n\nFields inside an employment entry can be independently `null`, including the description, contract type, company identifiers, location and dates. Keep the available parts of the entry instead of discarding the whole position. See [Current position and work history ordering](\u002Fdocs\u002Fguides\u002Fcurrent-position-resolution) for ordering rules.\n\n### Optional company fields\n\nCompany fields such as `websiteUrl`, `industry`, `description`, `tagline`, `logoUrl`, `headquarter`, `foundedOn`, `phone`, `followersCount` and `employeesCount` can be `null`. Treat each one as unknown without guessing a cause.\n\nAn exact `employeesCount` can be `null` while `employeeCountRange` is present. Keep the range as a range; do not invent an exact employee count from it. Lists such as company locations can be empty even when other company fields are present.\n\n## Data that profile enrichment does not collect\n\nProfile enrichment does not collect posts or publications, comments, reactions or other interactions. Those fields are not temporarily blank and a refresh will not add them. Activities were deliberately retired without a replacement so the product can focus on professional identity and company data.\n\nEmail addresses and phone numbers also use dedicated lookups rather than profile fields. A \"not found\" result from one of those lookups is different from a profile field returning `null`.\n\n## Decide whether to refresh\n\nAn empty-looking value belongs to the version of the profile that was returned. Check the record's age before spending credits on a live refresh. A refresh collects again, but it does not guarantee that an unknown field will become available.\n\nUse [Data freshness](\u002Fdocs\u002Fguides\u002Fdata-freshness) to choose between Check, cached Fetch and Live. Review [Rate limits and credits](\u002Fdocs\u002Fguides\u002Frate-limits-credits) before a paid lookup.\n\n## Handle the result in Ask and Lists\n\n- **In Ask:** ask for a full profile when you need photos, connection counts or work history. Ask can explain a returned value, but it must not invent the reason for `null`.\n- **In Lists:** keep blank cells as unknown. Enrich the relevant data family when the field has not been collected for that row, and review the quote before confirming.\n- **In exports and integrations:** preserve `null`, empty lists and zero as different values. Do not replace all three with an empty string or zero.\n- **For failures:** distinguish a successful profile with missing fields from a request or lookup error. See [Error handling and retries](\u002Fdocs\u002Fguides\u002Ferrors-retries).\n\nFor shorter answers about empty fields, privacy and common errors, see the [Product FAQ](\u002Fdocs\u002Fproduct\u002Ffaq).\n","\u003Cp>A blank field does not automatically mean zero. It can mean the result did not include that field, the source supplied no usable value, the returned collection is empty, or Reverse Contact does not collect that kind of data at all.\u003C\u002Fp>\n\u003Cp>Keep these cases separate in Ask answers, Lists, exports and your own systems. Reverse Contact never turns an unknown value into a fact.\u003C\u002Fp>\n\u003Ch2 id=\"check-the-result-shape-first\">Check the result shape first\u003C\u002Fh2>\n\u003Cp>Different lookups return different sets of fields. A light person result contains identity and current-role information. Photos, connection counts and work history belong to a full person profile, so those keys can be absent from a light result.\u003C\u002Fp>\n\u003Cp>When you use \u003Ca href=\"\u002Fdocs\u002Fendpoints\u002Fenrich-person\">Enrich profile\u003C\u002Fa>, request a full profile for those fields and verify that the full shape was delivered. A missing key in the light shape says nothing about the person’s source profile.\u003C\u002Fp>\n\u003Ch2 id=\"read-each-empty-looking-value-correctly\">Read each empty-looking value correctly\u003C\u002Fh2>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>What you receive\u003C\u002Fth>\n\u003Cth>What you know\u003C\u002Fth>\n\u003Cth>What you must not assume\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>A field is outside the result shape\u003C\u002Ftd>\n\u003Ctd>This lookup did not return that field\u003C\u002Ftd>\n\u003Ctd>The value is empty or zero\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>null\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>No usable value was returned for this collected field\u003C\u002Ftd>\n\u003Ctd>The exact reason, or that the value is \u003Ccode>0\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>[]\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>The returned collection contains no entries\u003C\u002Ftd>\n\u003Ctd>That entries exist elsewhere, or why none were returned\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>0\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>The returned numeric value is zero\u003C\u002Ftd>\n\u003Ctd>That another \u003Ccode>null\u003C\u002Fcode> or blank field also means zero\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>No field exists for that kind of data\u003C\u002Ftd>\n\u003Ctd>Reverse Contact does not collect it in profile enrichment\u003C\u002Ftd>\n\u003Ctd>That a later refresh will add it\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>A \u003Ccode>null\u003C\u002Fcode> value carries no per-field reason code. The source may not provide the value, but the response does not prove whether it was omitted, unavailable at collection time or unusable for another reason. Preserve \u003Ccode>null\u003C\u002Fcode> as unknown unless another field or error explicitly explains it.\u003C\u002Fp>\n\u003Cp>Use a field’s documented contract when it gives \u003Ccode>null\u003C\u002Fcode> a specific meaning. For example, \u003Ccode>end: null\u003C\u002Fcode> in an employment date range means that the position is current. Do not extend that meaning to unrelated fields.\u003C\u002Fp>\n\u003Ch2 id=\"common-fields\">Common fields\u003C\u002Fh2>\n\u003Ch3 id=\"connection-count\">Connection count\u003C\u002Fh3>\n\u003Cp>\u003Ccode>connectionsCount\u003C\u002Fcode> is a number or \u003Ccode>null\u003C\u002Fcode> on a full person profile. Preserve a returned \u003Ccode>0\u003C\u002Fcode> as zero and preserve \u003Ccode>null\u003C\u002Fcode> as unknown. Never store, display or average \u003Ccode>null\u003C\u002Fcode> as \u003Ccode>0\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>The field is not part of a light person result. If Ask or a List has only the light shape, request the full profile before deciding that the count is unknown.\u003C\u002Fp>\n\u003Ch3 id=\"profile-photo\">Profile photo\u003C\u002Fh3>\n\u003Cp>\u003Ccode>photoUrl\u003C\u002Fcode> is a URL or \u003Ccode>null\u003C\u002Fcode> on a full person profile. A blank avatar can therefore mean that the full profile was not delivered or that the full result returned \u003Ccode>null\u003C\u002Fcode>. Neither case explains why a photo URL was unavailable.\u003C\u002Fp>\n\u003Ch3 id=\"work-history\">Work history\u003C\u002Fh3>\n\u003Cp>\u003Ccode>experience\u003C\u002Fcode> is a list on a full person profile. An empty list means that the returned work-history collection has no entries. It does not identify a collection failure or prove a specific reason.\u003C\u002Fp>\n\u003Cp>Fields inside an employment entry can be independently \u003Ccode>null\u003C\u002Fcode>, including the description, contract type, company identifiers, location and dates. Keep the available parts of the entry instead of discarding the whole position. See \u003Ca href=\"\u002Fdocs\u002Fguides\u002Fcurrent-position-resolution\">Current position and work history ordering\u003C\u002Fa> for ordering rules.\u003C\u002Fp>\n\u003Ch3 id=\"optional-company-fields\">Optional company fields\u003C\u002Fh3>\n\u003Cp>Company fields such as \u003Ccode>websiteUrl\u003C\u002Fcode>, \u003Ccode>industry\u003C\u002Fcode>, \u003Ccode>description\u003C\u002Fcode>, \u003Ccode>tagline\u003C\u002Fcode>, \u003Ccode>logoUrl\u003C\u002Fcode>, \u003Ccode>headquarter\u003C\u002Fcode>, \u003Ccode>foundedOn\u003C\u002Fcode>, \u003Ccode>phone\u003C\u002Fcode>, \u003Ccode>followersCount\u003C\u002Fcode> and \u003Ccode>employeesCount\u003C\u002Fcode> can be \u003Ccode>null\u003C\u002Fcode>. Treat each one as unknown without guessing a cause.\u003C\u002Fp>\n\u003Cp>An exact \u003Ccode>employeesCount\u003C\u002Fcode> can be \u003Ccode>null\u003C\u002Fcode> while \u003Ccode>employeeCountRange\u003C\u002Fcode> is present. Keep the range as a range; do not invent an exact employee count from it. Lists such as company locations can be empty even when other company fields are present.\u003C\u002Fp>\n\u003Ch2 id=\"data-that-profile-enrichment-does-not-collect\">Data that profile enrichment does not collect\u003C\u002Fh2>\n\u003Cp>Profile enrichment does not collect posts or publications, comments, reactions or other interactions. Those fields are not temporarily blank and a refresh will not add them. Activities were deliberately retired without a replacement so the product can focus on professional identity and company data.\u003C\u002Fp>\n\u003Cp>Email addresses and phone numbers also use dedicated lookups rather than profile fields. A “not found” result from one of those lookups is different from a profile field returning \u003Ccode>null\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch2 id=\"decide-whether-to-refresh\">Decide whether to refresh\u003C\u002Fh2>\n\u003Cp>An empty-looking value belongs to the version of the profile that was returned. Check the record’s age before spending credits on a live refresh. A refresh collects again, but it does not guarantee that an unknown field will become available.\u003C\u002Fp>\n\u003Cp>Use \u003Ca href=\"\u002Fdocs\u002Fguides\u002Fdata-freshness\">Data freshness\u003C\u002Fa> to choose between Check, cached Fetch and Live. Review \u003Ca href=\"\u002Fdocs\u002Fguides\u002Frate-limits-credits\">Rate limits and credits\u003C\u002Fa> before a paid lookup.\u003C\u002Fp>\n\u003Ch2 id=\"handle-the-result-in-ask-and-lists\">Handle the result in Ask and Lists\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>In Ask:\u003C\u002Fstrong> ask for a full profile when you need photos, connection counts or work history. Ask can explain a returned value, but it must not invent the reason for \u003Ccode>null\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>In Lists:\u003C\u002Fstrong> keep blank cells as unknown. Enrich the relevant data family when the field has not been collected for that row, and review the quote before confirming.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>In exports and integrations:\u003C\u002Fstrong> preserve \u003Ccode>null\u003C\u002Fcode>, empty lists and zero as different values. Do not replace all three with an empty string or zero.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>For failures:\u003C\u002Fstrong> distinguish a successful profile with missing fields from a request or lookup error. See \u003Ca href=\"\u002Fdocs\u002Fguides\u002Ferrors-retries\">Error handling and retries\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For shorter answers about empty fields, privacy and common errors, see the \u003Ca href=\"\u002Fdocs\u002Fproduct\u002Ffaq\">Product FAQ\u003C\u002Fa>.\u003C\u002Fp>\n","","A blank field does not automatically mean zero. It can mean the result did not include that field, the source supplied no usable value, the returned collection is empty, or Reve...",5,[20,24,27,30,34,37,40,43,46,49],{"id":21,"title":22,"level":23},"check-the-result-shape-first","Check the result shape first",2,{"id":25,"title":26,"level":23},"read-each-empty-looking-value-correctly","Read each empty-looking value correctly",{"id":28,"title":29,"level":23},"common-fields","Common fields",{"id":31,"title":32,"level":33},"connection-count","Connection count",3,{"id":35,"title":36,"level":33},"profile-photo","Profile photo",{"id":38,"title":39,"level":33},"work-history","Work history",{"id":41,"title":42,"level":33},"optional-company-fields","Optional company fields",{"id":44,"title":45,"level":23},"data-that-profile-enrichment-does-not-collect","Data that profile enrichment does not collect",{"id":47,"title":48,"level":23},"decide-whether-to-refresh","Decide whether to refresh",{"id":50,"title":51,"level":23},"handle-the-result-in-ask-and-lists","Handle the result in Ask and Lists",[],[54,55,56,57,58],"\u002Fdocs\u002Fproduct\u002Ffaq","\u002Fdocs\u002Fguides\u002Fdata-freshness","\u002Fdocs\u002Fguides\u002Frate-limits-credits","\u002Fdocs\u002Fguides\u002Ferrors-retries","\u002Fdocs\u002Fendpoints\u002Fenrich-person",1790373992176]