Managing contacts | IcloneU
Contacts

Managing contacts

Every person your Clone talks to becomes a contact. The Contacts page is where that audience lives — a searchable, filterable list on the left and a deep profile on the right, with the Clone's own observations folded in. This guide walks the whole surface: groups, segments, filters, broadcasts, and the four tabs of a contact's profile.

12 min read Beginner Updated August 25, 2026

Open Contacts from the left sidebar and you land on a three-panel workspace: a collapsible left sidebar that groups and filters your audience, a contact list in the middle, and a full profile panel on the right. Most of a contact is built for you — when someone messages your Clone on any connected channel, a contact is created automatically and then enriched as the conversation goes on. This guide covers how to read, search, organise and annotate that audience, and how to message a group of it at once.

Included with every paid plan
Contacts are created automatically

You don't add contacts by hand to get started — they appear the moment a person first messages your Clone. The page header shows a New Contact button; clicking it shows a Coming soon notice for now (manual one-at-a-time creation is not available yet). Bulk import, though, is live: the Import button (its tooltip reads Import Contacts) opens a CSV importer for seeding contacts from a spreadsheet — see Importing contacts from a CSV below.

The four tabs

The Contacts area is really four pages behind one tab strip at the top — Contacts, Tags, Fields and Broadcasts. Most of this guide is about the first one, Contacts, which is where the list and profiles live; Broadcasts gets its own section further down because it is where the audience you built here actually gets messaged.

  • Contacts — the list of everyone who has talked to your Clone, plus each person's profile.
  • Tags — the labels you can attach to contacts (some applied by hand, some by the AI or an automation).
  • Fields — the lead-qualification fields your Clone tries to collect during conversations.
  • Broadcasts — sending one message out to a group of contacts at once, on either of two channels, with a per-contact delivery report afterwards.

Reading the contact list

The middle panel is the list itself. Each row shows the contact's avatar with a small channel badge, their name (or Anonymous when no name is known), a coloured status dot, and a relative time for the last interaction. Below the name you'll see a one-line summary of the last interaction, up to two tag pills, and a couple of mono stats — an engagement number and, when there are any, a message count. When a contact hasn't had an interaction yet, that summary line instead reads a muted, italicised No interactions yet.

Two small icons can sit next to the name. A blue check badge means the contact is Verified. A bell means the contact is opted in to automated messages (Opted in to automated messages); a slashed bell means they've opted out (Opted out of automated messages).

Status dotMeans
GreenActive
GreyInactive
RedBlocked

Above the list, a toolbar holds a search box and a sort dropdown. Search matches across name, email and phone — its placeholder reads Search by name, email or phone. The list header counts the audience: N total, and when a filter or segment is active, how many match current filters.

  1. Search for someone

    Type into the search box at the top of the list. It searches name, email and phone, and the list narrows as you type (after a short pause).

  2. Change the sort order

    Use the dropdown next to the count. The options are Last interaction, Engagement, Name and Date created.

    Tip

    Last interaction is the default, so the people who messaged most recently sit at the top — usually who you want to see first.

  3. Open a profile

    Click a row. The right-hand panel fills with that contact's full profile. The first contact is selected for you when the list loads.

Last interaction here counts more than messages

The time on the row, the Last interaction sort and the Last interaction filter all read a timestamp that moves on any touch of the contact — including a returning visitor clicking one of your ads, tapping a referral link or scanning a QR code without writing a word. Automations read a different, stricter timestamp: one that only moves when the contact actually sends a message. So a person who last wrote 45 days ago and clicked an ad this morning shows as recent here, while a workflow condition on days since the last interaction still counts 45. When you want “hasn't replied in N days”, build it in a workflow rather than eyeballing this column.

Importing contacts from a CSV

