@aglyn/aglyn 1.0.0-beta.162 → 1.0.0-beta.164

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/package.json +10 -10
  2. package/src/lib/app-utils/campaign-membership.d.ts +12 -2
  3. package/src/lib/app-utils/campaign-membership.js +13 -2
  4. package/src/lib/app-utils/campaign-membership.js.map +1 -1
  5. package/src/lib/app-utils/collection-entry-date.d.ts +25 -17
  6. package/src/lib/app-utils/collection-entry-date.js +55 -20
  7. package/src/lib/app-utils/collection-entry-date.js.map +1 -1
  8. package/src/lib/app-utils/console-routes.d.ts +2 -0
  9. package/src/lib/app-utils/console-routes.js +22 -0
  10. package/src/lib/app-utils/console-routes.js.map +1 -1
  11. package/src/lib/app-utils/crm.d.ts +8 -0
  12. package/src/lib/app-utils/crm.js.map +1 -1
  13. package/src/lib/app-utils/docs-index.generated.js +6 -6
  14. package/src/lib/app-utils/docs-index.generated.js.map +1 -1
  15. package/src/lib/app-utils/notifications.d.ts +32 -1
  16. package/src/lib/app-utils/notifications.js +69 -17
  17. package/src/lib/app-utils/notifications.js.map +1 -1
  18. package/src/lib/app-utils/platform-brand.d.ts +21 -0
  19. package/src/lib/app-utils/platform-brand.js +22 -1
  20. package/src/lib/app-utils/platform-brand.js.map +1 -1
  21. package/src/lib/canvas-manager/canvas-manager.d.ts +52 -0
  22. package/src/lib/canvas-manager/canvas-manager.js +67 -2
  23. package/src/lib/canvas-manager/canvas-manager.js.map +1 -1
  24. package/src/lib/foundation/definitions/platform.types.d.ts +16 -0
  25. package/src/lib/foundation/definitions/platform.types.js +1 -0
  26. package/src/lib/foundation/definitions/platform.types.js.map +1 -1
  27. package/src/lib/plugin-manager/plugin-membership-detach.d.ts +55 -0
  28. package/src/lib/plugin-manager/plugin-membership-detach.js +102 -0
  29. package/src/lib/plugin-manager/plugin-membership-detach.js.map +1 -0
@@ -3516,7 +3516,7 @@ export const ASSIST_DOCS_INDEX = [
3516
3516
  title: 'Bulk actions',
3517
3517
  heading: 'Leads',
3518
3518
  anchor: '#leads',
3519
- text: '| Action | What happens |\n| Set owner | Pick a team member, or Nobody to clear the owner. The lead alone is assigned; its contact, when there is one, is assigned from its own record. |\n| Set status | Pick New or Working. A lead already at that status is skipped and named, and a converted lead is left alone — its status is its conversion. Setting a closed lead back to Working reopens it and clears its reason, as the row does. |\n| Unqualify | Asks for one reason, then closes every open selected lead with it; the reason is kept on each so the lead funnel can count it. Leads already closed or converted are skipped and named. |\n| Export CSV | Download the selected leads as leads-selected.csv — the same file the list\'s Export CSV writes: email, name, status, the owner by email address, the sources by name joined with \\|, first and last seen, how many times the person was captured, the unqualified reason, when the lead converted, and notes. The list\'s Import CSV reads the columns a file may set back in; the capture columns are its to write, not yours. |\n| Clear | Deselect everything. |\nA lead\'s owner and status are the team\'s own notes on a capture — no event and no notification fire — so the bar writes them directly, the way the row\'s inline controls do.'
3519
+ text: '| Action | What happens |\n| Set owner | Pick a team member, or Nobody to clear the owner. The lead alone is assigned; its contact, when there is one, is assigned from its own record. |\n| Set status | Pick New or Working. A lead already at that status is skipped and named, and a converted lead is left alone — its status is its conversion. Setting a closed lead back to Working reopens it and clears its reason, as the row does. |\n| Unqualify | Asks for one reason, then closes every open selected lead with it; the reason is kept on each so the lead funnel can count it. Leads already closed or converted are skipped and named. |\n| Add to campaign | Pick one or more of the site\'s campaigns; each selected lead is filed under them beside the campaigns it is already in. Under a site only — a campaign belongs to one site. Grouping, not consent: nothing is mailed. |\n| Export CSV | Download the selected leads as leads-selected.csv — the same file the list\'s Export CSV writes: email, name, status, the owner by email address, the sources by name joined with \\|, first and last seen, how many times the person was captured, the unqualified reason, when the lead converted, and notes. The list\'s Import CSV reads the columns a file may set back in; the capture columns are its to write, not yours. |\n| Clear | Deselect everything. |\nA lead\'s owner and status are the team\'s own notes on a capture — no event and no notification fire — so the bar writes them directly, the way the row\'s inline controls do.'
3520
3520
  },
