Turn transcripts, docs, or notes into structured help articles with AI. Fini drafts, deduplicates, and routes new content through Review before publishing.
Magic Articles (the Generate page in the dashboard) is one of the main ways knowledge enters Fini’s Knowledge model. Instead of writing an Article by hand, you paste raw content: a transcript, a Notion dump, a release-notes draft, a customer ticket explaining a workflow, and Fini generates a structured article in your knowledge base format. It also decides what kind of operation makes sense: is this a new article, an update to an existing one, or a duplicate that doesn’t need to land?
Where Magic Articles fits in the flow. Magic Articles produces drafts. Those drafts can go to Review Queue or directly to the Published tab, depending on Status After Generation. Either way, they land in Articles, which is the source of truth your agents retrieve from. Magic Articles doesn’t bypass Articles, it’s a fast lane into it.
Use Magic Articles when you have unstructured content you want to turn into curated knowledge.
Generation Action
The Generation Action section exposes three tiles, each with a checkbox. Unlike a single radio choice, these are allowed behaviors, you can enable any combination, and the AI chooses which one to apply based on what your raw content actually looks like.
Create New Article
Always create a new article. Don’t merge with existing. Use when you know the content is genuinely new and don’t want Fini second-guessing.
Update Existing
Find the closest match and update it. Flag if no match found. Use when the content is most likely a revision of something already in your knowledge graph.
Detect Duplicates
Check against existing articles and flag overlaps without writing. No article is created. Use to audit a batch of content before committing, pairs well with bulk generation.
The page reads “AI will intelligently choose between the enabled options.” Practical combinations:
All three enabled (default). Fini decides between create, update, and flag-as-duplicate based on overlap with your existing articles. The safest setting for most runs.
Just Create New Article. Force new article creation regardless of overlap. Use when you’re certain the content is novel and don’t want a near-duplicate to silently turn into an “update.”
Just Detect Duplicates. Dry-run mode. No writes happen, Fini only tells you which of your raw inputs duplicate existing articles. Useful before a bulk import.
Update Existing + Detect Duplicates (no Create). Conservative mode. Fini will only update or flag, never create new articles. Use when you’re consolidating, not expanding.
This is the layer where Magic Articles helps prevent the conflict-and-duplication problem that Review Queue exists to solve. By letting you choose which behaviors are allowed, Fini routes your content through the right consolidation path instead of blindly creating yet another near-duplicate article.
Generating an article
1
Paste raw content
Drop your content into Raw Content. Helper text reads “Paste notes, emails, Slack threads, docs”. Markdown, plain text, transcripts, exported docs all work. There’s no firm length limit; longer inputs produce richer articles but take longer to generate.
2
Add Additional Instructions (optional)
The Additional Instructions field tells Fini how to shape the article: tone, audience, what to emphasize, what to skip.Useful examples:
“The new content should replace the old, treat it as new source of truth.”
“Strip out internal jargon; phrase for end customers.”
“Focus on the steps the customer takes, not the underlying API.”
“This applies only to Enterprise customers, note that in the article.”
“Match anything” or “Focus on billing topics” (the placeholder shows lightweight scoping examples).
3
Pick a Target Bot (optional)
The dropdown narrows the operation to articles attached to that agent. Fini compares against that agent’s existing articles when deciding create vs update vs duplicate.Leave it unset and the helper text reads “No bot selected — available to all.” The article will be created against the workspace’s full knowledge graph and made available to every agent.
Because duplicate detection is scoped to the selected agent, the same content can land as a duplicate for one agent and a brand-new article for another. If you run a multi-agent workspace, pick the agent whose knowledge base this content most logically belongs to.
4
Pick Status After Generation
Toggle between two options:
Live, the page warns: “Generated articles will be published immediately and available to your bots.” Use only when you’re regenerating known-good source content, working solo, or running a trusted bulk import.
Suggest for Review, the generated article goes to Review Queue for vetting before serving customer queries. Recommended for almost all runs, it’s the safety net that catches LLM hallucinations, wrong folder picks, and unresolved conflicts before customers see them.
5
Enable Generation Actions
Check the boxes for which behaviors Fini is allowed to take (Create New Article, Update Existing, Detect Duplicates). You can enable any combination; the AI chooses between the enabled options.
6
Generate
Click Generate Magic Article. Fini runs the LLM, applies the operation it picked from your enabled actions, and produces output. The success message tells you what happened:
“Article created successfully”
“Article updated successfully”
“Duplicate detected, please check review tab”
What Fini does behind the scenes
Magic Articles isn’t just a “wrap raw text in a template” operation. The LLM:
1
Reads
Parses your raw content and any Additional Instructions.
2
Searches
Looks across your existing articles (scoped to the selected agent, or to the whole workspace if no agent is selected) for near-duplicates.
3
Picks an action
Chooses among the actions you enabled. If only Create New Article is checked, it creates. If only Detect Duplicates is checked, it never writes. If multiple are enabled, it picks the one that best fits the input, for example, “this is clearly an update to an existing article” → Update Existing, “this is overlapping but distinct” → Create New, “this is a near-perfect duplicate” → flag for review.
4
Picks the folder
For Create operations, Fini chooses the folder based on your existing structure and the article’s topic. Folder picking is heuristic, you can override by naming the folder in Additional Instructions.
5
Drafts the article
Fills in Title, Main Knowledge, Questions, Keywords, and (optionally) Agent Instruction to match your authoring conventions.
6
Submits
Routes to Review Queue or directly to live, per your status choice.
Bulk generation from existing sources
A separate flow under Sources lets you bulk-generate articles from sources you’ve already ingested. The same Magic Articles engine runs, but operates over an entire crawled site or a folder of files instead of a single paste.
This is the standard first-day workflow. Ingest your help center as Sources, run bulk Magic Articles generation against everything (with all three Generation Actions enabled), let the drafts and flags pile up in Review, then work through them as a batch. It’s the fastest way to go from zero to a functional knowledge graph.
Why a Magic Articles run produced an unexpected result
Detect Duplicates fired when you expected Create
A close duplicate already exists in your knowledge graph. Options:
Uncheck Detect Duplicates and re-run, only Create New Article will be available.
Edit the existing article instead of creating a new one.
Refine the Additional Instructions to specify what makes this content distinct.
Update Existing fired when you expected Create
The LLM thought your input was an extension of an existing article. Options:
Uncheck Update Existing and re-run, Fini will be forced to create new (or flag as duplicate, if that’s also enabled).
Be more explicit in Additional Instructions about what’s new vs. what’s an extension.
The generated article landed in the wrong folder
Folder picking is heuristic. After generation, move the article manually in Articles, or specify the folder name explicitly in Additional Instructions on the next run.
The Title or Questions don't match how customers ask
The LLM’s first guess at Title and Questions is a starting point, not the final answer. Open the article in Articles, pull real phrasings from View training conversations or Inbox, and add them to the Questions list.
The article looks too generic
Longer, more specific raw content produces more specific articles. If you fed a brief, the output will be too. Re-run with the source-of-truth document instead of a summary.
Status went to Live but you wanted Review (or vice versa)
Status is set per-run; check the toggle before clicking Generate. The Live mode explicitly warns “Generated articles will be published immediately and available to your bots”, if you missed it, you can edit the article in Articles and resubmit through Review. The live version keeps serving until the draft is approved.
A conflict went undetected and made it live
This happens when Live was picked instead of Suggest for Review, and either:
Detect Duplicates was unchecked, so Fini wasn’t allowed to flag the overlap, or
Detect Duplicates was on but the LLM’s similarity check missed it.
Fix by deleting the duplicate in Articles, or by merging the two articles via a new draft routed through Review. Going forward, keep Detect Duplicates enabled and prefer Suggest for Review.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/schema.json","name":"Fini","description":"Documentation for Fini AI (usefini.com): build, deploy and run autonomous AI support agents. Fini is made by Fini Technologies Inc. and is not affiliated with fini.ai.","colors":{"primary":"#C3EE5E","light":"#C3EE5E","dark":"#A8D43E"},"logo":{"light":"https://mintcdn.com/fini/fep-JMymNphpe1DQ/images/shared/logos/fini-light.png?fit=max\u0026auto=format\u0026n=fep-JMymNphpe1DQ\u0026q=85\u0026s=a460ff8bb507876712db2f0fb12c21e4","dark":"https://mintcdn.com/fini/fep-JMymNphpe1DQ/images/shared/logos/fini-dark.png?fit=max\u0026auto=format\u0026n=fep-JMymNphpe1DQ\u0026q=85\u0026s=8a2bf1d8a0e5c590ebb976eadccf26a9"},"favicon":"https://mintcdn.com/fini/fep-JMymNphpe1DQ/images/shared/logos/fini-dark.png?fit=max\u0026auto=format\u0026n=fep-JMymNphpe1DQ\u0026q=85\u0026s=8a2bf1d8a0e5c590ebb976eadccf26a9","footer":{"socials":{"x":"https://x.com/finichatAI","linkedin":"https://www.linkedin.com/company/usefini","youtube":"https://www.youtube.com/@finiai","instagram":"https://www.instagram.com/usefini.official","github":"https://github.com/ask-fini"}},"seo":{"metatags":{"msvalidate.01":"9A9FD7AB87AE2DEA257FE41F07C61E70"}},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","default":true,"href":"en/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"fini","hasAudioNarration":false,"actualSubdomain":"fini","customDomains":["docs.usefini.com"],"gitSource":{"type":"github","owner":"ask-fini","repo":"fini-docs","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af6e134e0d07833655260d7","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"en","tag":"API reference","count":207},{"language":"en","tag":"Documentation","count":56},{"language":"en","tag":"Knowledge","count":40},{"language":"en","tag":"Test Suite","count":31},{"language":"en","tag":"Use cases","count":29},{"language":"en","tag":"Deploy","count":21},{"language":"en","tag":"Intent Rules","count":18},{"language":"en","tag":"Conversations","count":14},{"language":"en","tag":"Integrations","count":14},{"language":"en","tag":"Agent Configuration","count":13}]},"assistantConfig":{"deflection":{"enabled":true,"email":"[email protected]","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"en/knowledge/magic-articles","slug":"/en/knowledge/magic-articles","pageMetadata":{"title":"Magic Articles","description":"Turn transcripts, docs, or notes into structured help articles with AI. Fini drafts, deduplicates, and routes new content through Review before publishing.","icon":"wand-magic-sparkles","href":"/en/knowledge/magic-articles"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Turn transcripts, docs, or notes into structured help articles with AI. Fini drafts, deduplicates, and routes new content through Review before publishing.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,em:`em`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,Frame,Heading,Info,Note,OptimizedImage,Step,Steps,Tip}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Magic Articles (the `,_jsx(_components.strong,{children:`Generate`}),` page in the dashboard) is one of the main ways knowledge enters Fini’s `,_jsx(_components.a,{href:`/en/knowledge/overview`,children:`Knowledge`}),` model. Instead of writing an `,_jsx(_components.a,{href:`/en/knowledge/articles`,children:`Article`}),` by hand, you paste raw content: a transcript, a Notion dump, a release-notes draft, a customer ticket explaining a workflow, and Fini generates a structured article in your knowledge base format. It also decides what `,_jsx(_components.em,{children:`kind`}),` of operation makes sense: is this a new article, an update to an existing one, or a duplicate that doesn’t need to land?`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/fini/zef_RDWlJqADKDlS/images/en/knowledge/magic-articles/generate.png?fit=max\u0026auto=format\u0026n=zef_RDWlJqADKDlS\u0026q=85\u0026s=eaf1d2d293b8692d4dcd22de64851c38`,alt:`Generate page in the Fini Demo workspace with the Raw Content textarea, Additional Instructions field, Target Bot selector, Live and Suggest for Review status toggle, three enabled Generation Action tiles, and the Generate Magic Article button`,\"data-og-width\":`1680`,width:`1680`,\"data-og-height\":`1050`,height:`1050`,\"data-path\":`images/en/knowledge/magic-articles/generate.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/fini/zef_RDWlJqADKDlS/images/en/knowledge/magic-articles/generate.png?w=280\u0026fit=max\u0026auto=format\u0026n=zef_RDWlJqADKDlS\u0026q=85\u0026s=78c10482e1b27d48e3adb339a5f8c4e6 280w, https://mintcdn.com/fini/zef_RDWlJqADKDlS/images/en/knowledge/magic-articles/generate.png?w=560\u0026fit=max\u0026auto=format\u0026n=zef_RDWlJqADKDlS\u0026q=85\u0026s=d804978ba9d657142b9f7d2650343bda 560w, https://mintcdn.com/fini/zef_RDWlJqADKDlS/images/en/knowledge/magic-articles/generate.png?w=840\u0026fit=max\u0026auto=format\u0026n=zef_RDWlJqADKDlS\u0026q=85\u0026s=95111bf74c1c1e1d4ccc70397e0e2c21 840w, https://mintcdn.com/fini/zef_RDWlJqADKDlS/images/en/knowledge/magic-articles/generate.png?w=1100\u0026fit=max\u0026auto=format\u0026n=zef_RDWlJqADKDlS\u0026q=85\u0026s=192dd8c3465b0a82bad2b2fd93920014 1100w, https://mintcdn.com/fini/zef_RDWlJqADKDlS/images/en/knowledge/magic-articles/generate.png?w=1650\u0026fit=max\u0026auto=format\u0026n=zef_RDWlJqADKDlS\u0026q=85\u0026s=7710c4cc523fb91b475dcc8c604f4787 1650w, https://mintcdn.com/fini/zef_RDWlJqADKDlS/images/en/knowledge/magic-articles/generate.png?w=2500\u0026fit=max\u0026auto=format\u0026n=zef_RDWlJqADKDlS\u0026q=85\u0026s=b278fe445aff701e00b650db0270fcaa 2500w`})}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Where Magic Articles fits in the flow.`}),` Magic Articles produces drafts. Those drafts can go to `,_jsx(_components.a,{href:`/en/knowledge/review`,children:`Review Queue`}),` or directly to the `,_jsx(_components.strong,{children:`Published`}),` tab, depending on `,_jsx(_components.strong,{children:`Status After Generation`}),`. Either way, they land in `,_jsx(_components.a,{href:`/en/knowledge/articles`,children:`Articles`}),`, which is the source of truth your agents retrieve from. Magic Articles doesn’t bypass Articles, it’s a fast lane `,_jsx(_components.em,{children:`into`}),` it.`]})}),`\n`,_jsx(_components.p,{children:`Use Magic Articles when you have unstructured content you want to turn into curated knowledge.`}),`\n`,_jsx(Heading,{level:`2`,id:`generation-action`,children:`Generation Action`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Generation Action`}),` section exposes three tiles, each with a checkbox. Unlike a single radio choice, these are `,_jsx(_components.em,{children:`allowed behaviors`}),`, you can enable any combination, and the AI chooses which one to apply based on what your raw content actually looks like.`]}),`\n`,_jsxs(CardGroup,{cols:3,children:[_jsx(Card,{title:`Create New Article`,icon:`plus`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always create a new article. Don’t merge with existing.`}),` Use when you know the content is genuinely new and don’t want Fini second-guessing.`]})}),_jsx(Card,{title:`Update Existing`,icon:`pen-to-square`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Find the closest match and update it. Flag if no match found.`}),` Use when the content is most likely a revision of something already in your knowledge graph.`]})}),_jsx(Card,{title:`Detect Duplicates`,icon:`copy`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Check against existing articles and flag overlaps without writing.`}),` No article is created. Use to audit a batch of content before committing, pairs well with bulk generation.`]})})]}),`\n`,_jsxs(_components.p,{children:[`The page reads `,_jsx(_components.em,{children:`“AI will intelligently choose between the enabled options.”`}),` Practical combinations:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`All three enabled (default).`}),` Fini decides between create, update, and flag-as-duplicate based on overlap with your existing articles. The safest setting for most runs.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Just Create New Article.`}),` Force new article creation regardless of overlap. Use when you’re certain the content is novel and don’t want a near-duplicate to silently turn into an “update.”`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Just Detect Duplicates.`}),` Dry-run mode. No writes happen, Fini only tells you which of your raw inputs duplicate existing articles. Useful before a bulk import.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Update Existing + Detect Duplicates (no Create).`}),` Conservative mode. Fini will only update or flag, never create new articles. Use when you’re consolidating, not expanding.`]}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`This is the layer where Magic Articles helps prevent the conflict-and-duplication problem that Review Queue exists to solve. By letting you choose which behaviors are `,_jsx(_components.em,{children:`allowed`}),`, Fini routes your content through the right consolidation path instead of blindly creating yet another near-duplicate article.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`generating-an-article`,children:`Generating an article`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Paste raw content`,children:_jsxs(_components.p,{children:[`Drop your content into `,_jsx(_components.strong,{children:`Raw Content`}),`. Helper text reads `,_jsx(_components.em,{children:`“Paste notes, emails, Slack threads, docs”`}),`. Markdown, plain text, transcripts, exported docs all work. There’s no firm length limit; longer inputs produce richer articles but take longer to generate.`]})}),_jsxs(Step,{title:`Add Additional Instructions (optional)`,children:[_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Additional Instructions`}),` field tells Fini how to shape the article: tone, audience, what to emphasize, what to skip.`]}),_jsx(_components.p,{children:`Useful examples:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“The new content should replace the old, treat it as new source of truth.”`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“Strip out internal jargon; phrase for end customers.”`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“Focus on the steps the customer takes, not the underlying API.”`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“This applies only to Enterprise customers, note that in the article.”`})}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.em,{children:`“Match anything”`}),` or `,_jsx(_components.em,{children:`“Focus on billing topics”`}),` (the placeholder shows lightweight scoping examples).`]}),`\n`]})]}),_jsxs(Step,{title:`Pick a Target Bot (optional)`,children:[_jsx(_components.p,{children:`The dropdown narrows the operation to articles attached to that agent. Fini compares against that agent’s existing articles when deciding create vs update vs duplicate.`}),_jsxs(_components.p,{children:[`Leave it unset and the helper text reads `,_jsx(_components.em,{children:`“No bot selected — available to all.”`}),` The article will be created against the workspace’s full knowledge graph and made available to every agent.`]}),_jsx(Tip,{children:_jsx(_components.p,{children:`Because duplicate detection is scoped to the selected agent, the same content can land as a duplicate for one agent and a brand-new article for another. If you run a multi-agent workspace, pick the agent whose knowledge base this content most logically belongs to.`})})]}),_jsxs(Step,{title:`Pick Status After Generation`,children:[_jsx(_components.p,{children:`Toggle between two options:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Live`}),`, the page warns: `,_jsx(_components.em,{children:`“Generated articles will be published immediately and available to your bots.”`}),` Use only when you’re regenerating known-good source content, working solo, or running a trusted bulk import.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Suggest for Review`}),`, the generated article goes to `,_jsx(_components.a,{href:`/en/knowledge/review`,children:`Review Queue`}),` for vetting before serving customer queries. `,_jsx(_components.strong,{children:`Recommended`}),` for almost all runs, it’s the safety net that catches LLM hallucinations, wrong folder picks, and unresolved conflicts before customers see them.`]}),`\n`]})]}),_jsx(Step,{title:`Enable Generation Actions`,children:_jsxs(_components.p,{children:[`Check the boxes for which behaviors Fini is allowed to take (`,_jsx(_components.strong,{children:`Create New Article`}),`, `,_jsx(_components.strong,{children:`Update Existing`}),`, `,_jsx(_components.strong,{children:`Detect Duplicates`}),`). You can enable any combination; the AI chooses between the enabled options.`]})}),_jsxs(Step,{title:`Generate`,children:[_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Generate Magic Article`}),`. Fini runs the LLM, applies the operation it picked from your enabled actions, and produces output. The success message tells you what happened:`]}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“Article created successfully”`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“Article updated successfully”`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.em,{children:`“Duplicate detected, please check review tab”`})}),`\n`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`what-fini-does-behind-the-scenes`,children:`What Fini does behind the scenes`}),`\n`,_jsx(_components.p,{children:`Magic Articles isn’t just a “wrap raw text in a template” operation. The LLM:`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Reads`,children:_jsx(_components.p,{children:`Parses your raw content and any Additional Instructions.`})}),_jsx(Step,{title:`Searches`,children:_jsx(_components.p,{children:`Looks across your existing articles (scoped to the selected agent, or to the whole workspace if no agent is selected) for near-duplicates.`})}),_jsx(Step,{title:`Picks an action`,children:_jsxs(_components.p,{children:[`Chooses among the actions you enabled. If only `,_jsx(_components.strong,{children:`Create New Article`}),` is checked, it creates. If only `,_jsx(_components.strong,{children:`Detect Duplicates`}),` is checked, it never writes. If multiple are enabled, it picks the one that best fits the input, for example, “this is clearly an update to an existing article” → Update Existing, “this is overlapping but distinct” → Create New, “this is a near-perfect duplicate” → flag for review.`]})}),_jsx(Step,{title:`Picks the folder`,children:_jsx(_components.p,{children:`For Create operations, Fini chooses the folder based on your existing structure and the article’s topic. Folder picking is heuristic, you can override by naming the folder in Additional Instructions.`})}),_jsx(Step,{title:`Drafts the article`,children:_jsx(_components.p,{children:`Fills in Title, Main Knowledge, Questions, Keywords, and (optionally) Agent Instruction to match your authoring conventions.`})}),_jsx(Step,{title:`Submits`,children:_jsxs(_components.p,{children:[`Routes to `,_jsx(_components.a,{href:`/en/knowledge/review`,children:`Review Queue`}),` or directly to live, per your status choice.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`bulk-generation-from-existing-sources`,children:`Bulk generation from existing sources`}),`\n`,_jsxs(_components.p,{children:[`A separate flow under `,_jsx(_components.a,{href:`/en/knowledge/sources`,children:`Sources`}),` lets you bulk-generate articles from sources you’ve already ingested. The same Magic Articles engine runs, but operates over an entire crawled site or a folder of files instead of a single paste.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`This is the standard first-day workflow.`}),` Ingest your help center as Sources, run bulk Magic Articles generation against everything (with all three Generation Actions enabled), let the drafts and flags pile up in Review, then work through them as a batch. It’s the fastest way to go from zero to a functional knowledge graph.`]})}),`\n`,_jsxs(_components.p,{children:[`See the `,_jsx(_components.a,{href:`/en/knowledge/overview#first-day-setup`,children:`Knowledge first-day setup`}),` for the full playbook.`]}),`\n`,_jsx(Heading,{level:`2`,id:`why-a-magic-articles-run-produced-an-unexpected-result`,children:`Why a Magic Articles run produced an unexpected result`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Detect Duplicates fired when you expected Create`,icon:`copy`,id:`detect-duplicates-fired-when-you-expected-create`,children:[_jsx(_components.p,{children:`A close duplicate already exists in your knowledge graph. Options:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Uncheck `,_jsx(_components.strong,{children:`Detect Duplicates`}),` and re-run, only `,_jsx(_components.strong,{children:`Create New Article`}),` will be available.`]}),`\n`,_jsx(_components.li,{children:`Edit the existing article instead of creating a new one.`}),`\n`,_jsx(_components.li,{children:`Refine the Additional Instructions to specify what makes this content distinct.`}),`\n`]})]}),_jsxs(Accordion,{title:`Update Existing fired when you expected Create`,icon:`pen-to-square`,id:`update-existing-fired-when-you-expected-create`,children:[_jsx(_components.p,{children:`The LLM thought your input was an extension of an existing article. Options:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Uncheck `,_jsx(_components.strong,{children:`Update Existing`}),` and re-run, Fini will be forced to create new (or flag as duplicate, if that’s also enabled).`]}),`\n`,_jsx(_components.li,{children:`Be more explicit in Additional Instructions about what’s new vs. what’s an extension.`}),`\n`]})]}),_jsx(Accordion,{title:`The generated article landed in the wrong folder`,icon:`folder`,id:`the-generated-article-landed-in-the-wrong-folder`,children:_jsxs(_components.p,{children:[`Folder picking is heuristic. After generation, move the article manually in `,_jsx(_components.a,{href:`/en/knowledge/articles`,children:`Articles`}),`, or specify the folder name explicitly in Additional Instructions on the next run.`]})}),_jsx(Accordion,{title:`The Title or Questions don't match how customers ask`,icon:`comments`,id:`the-title-or-questions-dont-match-how-customers-ask`,children:_jsxs(_components.p,{children:[`The LLM’s first guess at Title and Questions is a starting point, not the final answer. Open the article in `,_jsx(_components.a,{href:`/en/knowledge/articles`,children:`Articles`}),`, pull real phrasings from `,_jsx(_components.strong,{children:`View training conversations`}),` or Inbox, and add them to the Questions list.`]})}),_jsx(Accordion,{title:`The article looks too generic`,icon:`square-dashed`,id:`the-article-looks-too-generic`,children:_jsx(_components.p,{children:`Longer, more specific raw content produces more specific articles. If you fed a brief, the output will be too. Re-run with the source-of-truth document instead of a summary.`})}),_jsx(Accordion,{title:`Status went to Live but you wanted Review (or vice versa)`,icon:`toggle-on`,id:`status-went-to-live-but-you-wanted-review-or-vice-versa`,children:_jsxs(_components.p,{children:[`Status is set per-run; check the toggle before clicking Generate. The Live mode explicitly warns `,_jsx(_components.em,{children:`“Generated articles will be published immediately and available to your bots”`}),`, if you missed it, you can edit the article in `,_jsx(_components.a,{href:`/en/knowledge/articles`,children:`Articles`}),` and resubmit through Review. The live version keeps serving until the draft is approved.`]})}),_jsxs(Accordion,{title:`A conflict went undetected and made it live`,icon:`triangle-exclamation`,id:`a-conflict-went-undetected-and-made-it-live`,children:[_jsxs(_components.p,{children:[`This happens when `,_jsx(_components.strong,{children:`Live`}),` was picked instead of `,_jsx(_components.strong,{children:`Suggest for Review`}),`, and either:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Detect Duplicates was unchecked`}),`, so Fini wasn’t allowed to flag the overlap, or`]}),`\n`,_jsx(_components.li,{children:`Detect Duplicates was on but the LLM’s similarity check missed it.`}),`\n`]}),_jsxs(_components.p,{children:[`Fix by deleting the duplicate in `,_jsx(_components.a,{href:`/en/knowledge/articles`,children:`Articles`}),`, or by merging the two articles via a new draft routed through Review. Going forward, keep `,_jsx(_components.strong,{children:`Detect Duplicates`}),` enabled and prefer `,_jsx(_components.strong,{children:`Suggest for Review`}),`.`]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Magic Articles","description":"Turn transcripts, docs, or notes into structured help articles with AI. Fini drafts, deduplicates, and routes new content through Review before publishing.","icon":"wand-magic-sparkles","href":"/en/knowledge/magic-articles"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Generation Action","slug":"generation-action","depth":2,"children":[]},{"title":"Generating an article","slug":"generating-an-article","depth":2,"children":[]},{"title":"What Fini does behind the scenes","slug":"what-fini-does-behind-the-scenes","depth":2,"children":[]},{"title":"Bulk generation from existing sources","slug":"bulk-generation-from-existing-sources","depth":2,"children":[]},{"title":"Why a Magic Articles run produced an unexpected result","slug":"why-a-magic-articles-run-produced-an-unexpected-result","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"fini","siteName":"Fini","title":"Magic Articles - Fini","relatedPagesConfig":{"enabled":true,"limit":3,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/en/knowledge/magic-articles","matchLevel":0}}},"lastModified":"2026-10-05T17:02:03.235Z","originalFileLocation":"en/knowledge/magic-articles.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Turn transcripts, docs, or notes into structured help articles with AI. Fini drafts, deduplicates, and routes new content through Review before publishing.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Fini\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintcdn.com/fini/fep-JMymNphpe1DQ/images/shared/logos/fini-dark.png?fit=max\u0026amp;auto=format\u0026amp;n=fep-JMymNphpe1DQ\u0026amp;q=85\u0026amp;s=8a2bf1d8a0e5c590ebb976eadccf26a9\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintcdn.com/fini/fep-JMymNphpe1DQ/images/shared/logos/fini-dark.png?fit=max\u0026amp;auto=format\u0026amp;n=fep-JMymNphpe1DQ\u0026amp;q=85\u0026amp;s=8a2bf1d8a0e5c590ebb976eadccf26a9\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintcdn.com/fini/fep-JMymNphpe1DQ/images/shared/logos/fini-dark.png?fit=max\u0026amp;auto=format\u0026amp;n=fep-JMymNphpe1DQ\u0026amp;q=85\u0026amp;s=8a2bf1d8a0e5c590ebb976eadccf26a9\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/png\" href=\"https://mintcdn.com/fini/fep-JMymNphpe1DQ/images/shared/logos/fini-dark.png?fit=max\u0026amp;auto=format\u0026amp;n=fep-JMymNphpe1DQ\u0026amp;q=85\u0026amp;s=8a2bf1d8a0e5c590ebb976eadccf26a9\">\u003cmeta data-mint-head property=\"og:title\" content=\"Magic Articles - Fini\">\u003cmeta data-mint-head property=\"og:description\" content=\"Turn transcripts, docs, or notes into structured help articles with AI. Fini drafts, deduplicates, and routes new content through Review before publishing.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Fini\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.usefini.com/en/knowledge/magic-articles\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://fini.mintlify.site/_mintlify/api/og/v2?division=Knowledge\u0026amp;title=Magic+Articles\u0026amp;description=Turn+transcripts%2C+docs%2C+or+notes+into+structured+help+articles+with+AI.+Fini+drafts%2C+deduplicates%2C+and+routes+new+content+through+Review+before+publishing.\u0026amp;theme=cf30811e7a75ce9cedcd10e2\u0026amp;signature=032cf5e3e9ec2b0fb9f7850263d5925fa37801ba6f69cfa6d49fd4368ed5bdc1\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Magic Articles - Fini\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Turn transcripts, docs, or notes into structured help articles with AI. Fini drafts, deduplicates, and routes new content through Review before publishing.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://fini.mintlify.site/_mintlify/api/og/v2?division=Knowledge\u0026amp;title=Magic+Articles\u0026amp;description=Turn+transcripts%2C+docs%2C+or+notes+into+structured+help+articles+with+AI.+Fini+drafts%2C+deduplicates%2C+and+routes+new+content+through+Review+before+publishing.\u0026amp;theme=cf30811e7a75ce9cedcd10e2\u0026amp;signature=032cf5e3e9ec2b0fb9f7850263d5925fa37801ba6f69cfa6d49fd4368ed5bdc1\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/fini/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Fini\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#C3EE5E\">\u003cmeta data-mint-head name=\"msvalidate.01\" content=\"9A9FD7AB87AE2DEA257FE41F07C61E70\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.usefini.com/en/knowledge/magic-articles\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/knowledge/magic-articles.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.usefini.com/#organization\",\"name\":\"Fini\",\"url\":\"https://docs.usefini.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/fini/fep-JMymNphpe1DQ/images/shared/logos/fini-light.png?fit=max\u0026auto=format\u0026n=fep-JMymNphpe1DQ\u0026q=85\u0026s=a460ff8bb507876712db2f0fb12c21e4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.usefini.com#website\",\"name\":\"Fini\",\"url\":\"https://docs.usefini.com\",\"publisher\":{\"@id\":\"https://docs.usefini.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.usefini.com/en/knowledge/magic-articles#webpage\",\"url\":\"https://docs.usefini.com/en/knowledge/magic-articles\",\"name\":\"Magic Articles\",\"description\":\"Turn transcripts, docs, or notes into structured help articles with AI. Fini drafts, deduplicates, and routes new content through Review before publishing.\",\"dateModified\":\"2026-10-05T17:02:03.235Z\",\"isPartOf\":{\"@id\":\"https://docs.usefini.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.usefini.com/en/knowledge/magic-articles#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.usefini.com/en/knowledge/magic-articles#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Agent Configuration\",\"item\":\"https://docs.usefini.com/en/configuration/agent-home\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Knowledge\",\"item\":\"https://docs.usefini.com/en/knowledge/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Magic Articles\",\"item\":\"https://docs.usefini.com/en/knowledge/magic-articles\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.usefini.com/en/knowledge/magic-articles#article\",\"headline\":\"Magic Articles\",\"name\":\"Magic Articles\",\"description\":\"Turn transcripts, docs, or notes into structured help articles with AI. Fini drafts, deduplicates, and routes new content through Review before publishing.\",\"url\":\"https://docs.usefini.com/en/knowledge/magic-articles\",\"mainEntityOfPage\":{\"@id\":\"https://docs.usefini.com/en/knowledge/magic-articles#webpage\"},\"dateModified\":\"2026-10-05T17:02:03.235Z\",\"publisher\":{\"@id\":\"https://docs.usefini.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.usefini.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Fini\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Fini\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/en/knowledge/magic-articles.md","siteName":"Fini","nav":{"global":null,"languages":[{"language":"en","default":true,"tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","icon":"flag","pages":[{"title":"Introduction","icon":"book","href":"/en/introduction"},{"title":"What is Fini","icon":"circle-info","href":"/en/what-is-fini"},{"title":"How Fini works","icon":"gears","href":"/en/how-fini-works"},{"title":"Quickstart","icon":"bolt","href":"/en/quickstart"},{"title":"Rollout timeline: Day 1, 14, 30","icon":"calendar-days","href":"/en/rollout-timeline"},{"title":"Supported languages","icon":"language","href":"/en/supported-languages"},{"title":"Fini Scout","icon":"binoculars","href":"/en/fini-scout"},{"title":"Okta SSO","icon":"key","href":"/en/sso-login"},{"title":"Fini FAQ","icon":"circle-question","href":"/en/faq"}]},{"group":"Agent Configuration","icon":"sliders","pages":[{"title":"Home","icon":"robot","href":"/en/configuration/agent-home"},{"title":"Behavior","icon":"message","href":"/en/configuration/prompts"},{"group":"Knowledge","icon":"database","pages":[{"title":"Knowledge","icon":"graduation-cap","href":"/en/knowledge/overview"},{"title":"Sources","icon":"database","href":"/en/knowledge/sources"},{"title":"Articles","description":"Manage the curated knowledge graph your Fini AI agent retrieves from at runtime: approved articles organized in folders and scoped per agent.","icon":"book-open","href":"/en/knowledge/articles"},{"title":"Magic Articles","icon":"wand-magic-sparkles","href":"/en/knowledge/magic-articles"},{"title":"Review Queue","description":"The consolidation gate for Fini's knowledge graph. Every new piece of knowledge flows here so gaps and conflicts get resolved before reaching Articles.","icon":"circle-check","href":"/en/knowledge/review"},{"title":"How Fini handles messy or conflicting docs","icon":"broom","href":"/en/knowledge/messy-or-conflicting-docs"}]},{"title":"Tags","icon":"tag","href":"/en/configuration/tags"},{"title":"Guardrails","icon":"shield-check","href":"/en/configuration/guardrails"},{"group":"Automations","icon":"bolt","pages":[{"title":"Intent Rules","icon":"diagram-project","href":"/en/automations/rulebook"},{"title":"Business Rules","icon":"zap","href":"/en/automations/business-rules"},{"title":"Reply Rules","icon":"turn-down-right","href":"/en/automations/reply-behavior"}]}]},{"group":"Deploy","icon":"cloud-arrow-up","pages":[{"title":"Channel overview","icon":"cloud-arrow-up","href":"/en/deploy/overview"},{"title":"Fini on top of your helpdesk","icon":"layer-group","href":"/en/deploy/on-top-of-your-helpdesk"},{"title":"Widget","icon":"message","href":"/en/deploy/widget"},{"title":"Help Center","icon":"book-open","href":"/en/deploy/helpcenter"},{"title":"Email","icon":"envelope","href":"/en/deploy/email"},{"title":"Fini on voice","icon":"phone","href":"/en/deploy/voice"},{"title":"API Keys","icon":"key","href":"/en/deploy/api-keys"},{"group":"Integrations","icon":"arrow-rotate-right","pages":[{"title":"Zendesk","icon":"https://mintlify.s3.us-west-1.amazonaws.com/fini/images/shared/logos/zendesk.png","href":"/en/deploy/zendesk"},{"title":"Intercom","icon":"https://mintlify.s3.us-west-1.amazonaws.com/fini/images/shared/logos/intercom.png","href":"/en/deploy/intercom"},{"title":"Front","icon":"https://mintlify.s3.us-west-1.amazonaws.com/fini/images/shared/logos/front.png","href":"/en/deploy/front"},{"title":"Gorgias","icon":"https://mintlify.s3.us-west-1.amazonaws.com/fini/images/shared/logos/gorgias.png","href":"/en/deploy/gorgias"},{"title":"HubSpot","icon":"https://mintlify.s3.us-west-1.amazonaws.com/fini/images/shared/logos/hubspot.png","href":"/en/deploy/hubspot"},{"title":"Microsoft 365","icon":"envelope","href":"/en/deploy/microsoft365"},{"title":"Salesforce","icon":"https://mintlify.s3.us-west-1.amazonaws.com/fini/images/shared/logos/salesforce.png","href":"/en/deploy/salesforce"},{"title":"LiveChat","icon":"https://mintlify.s3.us-west-1.amazonaws.com/fini/images/shared/logos/livechat.png","href":"/en/deploy/livechat"},{"title":"Slack","icon":"https://mintlify.s3.us-west-1.amazonaws.com/fini/images/shared/logos/slack.png","href":"/en/deploy/slack"},{"title":"Facebook","icon":"key","href":"/en/deploy/facebook"},{"title":"Instagram","icon":"camera","href":"/en/deploy/instagram"},{"title":"Jira Service Management","icon":"ticket","href":"/en/deploy/jira"},{"title":"WhatsApp","icon":"comment-dots","href":"/en/deploy/whatsapp"},{"title":"Deskpro","icon":"inbox","href":"/en/deploy/deskpro"}]}]},{"group":"Ticketing","icon":"ticket","pages":[{"title":"Ticketing overview","icon":"ticket","href":"/en/ticketing/overview"},{"title":"Set up ticketing","icon":"sliders","href":"/en/ticketing/get-started"},{"title":"Agent groups","icon":"users","href":"/en/ticketing/agent-groups"},{"title":"Work a ticket","icon":"comments","href":"/en/ticketing/working-tickets"},{"title":"Escalation and hand-back","icon":"arrows-turn-to-dots","href":"/en/ticketing/escalation-and-handoff"},{"title":"Ticket macros","icon":"message","href":"/en/ticketing/macros"}]},{"group":"Test \u0026 Ship","icon":"vial","pages":[{"title":"Inbox","icon":"inbox","href":"/en/testing/inbox"},{"title":"Refine with AI","icon":"wand-magic-sparkles","href":"/en/testing/fix-with-ai"},{"title":"Test Suite","icon":"vial","href":"/en/testing/test-suite"},{"title":"Best practices for testing your agent","icon":"list-check","href":"/en/testing/best-practices"}]},{"group":"Performance \u0026 accuracy","icon":"gauge-high","pages":[{"title":"How accuracy and resolution rate are measured","icon":"bullseye","href":"/en/performance/how-accuracy-is-measured"},{"title":"Resolution vs deflection","icon":"scale-balanced","href":"/en/performance/resolution-vs-deflection"},{"title":"Analytics","icon":"chart-bar","href":"/en/analytics"}]}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/en/api-reference/overview"}]},{"tab":"Use cases","pages":[{"title":"Use cases","href":"/en/use-cases/refunds"}]},{"tab":"Trust \u0026 pricing","pages":[{"title":"Trust \u0026 pricing","href":"/en/security/overview"}]}]}]},"basePath":"","title":"Magic Articles - Fini","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-D2acuaLg.js","DynamicMarkdown-Co5nikxh.js","zoom-image-lightbox-BbK2OBGL.js","lightbox-handle-r17bVUz3.js"]}