The one way to add contacts yourself today is in bulk. The Import button in the list header (its tooltip reads Import Contacts) opens a three-step CSV importer: upload the file, map its columns, review the result.

  1. Upload the file

    Click Import and add your file — drag it onto the dropzone (Drag and drop file here) or click Choose a CSV file. Only .csv files are accepted, up to 8 MB.

  2. Map your columns

    The importer reads the file and reports N rows detected. Match your columns below. The target list opens with eight built-in fields — Name, Email, Phone, Country, Language, plus three commerce fields (Orders (count), Total spent, Last purchase date) — and then continues with every active field you've defined on the Fields tab, so a spreadsheet can fill those too. Point each target at one of your columns, or leave it on — Ignore —. Common header names are pre-matched for you (English and Spanish ones are both recognised); one of your own fields is pre-matched when a column header is exactly its Key from the Fields tab (a space in the header counts as an underscore). The three commerce fields are optional; map them to seed a contact's purchase stats, which show up in the Overview Engagement section.

    Tip

    Only the columns you map are imported; everything else in the file is ignored.

  3. Import and review the result

    Click Import Contacts. While it works you'll see live progress — the stage and a running count — plus a Stop import button; a stopped import keeps what it already brought in, and running the import again continues where it left off. Very large imports are processed in batches, and if one is cut short the result says so and asks you to run it again to continue. When it finishes you'll see Import complete with a summary — Imported: N · Already existed: N · Empty skipped: N — plus N rows could not be imported. if some rows couldn't be read. Click Done.

