The Leads section is the central contact-management area of AIUNIFY Assistant. It stores the individuals and organizations that AI Agents may call through outbound Campaigns or associate with other calling activity.
A Lead can contain:
The Leads page also provides tools for:
The instructions in this chapter are based on the reviewed AIUNIFY Assistant application source bundle.
A Lead is a contact record that can be selected for a Campaign and associated with calling activity.
Examples include:
Creating a Lead does not automatically call the person. The Lead must ordinarily be assigned to a Campaign or used during another supported call process.
The underlying Lead record contains these primary elements:
The fields element supports additional information as name-and-value pairs. The Lead model requires both a name and telephone number and automatically records ownership and timestamps.
The two required pieces of Lead information are:
A Lead cannot be created through the normal interface without both values.
The application does not require a company, Tag, email address, city, state, or other custom information.
The Name field identifies the contact in:
Use a recognizable name whenever possible.
Recommended:
Avoid unclear values such as:
The CSV importer may assign Unknown when a row contains a telephone number but no name. That record can be corrected later.
The Phone field is required because AIUNIFY Assistant uses it as the contact destination.
The backend normalizes telephone numbers by removing every character that is not a number.
Example:
Example:
Example:
Parentheses, spaces, plus signs, and hyphens are removed, while the actual digits remain.
Store the country code as part of the number when the provider or calling configuration requires international format.
Recommended United States format:
Recommended United Kingdom format:
Do not rely on the system to determine which country code should be added. It removes formatting characters but does not infer a missing country code.
The Lead model stores one normalized digit string. A telephone extension entered inside the Phone field can become part of that digit string.
Example:
That can create an invalid destination number.
Store the direct-dial number in the Phone field. Place extension instructions in a custom field when needed.
Custom fields allow Lead records to contain additional information.
Examples:
Each custom field is stored as:
Custom fields are especially useful when importing Leads from CSV or Google Sheets.
The manual Add Lead and Edit Lead forms provide a Company field.
Company is not a separate top-level Lead property. The interface saves it as a custom field similar to:
This allows Company to appear as an optional column in the Leads table.
The inspected Lead model does not contain a dedicated top-level email property.
An email address can still be stored as a custom field:
Email information is most conveniently imported as an additional CSV or Google Sheets column.
The Lead record itself does not contain a built-in status field such as:
Status-like organization can be created with Tags or a custom field.
Examples:
A custom field could also be imported:
A custom status field does not automatically control Campaign behavior unless a user filters or selects Leads accordingly.
Tags are short labels used to organize and identify Leads.
Examples:
A Lead can have more than one Tag.
Each Lead is associated with the account that created or imported it.
A normal user generally receives only Leads owned by that account. A Super Administrator can retrieve a broader, platform-level Lead list.
Editing, bulk tagging, and deleting by a normal user are also restricted to records owned by that user.
After signing in:
The page describes itself as centralized management for the account’s contacts and prospects.
The top area can contain:
The table below these controls contains the Lead records.
When the account contains no Leads, the page displays:
The user is prompted to add the first Lead or import Leads from CSV.
The empty state provides direct access to:
While the application retrieves Lead records, a rotating loading indicator appears.
During this period:
To add one contact manually:
The form contains Name, Phone, optional Company, and comma-separated Tags.
The Add New Lead form contains:
Name and Phone are required.
Enter the full personal or organizational name.
Example:
For a business contact where the person is unknown:
A meaningful name improves Campaign selection and Call Log review.
The form provides an example similar to:
A formatted number may be entered, but the application removes all nonnumeric characters before storing it.
Enter the complete callable destination, including country code where necessary.
Company is optional.
Example:
When present, it is saved inside the Lead’s custom fields.
Separate multiple Tags with commas.
Example:
The interface:
Example:
Select:
While processing, the button displays:
After a successful save, the Lead list refreshes.
Do not select the Save button repeatedly.
Select:
to close the dialog without creating the Lead.
Information typed into the unsaved form may be lost.
Creating a Lead requires:
When the account reaches its Lead allowance, the backend can return:
Creating one Lead manually triggers the platform’s leadCreated webhook event.
When the account has a corresponding webhook enabled, another authorized system may receive information about the new Lead. Bulk imports do not show the same individual webhook trigger in the reviewed bulk route.
The Leads table can display:
The custom-field columns change according to the records and the user’s Visible Fields selections.
The Name column displays the stored Lead name.
This name can later appear in:
The Phone column displays the normalized telephone digits stored in the Lead record.
The visible number may not contain:
That is expected because the backend removes nonnumeric characters.
Every distinct custom-field name found among the loaded Leads can become an optional column.
Example records:
Available Visible Fields can include:
A Lead without a value for a selected field displays an empty table cell for that column.
Tags are displayed as labels or badges.
A Lead may show:
Long Tag lists can make the table wider or more visually crowded. Use concise Tags.
The Added On column represents the Lead record’s creation timestamp.
This is the date the Lead entered AIUNIFY Assistant, not necessarily the date the person first contacted the business.
The final column contains a menu for actions such as:
Open the menu associated with the correct Lead before making changes.
The Leads page contains:
Search checks:
It does not search Tags or all custom-field values in the inspected interface.
Name search is not case-sensitive.
Example:
Example:
Telephone search matches digits contained within the stored number.
Example:
Searching with formatting may not match as expected because stored numbers contain digits only.
Recommended:
Instead of:
Search and Tag filters are applied together.
Example:
The page displays only Leads that:
When Leads exist but none match the active search or Tag filters, the page displays:
Select:
to restore the complete list.
Select the Tag filter control.
The menu displays the distinct Tags discovered among the loaded Lead records.
Select a Tag such as:
Only Leads containing that Tag remain visible.
When more than one Tag is selected, the inspected page uses all-selected-Tags logic.
Example:
A Lead must contain both Tags to remain visible.
The logic is:
It is not:
When Tags are selected, the control can show:
The number indicates how many Tag filters are active.
The inspected interface stores selected Tag filters in the browser’s local storage.
Consequently, returning to the Leads page on the same browser can restore the previous Tag selection.
A user may believe Leads are missing when an earlier filter is still active.
Use one of these methods:
The Clear control can also reset custom-column choices.
Select:
to choose which custom fields appear as table columns.
The list is built from the custom-field names contained in the loaded Leads.
To hide a column:
The field remains stored in the Lead record. Only its table column is hidden.
To restore a column:
Visible-column preferences are stored in the current browser’s local storage.
The settings can remain after:
Another browser or device may have different choices.
Select:
to return to the default behavior of displaying all discovered custom fields.
The Clear action also removes selected Tag filters in the inspected page.
A CSV or Google Sheets import with many columns can create many available custom fields.
To improve readability:
To edit:
The inspected Edit Lead form contains:
The Tags field uses comma-separated values.
Changing the name updates how the Lead appears in future interface views.
Historical Call Logs associated with the Lead may display the updated populated name when reloaded.
The backend normalizes the updated number by removing nonnumeric characters.
After changing a phone number:
The Edit Lead form sends the complete Tags list shown in the field.
This means editing Tags replaces the Lead’s existing Tag array with the newly submitted list.
Example:
The removed Tags q2 and follow-up no longer remain on that Lead.
The inspected Edit Lead form submits only:
as its custom-field payload. When Company is blank, it submits an empty custom-fields list.
Therefore, saving a Lead through the current Edit dialog can remove other custom fields that were originally imported from CSV or Google Sheets.
Example before editing:
The user changes only the telephone number and selects Save Changes.
Possible resulting custom fields:
The email, city, and industry values may be removed because the edit request replaces the fields array with only Company. This behavior is visible in the reviewed frontend implementation.
Before editing an imported Lead:
For spreadsheet-managed Leads, editing the spreadsheet is generally safer for preserving all mapped fields.
Select:
to close the form without submitting the changes.
An edit can fail because:
The dialog displays the backend error when available or:
Each row includes a checkbox.
Select the checkbox to include that Lead in a bulk action.
The checkbox in the table header selects all Leads currently passed into the visible table.
Because the table receives the filtered result, selecting all while a search or Tag filter is active selects the currently displayed matching Leads rather than every Lead in the account.
Assume the account contains:
Selecting the header checkbox selects the 42 visible follow-up Leads.
Always review the active search and Tag filters before using a bulk action.
Clear the header checkbox or clear individual row checkboxes.
After a successful bulk deletion, the inspected interface clears the selected IDs automatically.
Bulk Tags allow the same organizational labels to be applied to several selected Leads at once.
Common uses include:
Example:
At least one nonblank Tag is required.
The backend uses an add-to-set operation.
That means:
Example:
A normal user can bulk-tag only owned Lead records.
A Super Administrator can perform the operation across the IDs available within the administrative scope.
The bulk dialog adds Tags. It does not provide a bulk Tag-removal operation in the inspected interface.
Removing a Tag requires editing individual Leads or implementing an authorized administrative data process.
To delete one Lead:
To delete several Leads:
The interface asks:
The inspected Leads interface does not show a Lead recycle bin, archive state, or restoration function.
Treat deletion as permanent.
Before deleting:
The reviewed bulk-delete route removes Lead records. It does not show a corresponding cascade deletion of Campaigns or Call Logs.
As an operational inference, historical calling records may remain, but their populated Lead information could become unavailable or incomplete after the Lead is deleted.
Preserve Leads associated with required reporting or audit history unless an approved retention policy permits deletion.
Select Cancel or dismiss the browser confirmation to leave the Leads unchanged.
CSV import is appropriate when Leads already exist in:
The source must be saved as a .csv file.
Use these exact lowercase headers:
The importer identifies these properties directly.
Recommended starting structure:
The reviewed importer separates exact name and phone properties from every other column.
Use:
Avoid:
The client-side CSV parser expects properties named name and phone. Different capitalization or wording can cause those values not to be recognized.
Company is optional.
Example:
Because every column other than name and phone becomes a custom field, Company is imported as:
Additional headers become custom fields.
Example:
The Lead can receive:
The telephone formatting is normalized after upload.
In Microsoft Excel:
.csv file.In Google Sheets:
Google Sheets direct synchronization is covered later in this chapter.
Each row should represent one Lead.
Correct:
Incorrect:
The CSV parser skips empty lines.
Blank rows do not create Leads.
When a row contains a telephone number but no Name value, the importer assigns:
Example:
Result:
Correct missing names before import whenever possible.
Rows without a recognized Phone value are removed from the import list.
When every row lacks a valid recognized phone property, the interface reports:
When a company or other value contains a comma, the CSV application should place the value in quotation marks.
Example:
Saving through Excel or Google Sheets generally handles this automatically.
Spreadsheet applications can remove leading zeros from telephone numbers stored as numeric cells.
Format telephone-number columns as text before saving.
This is especially important for countries where national numbers begin with zero.
Long numbers can appear as:
A telephone number saved in scientific notation can import incorrectly.
Set the column format to plain text and verify the exported CSV in a text editor when necessary.
The dialog accepts:
After selection, the filename appears below the file control.
Confirm it is the correct file before uploading.
The field:
applies the same Tags to every imported Lead.
Example:
Every successfully parsed Lead receives those Tags.
The importer:
name.phone.While processing, the button displays:
Do not close the browser or select Upload again during processing.
After success, the interface reports:
The Leads page then refreshes.
The displayed count represents the Lead objects produced by the CSV parser and submitted for insertion.
The reviewed CSV bulk-import route inserts the submitted Lead list directly.
It does not show a telephone-number uniqueness check or duplicate-prevention process.
Uploading the same file twice can therefore create duplicate Lead records.
First import:
Second import of the same file:
Possible result:
Both records can later be selected for Campaigns.
Before importing:
CSV import requires an active Plan and available Lead capacity.
A large import that exceeds the account’s permitted Lead limit can fail.
For large lists:
The frontend builds the import list before submitting it.
Rows without Phone are excluded. Rows with a Phone but no Name become Unknown.
Review the Lead count after import because the number of saved Leads may differ from the original spreadsheet row count.
Possible messages include:
Possible causes include:
The Google Sheets integration allows the user to connect a Google account, select a spreadsheet and sheet tab, map columns, and synchronize Lead information into AIUNIFY Assistant.
The dialog describes the feature as:
Google Sheets synchronization can be preferable when:
The user needs:
The application requests Google authorization to list and read the necessary spreadsheet information.
Selecting Connect Now starts the Google Sheets OAuth process.
The application uses the signed-in AIUNIFY Assistant user ID when beginning the connection.
When the browser cannot find the local AIUNIFY user information, it can display:
During Google authorization:
Do not connect a personal Google account when organizational policy requires a managed business account.
After successful authorization, the backend stores the Google connection state and tokens in the user’s Settings record and returns the browser to the Leads page with a connection result.
When Google authorization fails, the browser returns to the Leads page with an error result.
Possible causes include:
Once connected, the application requests a list of Google spreadsheet files available to the authorized account.
Select the intended spreadsheet.
Do not choose a spreadsheet merely because its name appears familiar. Confirm its owner and data.
A spreadsheet may not appear when:
A Google spreadsheet can contain multiple sheet tabs.
Example:
After selecting the spreadsheet, choose the specific sheet tab that contains the records to synchronize.
The integration expects the column names in Row 1.
Example:
Do not place a report title or blank row above the headers.
The mapping step tells AIUNIFY Assistant which spreadsheet columns contain:
The interface instructs users to type column names exactly as they appear in Row 1.
Enter the exact header containing the Lead name.
Example spreadsheet header:
Mapping:
Enter the exact header containing the telephone number.
Example spreadsheet header:
Mapping:
Name and Phone mappings are required before the synchronization button becomes available.
Match:
Example:
Avoid:
Although the backend performs some lowercase comparison internally, exact visible matching is the safest operational practice.
Additional spreadsheet columns can be mapped into custom Lead fields.
Examples:
Mapped custom fields become available through the Leads table’s Visible Fields control.
The integration can save:
A saved configuration enables later quick synchronization without selecting and mapping the spreadsheet again.
After selecting the spreadsheet, sheet tab, and mappings:
A spreadsheet row is skipped when it does not contain:
Correct incomplete rows in Google Sheets before synchronizing again.
Google Sheets synchronization normalizes telephone numbers into digits.
These values are treated as the same normalized telephone number:
They all normalize to:
The synchronization process matches a Lead using:
The same number can therefore exist under different user accounts without being treated as the same owned Lead.
For each valid spreadsheet row, the backend performs an upsert operation.
That means it can:
The synchronization can update:
It also adds:
as a Tag without duplicating that Tag.
The Google Sheets dialog includes language indicating:
However, the reviewed backend uses an upsert process that can update an existing Lead when its normalized phone matches.
Operationally, users should assume that a Google Sheets sync can change matching Lead names and mapped custom fields, not merely skip them.
Synchronized Leads receive:
This makes it possible to filter spreadsheet-managed records.
A Lead can retain other Tags because the Google Sheets Tag is added rather than replacing the complete Tag list.
The synchronization process tracks normalized telephone numbers already processed during the current operation.
When the source sheet contains the same normalized number more than once, later duplicates in that processing run are skipped.
Maintain one authoritative row per telephone number to avoid unpredictable selection between duplicate source rows.
Before synchronization, the reviewed backend includes logic that normalizes existing Lead telephone numbers and removes duplicate owned records.
Because duplicate cleanup can affect existing data, preserve required information and test with a controlled account or small data set before connecting a large production spreadsheet.
When a saved Google Sheets configuration is active, treat the spreadsheet as the primary source for mapped values.
Recommended workflow:
A later sync can overwrite mapped custom fields on matching Leads.
The backend reports the combined impact of:
A reported result does not necessarily mean every counted record was newly created.
A first synchronization can return:
A saved quick synchronization can return:
A zero result can therefore mean:
When a configuration has been saved, the Google Sheets dialog can provide:
This reuses the saved spreadsheet, sheet tab, and mappings.
Despite the label, the backend can also update matching records.
After configuration, the Leads-page button may display the saved sheet name instead of the generic Google Sheets label.
This helps identify which sheet is currently connected.
While synchronization is active, the button can display:
with a rotating indicator.
Do not start another sync while this state is visible.
The inspected Leads page includes a saved-configuration quick-sync request when Google Sheets is connected and the page initializes under the relevant conditions.
This means opening the Leads page may check the configured sheet and refresh the Lead list when changes are found.
When the configuration is saved, the backend stores a lastSynced date.
This records when a successful synchronization with an impact occurred or when configuration was initially saved.
It should not be treated as proof that every source row was valid.
Disconnect when:
The backend clears:
Disconnecting Google Sheets does not show a process that deletes Leads previously imported or synchronized.
Those Lead records remain until separately edited or deleted.
After disconnection, reconnect through Connect Now and repeat:
Use manual entry when:
Manual entry supports Name, Phone, Company, and Tags.
Use CSV when:
CSV import can preserve additional columns as custom fields but does not prevent duplicate telephone numbers in the reviewed implementation.
Use Google Sheets when:
The backend can create or update matching Leads and applies the google-sheets Tag.
Choose one primary method for each Lead group.
Example:
Avoid managing the same group through several competing sources unless a controlled process exists.
Before selecting Leads for a Campaign, confirm:
A Lead record does not prove that calling permission exists.
Before outbound calling, verify the organization’s lawful basis, including applicable:
A Tag such as:
can help identify suppressed records, but a Tag alone does not technically guarantee exclusion from every Campaign.
Users must ensure suppressed Leads are not selected.
A more formal suppression process should be used when legally required.
Use Tags that clearly identify the source or purpose.
Recommended:
Avoid ambiguous Tags:
Before launching a large Campaign:
Duplicates can cause:
Search by telephone number before importing or launching a Campaign.
Although the backend removes nonnumeric telephone characters, maintain consistent source formatting.
Recommended source style:
Example:
Avoid creating variations such as:
for the same person unless a deliberate naming convention requires it.
Telephone matching is more reliable than name matching for Google Sheets synchronization.
Tags are text values.
These can become separate Tags:
Choose one standard.
Recommended:
These field names can become separate columns:
Standardize field names before importing.
Recommended:
Do not place unnecessary sensitive information in Lead custom fields.
Avoid storing:
Store only information authorized and necessary for the calling purpose.
Possible causes include:
Try:
Check:
Tag filters can persist in the browser between visits.
A number such as:
appearing as:
is expected.
The system stores digits only.
Check the source for:
Correct the source and import or synchronize again.
The CSV route does not deduplicate by phone.
To correct:
Possible causes include:
Bulk Add Tags does not provide bulk removal in the inspected interface. Incorrect Tags may need to be removed through individual edits.
When the Plan limit is reached:
Check that:
The recognized name property was blank or absent.
Check:
Possible causes include:
Use the import Tag and Added On date to identify the affected group.
Check:
Confirm:
Confirm the spreadsheet contains the intended tab and that the tab still exists.
Refresh the integration dialog after changes.
Check Row 1 and type the exact Name and Phone headers.
Example:
The message can mean:
Review several source rows and the mapping.
This can be expected.
The backend matches by normalized owned Phone and can update the matching record’s:
Correct the authoritative Google Sheet and synchronize again.
The sync operation sets the mapped custom-fields list for matching Leads.
A field omitted from the mapping or missing from the relevant source data may no longer appear as expected.
Keep mappings stable and preserve all required source columns.
A saved sync configuration treats the spreadsheet as the ongoing source.
Manual Lead edits can be replaced during a later synchronization.
Make the correction in the spreadsheet or disconnect the source before maintaining the record only inside AIUNIFY Assistant.
This generally means the sync found no new or modified impact.
Confirm:
That is expected based on the reviewed implementation.
Disconnection removes the Google authorization and saved configuration, not the synchronized Lead records.
At the beginning of the day:
Recommended sequence:
Recommended sequence:
Lead records can contain personal information.
Only authorized users should access:
After importing a CSV:
Use:
Do not make a Lead spreadsheet publicly accessible.
Before sharing a Leads screenshot:
Confirm:
Confirm:
Confirm:
Confirm:
Confirm:
Before deleting Leads, confirm:
Confirm:
At the end of this chapter, the user should understand how to create, search, filter, edit, Tag, select, and delete Lead records; how telephone numbers are normalized; how custom fields are stored and displayed; why editing a Lead can affect imported custom fields; how bulk Tagging differs from editing Tags; how to prepare and import a CSV file; why repeated CSV imports can create duplicates; how to connect and disconnect Google Sheets; how spreadsheet mapping, matching, upserting, and synchronization work; how to protect Lead data; and how to prepare an approved Lead group for Campaign activity.