> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lendflow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SentiLink Match

## SentiLink Match

SentiLink Match completes one missing identity field for an individual applicant. The Workflow Builder block exposes two services:

| Service | Service ID | Required application data | Purpose |
| - | - | - | - |
| **SentiLink SSN Completion** | `sentilink_ssn_completion` | Owner first and last name, address line 1, city, state, and ZIP code | Attempts to complete the applicant's Social Security number (SSN). |
| **SentiLink DOB Completion** | `sentilink_dob_completion` | Owner first and last name, address line 1, city, state, ZIP code, and SSN | Attempts to complete the applicant's date of birth (DOB). |

<Warning>
  SentiLink Match is a bring-your-own-credentials service. Your organization must connect a SentiLink account and token before either completion service can run.
</Warning>

## Requirements

Both services validate the current application data before calling SentiLink.

### SSN Completion

| Application field | Requirement | Notes |
| - | - | - |
| Owner first name | Required | Must be present. |
| Owner last name | Required | Must be present. |
| Owner address line 1 | Required | Must be present. |
| Owner city | Required | Must be present. |
| Owner state | Required | Must be a valid state. |
| Owner ZIP code | Required | Must be five digits or ZIP+4 in `12345-6789` form. |
| Owner date of birth | Optional | Must use `YYYY-MM-DD` when present. |

### DOB Completion

| Application field | Requirement | Notes |
| - | - | - |
| Owner first name | Required | Must be present. |
| Owner last name | Required | Must be present. |
| Owner address line 1 | Required | Must be present. |
| Owner city | Required | Must be present. |
| Owner state | Required | Must be a valid state. |
| Owner ZIP code | Required | Must be five digits or ZIP+4 in `12345-6789` form. |
| Owner SSN | Required | Must pass SSN validation. |

The previous combinations that omitted the street address or ZIP code are no longer valid. The current request validator requires the full name and address fields for both operations.

## Run through the application enrichment API

1. Call `PUT /api/applications/{application_id}/enrich` through [Enrich Business Credit Application](/api-reference/workflow-management/enrich-business-credit-application).
2. Set `provider` to `sentilink_ssn_completion` or `sentilink_dob_completion`.
3. Do not send service-specific `options`; neither service requires options.
4. Include `stage_id` only when the application workflow requires a specific underwriting stage.
5. Confirm that the response contains `data.onqueue: true`.
6. Poll [Get Commercial Data](/api-reference/workflow-management/get-commercial-data) with the applicable `services[]` filter.

```json theme={"system"}
{
  "provider": "sentilink_ssn_completion",
  "stage_id": "00000000-0000-4000-8000-000000000000"
}
```

The request is asynchronous. `data.onqueue: true` confirms that Lendflow queued the job; it does not mean SentiLink returned a completed value.

| Service | Result path | Status path | Stored request path |
| - | - | - | - |
| SSN Completion | `data.commercial_data.sentilink_ssn_completion` | `data.statuses.sentilink_ssn_completion` | `data.request_data.sentilink_ssn_completion` |
| DOB Completion | `data.commercial_data.sentilink_dob_completion` | `data.statuses.sentilink_dob_completion` | `data.request_data.sentilink_dob_completion` |

<Warning>
  The result or stored request can contain an SSN. Restrict access, avoid logging these objects, and mask sensitive values in your interface.
</Warning>

## Data Orchestration availability and flow

The **Sentilink Match** block is available in Workflow Builder's underwriting **Match** group for individual entities. It contains both completion services and has no provider-specific options.

1. Add **Sentilink Match** to an individual underwriting workflow.
2. Ensure the required application fields and SentiLink credentials are available before the block runs.
3. Connect the block in the required execution order, then save and publish the workflow.
4. Execute the published orchestration through [Execute Data Orchestration](/api-reference/data-orchestration/execute-data-orchestration) with `template_id`, `application_id`, and `stage_id` when applicable.
5. Confirm that the response contains `data.executed: true`.
6. Monitor the asynchronous run with [List Data Orchestration Logs](/api-reference/data-orchestration/list-data-orchestration-logs).
7. Read each service's status and result from the commercial-data paths above.

The block does not require another data-service block to run first. Its dependency is complete individual identity data: DOB Completion needs an SSN, while SSN Completion can use a DOB when one is available.

## What the service returns

| Response area | Meaning |
| - | - |
| `application` | SentiLink's completed application data. It can include the newly completed `ssn` or `dob` plus identity and address values. |
| `updated_fields` | The fields SentiLink completed. An empty array means no field was returned for update. |
| `confidence_level` | SentiLink's confidence in an SSN completion. This field can be absent, including in DOB Completion responses. |
| Execution metadata | Provider transaction, environment, timestamp, and latency values for the request. |