What import does (and doesn't do)

Imported contacts land in an Imported platform bucket — they show up under the Imported chip in the Platform filter and carry an Imported tag. Re-importing the same file doesn't duplicate people: rows are matched by email, then phone, and existing ones are counted as Already existed (though rows with only a name — no email or phone — can duplicate on a re-import). Rows with no name, email or phone are skipped. Importing never sends anyone a message. And when an imported row shares an email or phone with a contact from a real channel, the two are linked automatically as the same person — see Linked contacts below.

Your own fields import too

Every active field on the Fields tab is a mapping target, so an import can fill a renewal date, a plan name, a customer number — not just the built-in eight. Three things worth knowing. A blank cell leaves whatever the contact already has, so an import tops values up instead of wiping them. A field whose type is Date is normalised to yyyy-MM-dd on the way in, which is what lets a workflow's date trigger read it later — write that column in that form and the match is exact. And the values land in the Custom fields section of the contact's Overview tab — the hint beside that section still reads written by Automations, which is one writer of several: an import writes there too.

When your account has a Shopify store connected, the importer offers a second source: an Import from Shopify option that pulls the store's customers straight in — no spreadsheet needed. With a single store it's one click; with more than one, a store picker appears (the Active store is listed first, and any non-active store is flagged needs attention). The customers come in as Imported contacts enriched with their purchase history and order count, carry both an Imported and a Shopify tag, and are stitched to any existing profile that shares the same email or phone. Like a CSV import, this pulls them in as contacts only — it never messages them.

Groups: filter by status

The top section of the left sidebar is Groups — the fastest way to narrow the list by contact status. There are five entries:

  • All Contacts — everyone, with a running total next to it.
  • Active — contacts with an active status (green dot).
  • Inactive — contacts who have gone quiet (grey dot).
  • Blocked — contacts you've blocked (red dot).
  • Archived — contacts you've archived. Archiving is a soft delete that hides a contact from the normal groups without losing their history; it's a separate axis from status (not Active/Inactive/Blocked), so it gets its own entry here. Open an archived contact and its profile shows a Restore action to bring it back.

Click one to filter the list to just that group; click All Contacts to clear it. Picking a group resets any tag filter you had selected.

Collapse the sidebar for room

The header of the sidebar has a toggle that collapses it to a thin icon rail, giving the list and profile more width. The groups stay clickable while collapsed.

Segments: saved audiences

A segment is a named, reusable audience that appears in the middle section of the sidebar. Each segment shows a coloured dot, its name, and a count of how many contacts it holds. There are two kinds, and the difference matters:

TypeHow it's builtWhen it updates
StaticManually curated contact listOnly when you change it by hand
DynamicAuto-matched by filter criteriaAutomatically, every time it's queried
Static segments cannot be filled yet — use Dynamic

Static is offered in the editor, but nothing in IcloneU adds a contact to one today: there is no add to segment control on a contact, none in the segment editor, and no automation node that does it. So a static segment stays at zero members — the list shows nothing when you click it, and a broadcast aimed at it resolves to nobody and finishes as Sent with no recipients rather than telling you it was empty. Build every audience you actually intend to reach as Dynamic.

Dynamic segments carry a small lightning bolt to mark them apart. They store a set of filter criteria and re-run them whenever you open the segment, so the membership stays current as contacts come and go.

  1. Create a segment

    Click the + on the Segments section header. The New Segment editor opens.

  2. Name it and pick a colour

    Give the segment a Name (required) and an optional Description and Color. The colour is what shows as the dot in the sidebar.

  3. Choose Static or Dynamic

    Pick Static (Manually curated contact list) or Dynamic (Auto-matched by filter criteria).

    Note

    Choosing Dynamic reveals the Filter Criteria builder, in this order: platform, contact status, contact type, tags, a minimum engagement score; then a Purchases group — Verified buyers only (has purchases or the verified-buyer badge), Min. total spent, Min. orders, Max. orders (its hint reads 0 = never purchased), Purchased since and No purchase since; then a Reachability group of four checkboxes — Reachable by WhatsApp (has a phone number), Only contacts opted in to SMS/WhatsApp marketing, Only contacts with an email address and Only contacts opted in to email marketing; and finally first-touch / last-touch UTM campaign, source and medium. A summary line counts how many criteria are active — N active filter(s), or No criteria set — segment will match all contacts when you've set none.

  4. Save

    Click Save. The segment appears in the sidebar; click it any time to load that audience.

Two purchase criteria that don't mean what they look like

Max. orders set to 0 is the way to say never purchased — it is the only purchase control that treats zero as a real value rather than as "off", so clearing the box turns the filter off but typing 0 turns it into a never-bought filter. And No purchase since selects people whose last purchase predates that date, so it finds lapsed buyers only — someone who never bought at all has no last-purchase date and is not matched. For a true "never bought" audience use Max. orders 0; for "bought once, then went quiet", pair Min. orders 1 with No purchase since.

Hovering a segment row reveals a pencil to Edit it and a trash icon to Delete it. Deleting asks you to confirm and cannot be undone.

Turn a filter into a segment

If you've set up filters you like, the Save as new segment button at the bottom of the Filters section opens the same editor pre-loaded — a quick way to bottle a useful filter set for reuse. The same criteria builder also backs a broadcast's inline audience and a sequence's enrolment filter, so a criteria set you learn here is the same one everywhere.

A segment can start an automation

In Automations, a workflow can be triggered by Segment entered (Contact enters a saved segment) — pick one of your segments as the Segment and the flow runs for each contact who newly matches it. The drawer states the behaviour: Fires when a contact newly matches the selected segment (checked every 15 minutes). Contacts already in the segment when you save don't fire; a contact that leaves and re-enters fires again. Three things the hint doesn't say. There is no any segment option, so a trigger with no segment picked simply never fires. Entries are processed in batches of up to 200 per segment each time it is checked, so a criteria edit that suddenly matches thousands drains over several rounds rather than firing at once. And the trigger reaches a contact through their messaging channel, so an imported contact with no channel identity is recorded as having entered but never starts the flow.

Filters: narrow on the fly

Below Segments, the Filters section refines the list without saving anything. Filters combine with each other, and the header shows a Clear link when any are active.

Or just describe who you're looking for

An AI filter box sits on the toolbar — its tooltip reads AI filter — describe who you're looking for and its own example is E.g. customers who spent over $5,000 and haven't bought in 6 months. Type plain language, press Filter, and it converts your description into regular filter chips — total spent, order count, purchase dates, verified-buyer status, contact status, contact type, platform, engagement score and tags — which you can inspect and remove one at a time like any filter you set by hand. Each request describes the whole audience, so a second request replaces the first rather than adding to it, and applying one clears any selected segment. If part of your sentence has no matching filter you'll see Applied, except: …; if none of it does, Couldn't turn that into a filter — try describing the contacts differently.

  • Platform — chips for Facebook, Instagram, WhatsApp, YouTube, Telegram, Mercado Libre, Website and Imported (the bucket contacts added via CSV import land in). Pick one to show only contacts from that channel (clicking the active one clears it).
  • Tags — chips for each tag in your account. Selecting several is AND-combined: a contact must carry all of them. If you have more than eight tags, a + N more chip expands the rest.
  • Last interaction — quick windows of 24h, 7 days and 30d, plus a calendar-range button that opens a date picker for a custom last-interaction window.
  • Engagement score — a slider that sets a minimum score from 0 to 100; contacts below it drop out of the list.
Filters and segments don't stack

When a segment is selected, the Filters section is disabled and shows the note Filters apply when no segment is selected. Clear the segment (with the small × on its active chip, or by clicking another group) to filter freely again.

Broadcasts: one message, many contacts

The Broadcasts tab is where the audience you built here gets messaged. New opens the New broadcast editor, and every broadcast answers the same four questions: which channel it sends on, who it goes to, how many of them at most, and when. Afterwards, the Delivery button on the toolbar opens a per-contact report.

  • AutomationSend a workflow per contact (WhatsApp, connectors…). Every contact in the audience is run through one workflow, on the platform that workflow's account is attached to. The workflow has to be Live: a broadcast pointing at a draft is marked Failed before a single contact is attempted, with the reason The automation is still a draft — set it to Live and reschedule.
  • Email campaignCompose an email and send it through your Klaviyo account. No workflow is involved. IcloneU hands the surviving audience to Klaviyo as one campaign, and Klaviyo owns delivery, its own suppression list and the unsubscribe link from there on.
The channel is chosen once and then locked

The Channel selector only appears while the broadcast is new. Once it is saved the choice is fixed, because switching would orphan the workflow or the email you already wrote — to change channel, create a new broadcast. Everything after the channel step is shared: both channels use the same audience picker, the same Maximum contacts cap, the same schedule and the same delivery report.

  1. Name it and pick the channel

    Give the broadcast a Name, then choose Automation or Email campaign. On the automation channel you also choose the flow: Use existing to point at a workflow you already built, or Create new for this broadcast to start one that belongs only to this broadcast and is built after saving.

  2. Choose the audience

    Saved segment (Use an existing contact segment) or Custom filter (Pick status, platform, tags, engagement…), which opens the same criteria builder segments use. A live count sits underneath: N contact(s) match.

    Note

    Two groups are removed from every audience on both channels, before that count is even shown: contacts who opted out of automated messages, and archived contacts. You never have to exclude them by hand.

  3. Cap it, if you want

    Maximum contactsOptional cap on how many contacts receive this broadcast, whatever the filter matches. 0 = no limit. Set one below the number that matches and the count line becomes N contact(s) match — will send to at most N; a cap at or above that number has nothing to trim, so the plain count line stays exactly as it was.

    Heads up

    The cap counts audience rows and is applied before the per-person and per-address checks in the table below, so a capped send normally reaches fewer people than the number you set. On the email channel it can be far fewer, because the consent check also runs after the cap: cap 500 on an audience where only a tenth have given email-marketing consent and roughly fifty emails go out.

  4. Schedule it, or park it

    Send now (Dispatch on the next tick), Schedule for later (Pick a date and time) or Recurring (Repeats on a schedule) with a frequency, an end rule and a start time. Dates and times are entered and shown in your browser's timezone, not the server's. Save as draft parks it without arming anything; Schedule commits it.

The email channel needs a Klaviyo connection first

Connect Klaviyo on the Connectors tab of Automations, using a Klaviyo private API key. If the email pane says otherwise, ignore it: the message shown when no connection is found points at a Settings → Integrations page that does not exist in IcloneU. With a connection in place, the compose pane asks for Email provider connection, Subject, an optional Preview text, From name, From email (Must be a sender address verified in your Klaviyo account.) and Email body (HTML) — the body is raw HTML you paste in, there is no visual editor. The audience rule is stricter than the automation channel's, and the pane says so: Only contacts with an email address and email-marketing consent will receive it. Klaviyo also applies its own suppression and unsubscribe lists. Consent has to be recorded as a yes — a contact whose consent was never captured is excluded, not assumed.

Not everyone in the audience is attempted. A contact who is dropped gets a Skipped row in the delivery report with the reason in the Error column. Those reasons are stored in English on every account, and which ones you can see depends on the channel:

ReasonChannelWhat happened
Handover pendingBothA person on your team is handling that conversation, so no marketing goes into it.
Duplicate identityAutomationThe same human matched on two channels. One send per person; the row that can actually be messaged is kept.
Platform mismatchAutomationThe contact has no identity on the channel the broadcast sends from. Imported contacts hit this on anything but a WhatsApp send, because only a WhatsApp send can fall back to the phone number on file.
No usable phone numberAutomation (WhatsApp)The fallback needs a full international number; anything under 10 digits is skipped rather than guessed at.
Number not on WhatsAppAutomation (WhatsApp)WhatsApp already reported that number as unreachable, so it is not tried again. Correct the phone on the contact and it gets a fresh attempt.
Marketing frequency capAutomationThe contact has had too many marketing messages recently — see the callout below.
No email addressEmailNo address on file. Also appears on the automation channel when the workflow is made only of connector nodes, since those route by email rather than by platform.
No email marketing consentEmailEmail-marketing consent is not recorded as a yes for that contact. Never-captured counts as no.
Duplicate emailEmailAnother contact already in this send has the same address. One send per address, compared ignoring case.
Marketing messages share one frequency budget

On the automation channel, every contact reached is written to a single per-contact marketing ledger — broadcasts, sequence steps and store-recovery flows all draw from the same one. A contact already touched once in the last 24 hours, or three times in the last 7 days, is skipped with Marketing frequency cap. Those windows are a platform default rather than a per-account setting, so you cannot raise them from the app. And because a broadcast is one-shot, a capped contact is skipped rather than queued for later — that is the design: the cap protects the person, not the send. Two routes are exempt, both because the message doesn't leave over your channel: the email campaign channel, and an automation built only from connector nodes. In those cases the provider on the other side does its own frequency management.

Reading the delivery report

Delivery opens the Delivery report — one row per contact with Contact, Status, Sent, Delivered, Read and Error. The status ladder is Skipped, Failed, Sent, Undeliverable, Delivered, Read, and it only ever moves forward. The Delivered and Read stamps come from WhatsApp's own delivery receipts and from nothing else, so rows advance in place as those arrive — and an email recipient stops at Sent, because opens and clicks live in Klaviyo, not here. When the whole broadcast fails rather than individual contacts, the reason sits above the rows: The automation is still a draft — set it to Live and reschedule., The email provider connection was not found. Reconnect Klaviyo and reschedule., The email content is incomplete — edit the broadcast and fill in subject, sender and body., The selected connection does not support email campaigns., or The email provider rejected the campaign followed by whatever Klaviyo said.

The profile: header and tabs

Click a contact and the right panel shows their profile. At the top sits the avatar, the name, a status pill, the channel and platform, and meta lines like Contact since and Last seen. To the right are action buttons: Message (active only when the contact has an email), a phone button (active only with a phone number), an Edit pencil, and a more-actions (three-dots) button that opens an Actions menu: View Last Conversation, Opt out of messages / Opt back in, Mark as verified buyer / Remove verified buyer (a manual buyer flag for the contact's reviews, distinct from the blue Verified badge), Archive contact / Restore contact, Block contact / Unblock contact, and Erase personal data (Erase is greyed out once the data has already been erased).

Erasing personal data covers the whole person

Erase personal data opens a confirmation spelling out what goes: This permanently removes this contact's personal data — name, email, phone, profile, notes, and more. Conversation history and aggregate stats are kept on an anonymized record. This cannot be undone. You must type ERASE to enable the Erase data button — the keyword is the literal word ERASE in every language. And erasure is identity-wide: if the person has Linked contacts, the confirmation adds This person is also linked to N contact(s) on other channels. To honor the request, they will all be erased too., confirming erases every linked record in one go, and the success toast reports the total (Erased N linked contacts). To erase only one channel's record, Unlink it from the group first, then erase.

For contacts that came from a connected Shopify store, the panel also offers a View in Shopify action — a popup showing the customer's live record pulled straight from the store.

Under the header, four tabs organise everything else: Overview, Activity, Notes and Files. The Activity tab carries a count of the conversations, post comments, reviews and questions it lists, and Notes shows a small badge when a note exists.

Editing what you can edit

The pencil (in the header or on the Details section) switches the profile into edit mode, where you can fill in fields like email, phone, source, language, country, timezone, username, gender, website, profile link and biography. Click Save to keep them or Cancel to back out. The AI-observed and lead-qualification parts of the profile are read-only — they fill in from conversations, not by hand.

Overview tab

Overview is the at-a-glance profile. It opens with an engagement strip of four cells — Engagement (a 0–100 score with a tier label like high or low), Sessions, Messages, and a Sentiment trend — then the sections below, each shown only when there's something to show.

  • Details — the known contact fields. Empty fields are collapsed into a Not provided box with an + Add button rather than cluttering the layout.
  • Linked contacts — the other channels where this same person has reached you, with a Link button to group records by hand (covered below).
  • Campaign attribution — first-touch and, when it differs, last-touch UTM data (campaign, source, medium, term, content), showing how the contact was acquired and whether they returned via a different campaign. When the contact is linked across channels and a combined journey exists, the Cross-channel journey card replaces this one (covered below).
  • Tags & Segments — the contact's tags (with an Add tag control) and the segments they belong to.
  • Lead qualification — interest level, a qualification score, collected fields, products of interest and buying signals, all written by the Clone (covered below).
  • Custom fields — the extra values held on the contact, when any exist. The hint beside the section reads written by Automations; an automation is one source, and a CSV import or the public API fills the same fields.
  • Engagement (commerce) — purchase count, total value and last purchase date, shown only when there are purchases. These are the same numbers the Purchases criteria in a segment match on.
  • Latest conversation — a preview of the most recent chat, with a link through to the full Activity tab.
Where a tag came from

Tags carry their provenance. A tag the AI applied is marked AI, one applied by an automation rule is marked AUTO, and tags you add by hand carry no marker. Hovering a tag shows the source and the date it was assigned.

Linked contacts: one person, many channels

The same person often reaches you on more than one channel — a WhatsApp message one day, an Instagram DM the next. Each channel keeps its own contact row, but IcloneU groups those rows into one identity, and the Linked contacts section (right under Details on the Overview tab) is where you see and manage the group. When links exist, it lists each linked record with its channel under the hint The same person reached you on these channels.; until then it reads No linked contacts yet. The group's most-recently-active record is flagged Primary — the best channel to reach the person on. Where IcloneU recorded how a link was made, the linked row shows a small provenance chip — Linked via email, Linked via phone, Matched by Meta, or Linked manually — with the date it was linked.

  • Automatic linking — contacts in your account are grouped when they share an email (case and surrounding spaces ignored) or a phone number. Phone matching compares the last 10 digits, so a number saved with a country code and one saved without still match (numbers under 7 digits are never matched). A WhatsApp contact's number and an email-channel contact's address count as identifiers too.
  • Links can appear later — when your Clone collects an email or phone during lead qualification, or an automation saves an email or phone field, the value fills the contact's empty Email/Phone field (it never overwrites one already there) and matching is re-checked. Facebook and Instagram contacts can also link automatically when Meta confirms they're the same person.
  • Manual linking — click Link on the section header, type into the picker (Search a contact by name, email or phone, then press Enter) and click a result to link it — a Contact linked toast confirms. If nothing matches, it reads No matching contacts.
  • Unlinking — every linked row carries an Unlink control (Contact unlinked). Unlinking detaches just that channel's record; when only one member would remain, the group dissolves.

Linking also changes what Overview shows. When a contact is linked and a combined journey exists, a Cross-channel journey card replaces Campaign attribution: its hint reads Combined across N channels (N linked contacts)., and up to three steps appear — First touch, Last touch and Qualified by — each with the channel icon, the channel and campaign (or the raw source when no campaign was recorded) and a date. When the linked profiles have purchases, a footer totals them across the whole group, e.g. $500 across 3 purchases.

Lead qualification, explained

When your Clone is set up to qualify leads, the Overview tab includes a Lead qualification card built entirely from what the Clone observed in conversation — you don't fill any of it in.

  • Interest Level — a 1-to-5 scale with a caption, from Casual browser at 1 up to Ready to buy at 5.
  • Qualification Score — a 0–100% bar, with the note Recalculated after every update.
  • Collected Information — the lead fields the Clone has gathered, each ticked or marked Not yet collected, with an N/N required progress count.
  • Products of Interest — products the contact mentioned, each with its own 1-to-5 interest and a mention count.
  • Buying Signals — moments the Clone flagged, such as Pricing inquiry, Budget mentioned or Ready to buy, each with a confidence and a date.

Which fields the Clone collects comes from the Fields tab. If nothing has been gathered yet, the card reads No qualification details collected yet.

Activity, Notes and Files

Activity is the contact's history. At the top, when there's a recent exchange, an AI card summarises the last interaction (Last interaction — AI summary). Below it, Recent conversations lists past chats as rows — each with the channel, a date and message count, and a summary line. Click a row to jump into that conversation. Below it, when the contact has commented on your Facebook or Instagram posts, a Post comments section lists those comments — each with the platform, a date and the comment text, plus the post caption shown as on "…" when the post has one. Below that, when the contact has left reviews or asked questions through the reviews widget, a Reviews section and a Questions section list them — each review with its star rating, the item reviewed, a date and a status; each question with the item, a date, a status and the question text. When there are no conversations, post comments, reviews or questions, the tab reads No activity yet.

Notes has two clearly separate parts. The top is your own Notes — a free-text card only your team sees; use Add note to write one and Save to keep it. Below it, AI-observed is a read-only block (read-only · updated from conversations) where the Clone records interests and a communication style it inferred. Until it has observed anything, it reads Nothing observed yet — this fills in as conversations happen.

Files is a placeholder for now

The Files tab is designed for attachments from conversations and team uploads, but the storage behind it isn't built yet. Today it shows No attachments yet. and a dropzone reading Team file uploads are coming soon. — there's nothing to do here until that ships.

Tagging a contact

System tags

Tags that arrive with an import or a store connection are managed by the platform. On the Tags tab they carry a System badge (its tooltip reads System-managed tag), and on a contact they show a small robot icon next to the tag name. Open one and the name field is locked, with the reason spelled out: System tag — its name is managed by the platform and shown in each user's language. Color and folder can still be changed. So renaming and deleting are off the table, but you can restyle one and remove it from a contact.

Tags are the most useful thing you can add by hand — they drive the Tags filter and dynamic-segment membership. You manage a contact's tags from the Tags & Segments section on the Overview tab.

  1. Open the tag editor

    On the contact's Overview tab, click Add tag in the Tags & Segments section. A tag picker appears.

  2. Pick existing tags

    Choose one or more tags from the dropdown. They're added to the contact as you select them.

  3. Create a tag on the spot

    Need a tag that doesn't exist yet? Use New Tag to create one without leaving the contact — it's added and assigned in one step.

  4. Remove a tag

    Each assigned tag has a small × — click it to remove the tag from this contact.

Tip

Tags also get applied automatically — by the AI from conversation analysis, or by an automation rule — so a contact may already carry tags you didn't add. The AI and AUTO markers tell you which is which.

Frequently asked

From your connected channels, and from CSV import. When a person first messages your Clone on WhatsApp, Facebook, Instagram, Telegram, YouTube, web chat or another connected channel, IcloneU creates a contact for them automatically and keeps enriching it as the conversation continues. You can also bulk-add contacts from a spreadsheet with the Import button (see Importing contacts from a CSV) — only manual one-at-a-time creation is still pending, so the New Contact button shows a Coming soon notice.

Phone matching compares the last 10 digits of the number, so +52 1 55 1234 5678 and 55 1234 5678 count as the same phone — a number saved with a country code and one saved without still match (anything under 7 digits is never compared). Emails match ignoring case and surrounding spaces. Links can also form without a shared number: Facebook and Instagram contacts can link when Meta confirms they're the same person, an email or phone your Clone collects in conversation can complete a match, and links may appear on long-standing contacts after an upgrade back-fills the matching. If a link is wrong, open the contact and click Unlink on that row — a Contact unlinked toast confirms.

The count is how many contacts match, not how many are messaged. Between the two sit the Maximum contacts cap (applied first, to audience rows), the one-send-per-person and one-send-per-address checks, the frequency cap on the automation channel, and the email channel's requirement for an address plus recorded email-marketing consent. Open the Delivery report and read the Error column on the Skipped rows — every drop is recorded there with its reason, and the table in Broadcasts above says what each one means.

Because no name has been captured yet. Some channels don't share a display name up front, and a contact can talk to your Clone without ever giving one. You can add a name yourself with the Edit pencil, or the Clone may pick one up later in conversation.

A static segment is a Manually curated contact list — but nothing in IcloneU can add a contact to one yet, so in practice it stays empty and is not usable as an audience. A dynamic segment is Auto-matched by filter criteria: it stores a set of filters and re-applies them every time you open it, so membership stays current as contacts come and go. Dynamic segments are marked with a small lightning bolt, and they are the ones to build.

No — those are read-only. The qualification score, interest level, buying signals, observed interests and communication style are all written by the Clone from conversations. What you can edit are the contact's own fields (email, phone, source, language, and so on) via the Edit pencil, and your own team Notes, which are separate from the AI-observed block.

Yes — the public API's contact endpoints take them. Creating or updating a contact accepts a custom_fields object of field key to value: at most 50 entries per request, each key 1–100 characters, each value up to 4,000 characters, and a null value clears that key. Write dates as yyyy-MM-dd — the same shape the CSV importer stores — so a workflow's date trigger can read them. Those calls need a public API key created on the API Keys tab of Automations, on the Standard or Full Access level; the Web chat keys covered in Creating and managing API keys are a different credential and won't authenticate them.

The Files tab is a designed-forward placeholder for a feature still in progress — the storage behind it isn't built yet, so it shows Team file uploads are coming soon. There's nothing to do there until it ships.

Was this guide helpful?
Thanks for the feedback!

Last updated August 25, 2026 · Contacts

Reconnecting to the server… Reload
🗙
Connecting…
Connection lost
Reconnecting to the server…
We couldn't reconnect automatically.