ZyanDocs

Add and manage clients

Create a client record, find it again with the filters and type lens, use the row actions, and understand exactly what deleting a client removes.

The clients directory at DeliveryClients is the list of everyone you work for. Each row shows the client, their portal state, project count, billing status, onboarding status and when it last changed. Adding a client here creates an internal record — nothing is sent, and no login exists yet.

Before you start

You need the Clients (view) permission to open the list and the crm_clients plan feature. Individual row actions appear per permission: portal actions need Client Portals (edit), billing entries need Billing (edit).

Add a client

Open the clients directory

Go to DeliveryClients. It opens on the All filter.

Click New client

Fill in the record

Name, company, email, phone and notes. The email matters more than it looks: it becomes the portal login later.

Set a Status

active, lead or archived.

Save

New client creates an internal record only

No portal, no invite, no auth user. The dialog says so itself. To give the client a login, use Create a client portal afterwards.

Find a client again

Two rows of filter chips sit above the grid, and both are written into the URL so you can bookmark or share a filtered view.

SettingWhat it changesDefault
All / With portal / Invited / Active / No portalWhich clients the grid lists. Written to the filter parameter in the URL.All
All types / Leads / SEO / Backlinks / Ads / Content / Website / GeneralFilters by the client's derived type. Written to the type parameter in the URL.All types
SearchMatches on client name or email address.
StatusThe client record's own state, set on New client and Edit client rather than from the grid: active, lead or archived.active

Client type is worked out, never stored

The type chip is derived at render time — first from the portal kind, then from the client's entitlements, then from whether they have a project. A client with none of those signals shows no chip at all. That is normal, not a bug.

Row actions

The kebab at the right of each row holds the shortcuts you would otherwise open the client detail page for:

ActionNotes
View client detailsOpens the client page
Open projectJumps to the linked project
Create portalOnly appears while the client has no portal yet
Bill this client… / Billing settingsNeeds Billing (edit); hidden inside the iOS admin shell
Resend portal inviteOnly appears while onboarding status is Invited
Mark onboarding complete / Reopen onboardingAn admin tracking flag
Delete clientNeeds the delete permission

Mark onboarding complete does not close anything

It is a tracking flag for your own reporting. You can still send forms, tasks and onboarding packs to that client afterwards.

The client detail page

Open a client and you get section pills across the top:

  • Overview — portal access card, onboarding timeline, billing summary and plan-change requests. A dot appears when billing needs attention.
  • Client visibility — the add-on request queue and the per-service, per-website matrix. The badge counts pending add-on requests.
  • Projects, Activity, Schedule — work, interaction history and scheduling. Growth is owner-only.
  • Settings — the portal settings panel, portal lifecycle and the danger zone.

The Activity pill still uses its old URL key

Bookmarks and deep links to Activity use ?section=interactions. The label was renamed, the key was not — both point at the same place.

Deleting a client

Delete client removes the client row only. Their portals and projects survive, which means a deleted client can leave a portal behind with no client record attached to it. That portal becomes an internal portal, still reachable by its own link but no longer manageable from a client page.

You can undo that: create a client whose email matches the portal's access email, and the portal attaches to that client page like any other. The internal portal screen says as much when you open it.

Delete the portal first if you want it gone

Deleting a portal is a separate, owner-only action with its own typed confirmation. See the portal lifecycle.

Troubleshooting

SymptomCauseFix
Create portal is missing from the kebabThe client already has a portalOpen the client and manage the existing portal
"Add a client email before creating portal access"The record has no email; the portal login is the emailEdit the client, add the email, reopen Create portal
Resend portal invite is not in the menuIt only shows while onboarding status is InvitedCheck the portal's status on the Overview tab
A client shows no type chipType is derived, and this client has no portal kind, entitlement or projectNothing to fix — it fills in once they have one
Billing entries are missing from the kebabYou are in the iOS admin shell, or lack Billing (edit)Use the web admin, or ask an owner for the permission
A deleted client left a portal behindDelete removes the client row onlyCreate a client using that portal's access email to reattach it, or delete the portal itself