3521
3521
  {
3522
3522
  path: '/content-and-data/crm/bulk-actions',
@@ -3957,14 +3957,14 @@ export const ASSIST_DOCS_INDEX = [
3957
3957
  title: 'Leads',
3958
3958
  heading: 'What a lead holds',
3959
3959
  anchor: '#what-a-lead-holds',
3960
- text: 'A lead is a record of its own — the way it is in Salesforce — and carries the person and their company as text until it converts:\n| Field | Notes |\n| Email | The identity: a site holds one lead per address. |\n| Name | The person\'s name. |\n| Company | The company\'s name, typed. Not a link — a thousand imported leads must not create a thousand companies. Converting is what links or creates the company record, by this name or by the address\'s domain. |\n| Job title, Phone, Website | As on a business card. The phone is stored with its country code; the website as a full address. |\n| Lead source | Where the lead came from, in your words — Sales Navigator, Trade show, Referral. Distinct from Sources below, which the site records. |\n| Tags | Comma-separated, lower-cased. |\n| Address | Street, city, state, postal code and a two-letter country code. |\n| Status, Owner, Notes | The working state — see The Leads list. |\nEvery one of them is editable on the lead\'s page, comes in through Import CSV, and is handed to the contact when the lead converts.\nAdding a lead by hand\nNew lead, at the top of the Leads list, opens a drawer over the list — the list stays exactly where it was. Type what you know: the email is the one required field, and the company, title, phone, website, lead source, status, owner, tags, address and notes are optional. At the organization level the drawer first asks which site to file the lead under, since a lead is private to one site.\nIt creates a lead and nothing else. No contact and no company are made — that is what converting does, once the lead is real. If the site already holds a lead for the address, what you typed is written onto it and the page says so. Adding a lead is never marketing consent, so none is recorded.'
3960
+ text: 'A lead is a record of its own — the way it is in Salesforce — and carries the person and their company as text until it converts:\n| Field | Notes |\n| Email | The identity: a site holds one lead per address. |\n| Name | The person\'s name. |\n| Company | The company\'s name, typed. Not a link — a thousand imported leads must not create a thousand companies. Converting is what links or creates the company record, by this name or by the address\'s domain. |\n| Job title, Phone, Website | As on a business card. The phone is stored with its country code; the website as a full address. |\n| Lead source | Where the lead came from, in your words — Sales Navigator, Trade show, Referral. Distinct from Sources below, which the site records. |\n| Tags | Comma-separated, lower-cased. |\n| Campaigns | The site\'s campaigns the lead is filed under, picked by name. Grouping, not consent: it decides which campaign pages list the lead, never whether anything mails them. Enrolling the lead in a sequence that is in a campaign files it there too. |\n| Address | Street, city, state, postal code and a two-letter country code. |\n| Status, Owner, Notes | The working state — see The Leads list. |\nEvery one of them is editable on the lead\'s page, comes in through Import CSV, and is handed to the contact when the lead converts.\nAdding a lead by hand\nNew lead, at the top of the Leads list, opens a drawer over the list — the list stays exactly where it was. Type what you know: the email is the one required field, and the company, title, phone, website, lead source, status, owner, tags, address and notes are optional. At the organization level the drawer first asks which site to file the lead under, since a lead is private to one site.\nIt creates a lead and nothing else. No contact and no company are made — tha'
3961
3961
  },
3962
3962
  {
3963
3963
  path: '/content-and-data/crm/leads',
3964
3964
  title: 'Leads',
3965
3965
  heading: 'The Leads list',
3966
3966
  anchor: '#the-leads-list',
3967
- text: 'The list shows the most recently seen leads first — a person who booked yesterday sits above one who signed up last month, whichever came first. Each row carries:\n| Column | What it shows |\n| Lead | The name the person gave, with their email beneath it — or the email alone. |\n| Company, Title | The lead\'s own company and job title, as text. |\n| Status | New, Working, Qualified or Unqualified. Change it in place from the row. |\n| Email | The last verdict on the lead\'s address — see Email state — or a dash when nothing is known. |\n| Owner | The team member working the lead, or Unassigned. A lead inherits its contact\'s owner when one is assigned on capture. |\n| Source | Every surface that captured this person: Booking, the form they submitted, an import, New lead, or the API — and Sign-up on leads filed before sign-ups stopped making leads. |\n| Tags | The lead\'s tags. |\n| Last seen | When the person last did something on your site. |\nThe Show control at the top of the card picks the view. Open — the default — is every lead that still needs working (New and Working). The other views are one status each, and All shows everything. A lead nobody has touched yet has no status of its own and reads as New, so the leads your site collected before the CRM existed are already in the Open view. The Email control beside it narrows by the address\'s verdict — Cannot be emailed for every lead a sender has refused, one verdict on its own, or Nothing known — and keeps the status you chose.\nThe list reads the 200 most recently seen leads and shows them a page at a time, with the usual footer to turn the page and pick how many rows it holds. When a site holds more than 200, a notice says so; the status filter narrows those 200, and older leads are still listed in the Inbox and still reached '
3967
+ text: 'The list shows the most recently seen leads first — a person who booked yesterday sits above one who signed up last month, whichever came first. Each row carries:\n| Column | What it shows |\n| Lead | The name the person gave, with their email beneath it — or the email alone. |\n| Company, Title | The lead\'s own company and job title, as text. |\n| Status | New, Working, Qualified or Unqualified. Change it in place from the row. |\n| Email | The last verdict on the lead\'s address — see Email state — or a dash when nothing is known. |\n| Owner | The team member working the lead, or Unassigned. A lead inherits its contact\'s owner when one is assigned on capture. |\n| Source | Every surface that captured this person: Booking, the form they submitted, an import, New lead, or the API — and Sign-up on leads filed before sign-ups stopped making leads. |\n| Tags | The lead\'s tags. |\n| Campaign | The campaigns the lead is filed under, by name. Under a site only — a campaign belongs to one site. |\n| Last seen | When the person last did something on your site. |\nThe Show control at the top of the card picks the view. Open — the default — is every lead that still needs working (New and Working). The other views are one status each, and All shows everything. A lead nobody has touched yet has no status of its own and reads as New, so the leads your site collected before the CRM existed are already in the Open view. The Email control beside it narrows by the address\'s verdict — Cannot be emailed for every lead a sender has refused, one verdict on its own, or Nothing known — and keeps the status you chose. The Campaign control narrows to the leads filed under one of the site\'s campaigns, by name, and keeps the other two; all three are part of the saved view.\nThe list reads the 200 most recentl'
3968
3968
  },
3969
3969
  {
3970
3970
  path: '/content-and-data/crm/leads',
@@ -3978,7 +3978,7 @@ export const ASSIST_DOCS_INDEX = [
3978
3978
  title: 'Leads',
3979
3979
  heading: 'Converting a lead',
3980
3980
  anchor: '#converting-a-lead',
3981
- text: 'When a lead is real, click Convert on the lead\'s page, or choose Convert… from its row\'s menu on the list — the same dialog either way, from the list in one click. The dialog asks three things:\n1. Contact. The lead becomes a contact at the Sales qualified lifecycle stage, carrying the lead\'s phone, job title, address, tags, notes and company name, owned by whoever you pick — the lead\'s owner by default. Pick nobody and the workspace\'s assignment rules and the site\'s default owner decide, and failing those the contact is yours. A colleague you pick is notified; you are not told about a contact you kept. If this email address is already a contact, the conversion joins that contact rather than creating a second one — the address book stays one row per person — and a contact that already has an owner keeps them.\n2. Company. No company, Link an existing company, or Create a company. The dialog proposes from the lead\'s own Company text first: a company your workspace already files under that name is preselected, whatever its domain; otherwise one at the address\'s domain; otherwise a new company named as the lead names it, with the domain filled in when the address has one. A lead with no company text at a public mailbox such as Gmail proposes nothing.\n3. Deal. Tick Open a deal to open one in your default pipeline with a title, an amount, a currency and a starting stage. A workspace with no pipeline yet gets a Sales pipeline with the default stages created along with the deal.\nConverting marks the lead Qualified, records what it became, and takes you to the new contact\'s page. What was filed on the lead follows it: the calls, emails, notes and tasks logged on the lead appear on the contact\'s timeline and task list too, and a sequence the lead was enrolled in carries on with th'
3981
+ text: 'When a lead is real, click Convert on the lead\'s page, or choose Convert… from its row\'s menu on the list — the same dialog either way, from the list in one click. The dialog asks three things:\n1. Contact. The lead becomes a contact at the Sales qualified lifecycle stage, carrying the lead\'s phone, job title, address, tags, campaigns, notes and company name, owned by whoever you pick — the lead\'s owner by default. Pick nobody and the workspace\'s assignment rules and the site\'s default owner decide, and failing those the contact is yours. A colleague you pick is notified; you are not told about a contact you kept. If this email address is already a contact, the conversion joins that contact rather than creating a second one — the address book stays one row per person — and a contact that already has an owner keeps them.\n2. Company. No company, Link an existing company, or Create a company. The dialog proposes from the lead\'s own Company text first: a company your workspace already files under that name is preselected, whatever its domain; otherwise one at the address\'s domain; otherwise a new company named as the lead names it, with the domain filled in when the address has one. A lead with no company text at a public mailbox such as Gmail proposes nothing.\n3. Deal. Tick Open a deal to open one in your default pipeline with a title, an amount, a currency and a starting stage. A workspace with no pipeline yet gets a Sales pipeline with the default stages created along with the deal.\nConverting marks the lead Qualified, records what it became, and takes you to the new contact\'s page. What was filed on the lead follows it: the calls, emails, notes and tasks logged on the lead appear on the contact\'s timeline and task list too, and a sequence the lead was enrolled in carries'
3982
3982
  },
3983
3983
  {
3984
3984
  path: '/content-and-data/crm/leads',
@@ -4251,7 +4251,7 @@ export const ASSIST_DOCS_INDEX = [
4251
4251
  title: 'Sequences',
4252
4252
  heading: 'Sequences',
4253
4253
  anchor: '#sequences',
4254
- text: 'A sequence is the emails, and the tasks between them, one person gets from one rep. Sequences → All sequences lists each one with its mailbox, its status, and how many people it has enrolled, and how many of them are still active, replied, bounced or opted out.\nBuild a sequence {#build-a-sequence}\nSelect New sequence, name it, and choose the site whose CRM the people you enroll are contacts of and the mailbox it sends from. A sequence sends as the member who connected its mailbox, so only that member, or an organization owner or admin, can edit or activate it.\nThe Mailbox list offers the mailboxes you connected, and an owner or admin every mailbox in the organization. A disconnected mailbox is never offered. When exactly one of your own mailboxes is active, a new sequence starts on it. With none, connect one first.\nA sequence holds up to eight steps, of which up to four are emails:\n- Email — a subject and a body, or a CRM email template whose body is sent. Insert merge fields — the contact\'s first name, company or job title, your own name, the site\'s name — and {{enrollment.personalLine}}, the sentence you write for each person when you enroll them. Every email after the first replies in the first one\'s thread unless you turn Reply in the same thread off, in which case it starts a new thread and needs its own subject.\n- Task — a LinkedIn touch, a Call or a To-do for you, with a title.\nEach step waits a number of business days after the one before it — up to 30, and at least 1 between emails — counted in the mailbox\'s timezone. The first step can wait 0 days: it goes at the next opening of the sending window. By default a sequence sends in its mailbox\'s sending hours; Sending hours sets hours of its own for this sequence.\nThe Preview beside the editor shows each email as'
4254
+ text: 'A sequence is the emails, and the tasks between them, one person gets from one rep. Sequences → All sequences lists each one with its mailbox, its status, and how many people it has enrolled, and how many of them are still active, replied, bounced or opted out.\nBuild a sequence {#build-a-sequence}\nSelect New sequence, name it, and choose the site whose CRM the people you enroll are contacts of and the mailbox it sends from. A sequence sends as the member who connected its mailbox, so only that member, or an organization owner or admin, can edit or activate it.\nThe Mailbox list offers the mailboxes you connected, and an owner or admin every mailbox in the organization. A disconnected mailbox is never offered. When exactly one of your own mailboxes is active, a new sequence starts on it. With none, connect one first.\nA sequence holds up to eight steps, of which up to four are emails:\n- Email — a subject and a body, or a CRM email template whose body is sent. Insert merge fields — the contact\'s first name, company or job title, your own name, the site\'s name — and {{enrollment.personalLine}}, the sentence you write for each person when you enroll them. Every email after the first replies in the first one\'s thread unless you turn Reply in the same thread off, in which case it starts a new thread and needs its own subject.\n- Task — a LinkedIn touch, a Call or a To-do for you, with a title.\nEach step waits a number of business days after the one before it — up to 30, and at least 1 between emails — counted in the mailbox\'s timezone. The first step can wait 0 days: it goes at the next opening of the sending window. By default a sequence sends in its mailbox\'s sending hours; Sending hours sets hours of its own for this sequence.\nCampaigns files the sequence under one or more of'
4255
4255
  },
4256
4256
  {
4257
4257
  path: '/content-and-data/crm/sequences',
@@ -6358,7 +6358,7 @@ export const ASSIST_DOCS_INDEX = [
6358
6358
  title: 'The console tour',
6359
6359
  heading: 'Workspace settings & notifications',
6360
6360
  anchor: '#workspace-settings--notifications',
6361
- text: 'Organization-wide settings (name, workspace URL) live under Organization → Settings, which also holds Profile, API keys, Branding, Single sign-on, Privacy, Ownership and Delete. Turning plugins on and off for the workspace is its own section, Organization → Plugins — Marketplace is for finding and installing new ones, not for administering what you already run:\nThe notifications feed\nYour in-app notification feed — billing, publishing, workflow failures — lives under Notifications, which has two sections in the rail on the left: All notifications and Settings. The first shows what arrived, newest first, with Mark all read above it:\nNotification settings\nEverything about what reaches you lives on the second section, Settings.\nWhat you are told about is a table: one row per category, one column for In console and one for Email. Each row says what arrives in that category, so you are never switching off a bucket you would have to guess the contents of.\n- In console is on for every category. Switching it off stops that category appearing in the feed and in the bell.\n- Email is off for every category. Switch one on and you also get a message in your inbox when one of those notifications arrives. This does not touch the mail Aglyn already sends you — invites, verification, receipts, password resets and dunning are separate, and are not affected by anything on this page.\nRows marked Staff only are Aglyn\'s own — they are shown to staff and reach nobody else.\nOne kind at a time\nOpen a category with the arrow beside its name and it lists the individual notifications inside it, each with its own In console and Email switches. A switch here shows what would actually happen: its own answer if you have given one, otherwise its category\'s.\nSet one and the row is marked Set, with Follo'
6361
+ text: 'Organization-wide settings (name, workspace URL) live under Organization → Settings, which also holds Profile, API keys, Branding, Single sign-on, Privacy, Ownership and Delete. Turning plugins on and off for the workspace is its own section, Organization → Plugins — Marketplace is for finding and installing new ones, not for administering what you already run:\nThe notifications feed\nYour in-app notification feed — billing, publishing, workflow failures — lives under Notifications, which has two sections in the rail on the left: All notifications and Settings. The first shows what arrived, newest first, with Mark all read above it:\nNotification settings\nEverything about what reaches you lives on the second section, Settings.\nWhat you are told about is a table: one row per category, one column for In console and one for Email. Each row says what arrives in that category, so you are never switching off a bucket you would have to guess the contents of.\n- In console is on for every category. Switching it off stops that category appearing in the feed and in the bell.\n- Email is off for every category. Switch one on and you also get a message in your inbox when one of those notifications arrives. This does not touch the mail Aglyn already sends you — invites, verification, receipts, password resets and dunning are separate, and are not affected by anything on this page.\nRows marked Staff only are Aglyn\'s own — they are shown to staff and reach nobody else. They are about the platform rather than any one workspace, which is why they appear here and not under One workspace or one site.\nOne kind at a time\nOpen a category with the arrow beside its name and it lists the individual notifications inside it, each with its own In console and Email switches. A switch here shows what wo'
6362
6362
  },
6363
6363
  {
6364
6364
  path: '/getting-started/create-a-site',