## Representative response

This abbreviated response is based on Lendflow's current SentiLink completion fixtures. Identifiers and personal data are sanitized.

```json theme={"system"}
{
  "application": {
    "first_name": "JANE",
    "last_name": "EXAMPLE",
    "dob": "1985-04-12",
    "ssn": "***-**-6789",
    "address_line_1": "100 MAIN ST",
    "city": "AUSTIN",
    "state_code": "TX",
    "zip_code": "78701"
  },
  "environment": "PROD",
  "latency_ms": 137,
  "timestamp": "2026-08-15T14:37:51Z",
  "transaction_id": "txn_example_01",
  "updated_fields": ["ssn"],
  "confidence_level": "very_high"
}
```

## Response attributes

### Completed identity data

| Attribute | Type | Meaning | Possible values or units | When returned |
| - | - | - | - | - |
| `application` | Object | Identity data returned by SentiLink. | Provider object. | On a provider response. |
| `application.first_name` | String | Applicant first name used for the match. | Text. | When echoed by SentiLink. |
| `application.last_name` | String | Applicant last name used for the match. | Text. | When echoed by SentiLink. |
| `application.dob` | String | Applicant DOB, including a completed DOB. | `YYYY-MM-DD`. | When supplied or completed. |
| `application.ssn` | String | Applicant SSN, including a completed SSN. | Sensitive identifier string. | When supplied or completed. |
| `application.address_line_1` | String | Applicant street address. | Text. | When echoed by SentiLink. |
| `application.city` | String | Applicant city. | Text. | When echoed by SentiLink. |
| `application.state_code` | String | Applicant state. | State code. | When echoed by SentiLink. |
| `application.zipcode` or `application.zip_code` | String | Applicant ZIP code. | Five digits or ZIP+4. | Provider fixtures contain both key spellings; integrations should tolerate either. |
| `updated_fields` | Array of strings | Fields completed by SentiLink. | `ssn`, `dob`, or an empty array. | On a completion response. |
| `confidence_level` | String or absent | Confidence in the completed SSN. | `very_high`, `high`, `medium`, `low`, or `very_low`. | Typically for SSN Completion when SentiLink returns confidence; it can be absent. |

### Execution metadata

| Attribute | Type | Meaning | Possible values or units | When returned |
| - | - | - | - | - |
| `transaction_id` | String | SentiLink transaction identifier. | Provider identifier. | On a provider response. |
| `customer_id` | String or number or absent | SentiLink customer identifier. | Provider identifier. | When supplied by SentiLink. |
| `environment` | String | Provider environment. | Provider value such as `PROD`. | On a provider response. |
| `timestamp` | String | Time SentiLink processed the request. | Timestamp string. | On a provider response. |
| `latency_ms` | Number | Provider request latency. | Milliseconds. | On a provider response. |
| `notes` | String or absent | Provider notes. | Text. | When supplied by SentiLink. |

## Errors and statuses

| Status or error | Meaning |
| - | - |
| `Not yet started` | Lendflow has no service log for this operation. |
| `Started` | The external-service job started and remains asynchronous. |
| `Success` | Lendflow stored a SentiLink response. Check `updated_fields`; success does not guarantee that a field was completed. |
| `Sentilink - Invalid data sent` | SentiLink rejected the provider request. Verify the required application fields and formats. |
| `Business owner ... is required` or validation message | A required name, address, SSN, state, ZIP, or date value is missing or invalid. Correct the application before retrying. |
| Service unavailable or credential error | The service is disabled, connected credentials are absent or invalid, or the provider cannot be reached. |
| Other message at the status path | Lendflow marked the job as failed and exposes the latest captured error message. |

## FAQ

<AccordionGroup>
  <Accordion title="Which SentiLink service should I run?">
    Run `sentilink_ssn_completion` when SSN is missing. Run `sentilink_dob_completion` when DOB is missing and a valid SSN is already stored.
  </Accordion>

  <Accordion title="Can I omit the address for SSN Completion?">
    No. The current validator requires address line 1, city, state, and ZIP code for both completion services.
  </Accordion>

  <Accordion title="Are SentiLink credentials required?">
    Yes. Both completion services support bring-your-own credentials only. Your organization must connect a SentiLink account and token.
  </Accordion>

  <Accordion title="Does data.onqueue true mean a value was completed?">
    No. It only confirms that the job was queued. Poll the commercial-data endpoint, wait for `Success`, and inspect `updated_fields`.
  </Accordion>

  <Accordion title="Why is confidence_level missing?">
    The field is optional. Lendflow's current DOB Completion fixture omits it, and integrations must handle an absent value.
  </Accordion>
</AccordionGroup>
