---
title: SAIF.Business.CustomerContact overview
summary: High-level purpose, scope, and responsibilities for this library.
status: draft
owner: SAIF
last_reviewed: 2026-07-24
library: SAIF.Business.CustomerContact
reference_type: package
---

# SAIF.Business.CustomerContact overview

> **Documentation context:** Packaged Component (NuGet)

`SAIF.Business.CustomerContact` is a packaged BOF business library that manages customers, contacts, reusable communication records, and customer-contact relationships, while also translating several external business identifiers into local customer/contact records.

## Purpose
- Provide BOF aggregate roots for customer and contact data, including notes and reusable address, email, and phone records.
- Support combined customer/contact search, relationship maintenance, code-table hydration, and external-ID conversion workflows used by higher SAIF business layers.

## Responsibilities
- Persist `COMPANY`, `PERSON`, and `COMPANY_PERSON` business data through BOF criteria classes.
- Manage standalone address, email, phone, and note records plus their customer/contact association rows.
- Translate agencies, agents, auditors, groups, providers, policies, RTW codes, and injured workers into local identifiers.
- Provide cached code-map helpers for email and phone type descriptions.

## Key components
- `clsCustomer` / `clsContact`: root BOF aggregates for customer and contact persistence.
- `clsCustomerContact`: customer-to-contact relationship maintenance.
- `InfoItems\clsAddressInfo`, `InfoItems\clsEmailAddressInfo`, `InfoItems\clsPhoneInfo`: reusable communication and address records.
- `clsCustomerContactSearch`: combined search request validation and result composition.
- `mdlCustomerContact`: external-ID conversion and helper workflow module.
- `mdlCodeMaps`: localized code-table hydration and caching helper.

## Related documentation
- [Index](index.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [Configuration](configuration.md)
- [API reference](api/index.md)

## Sources
- `Business\SAIF.Business.CustomerContact\SAIF.BOF.Business.CustomerContact.vbproj`
- `Business\SAIF.Business.CustomerContact\packages.config`
- `Business\SAIF.Business.CustomerContact\Customer\clsCustomer.vb`
- `Business\SAIF.Business.CustomerContact\Contact\clsContact.vb`
- `Business\SAIF.Business.CustomerContact\Customer\clsCustomerContact.vb`
- `Business\SAIF.Business.CustomerContact\InfoItems\clsAddressInfo.vb`
- `Business\SAIF.Business.CustomerContact\InfoItems\clsEmailAddressInfo.vb`
- `Business\SAIF.Business.CustomerContact\InfoItems\clsPhoneInfo.vb`
- `Business\SAIF.Business.CustomerContact\clsCustomerContactSearch.vb`
- `Business\SAIF.Business.CustomerContact\mdlCustomerContact.vb`
- `Business\SAIF.Business.CustomerContact\mdlCodeMaps.vb`
