Adoption Agent, powered by FlowAI, answers your users’ questions instantly, right in your app. Powered by the latest large language models (LLMs), it learns from your knowledge base, website content, Flows, and Action flows to provide accurate, automated responses - reducing support tickets and enabling users to get the help they need without waiting.
Setup only takes minutes. Just add your website URL, integrate with common knowledge base systems, or integrate Flows, and the Adoption Agent handles the rest!
Every Adoption Agent follows the same core workflow before it's visible to users:
Train — Connect your content sources (website, knowledge base, Flows, Action flows) and click Train. Userflow fetches and indexes your content.
Test chat — Use the built-in Test chat to verify your agent responds accurately before anyone sees it. Test chats don't count toward your credit usage.
Publish — Click Publish when you're satisfied. Your agent is now ready to add to your Resource Center.
Public vs. private knowledge bases
The Adoption Agent web crawler cannot scrape content that requires login credentials/authentication. However, if you use one of the direct integrations through Salesforce, Intercom, or Zendesk, it is possible to use Adoption Agent with that content. See source types below.
Already have an Adoption Agent in your account?
If you signed up for Userflow recently, an Adoption Agent was auto-created and started training on your website content during account setup. Open Adoption Agent from the sidebar to see it. The steps below walk through creating an additional Adoption Agent or modifying the auto-created one. To customize the existing agent, jump to "Step 4: Configure your agent settings" below.
Your Flows can be Adoption Agent answers
Documentation is not the only thing the Agent can return. Add your published Flows as a source and the Agent can guide a user through the right walkthrough instead of only describing the steps. See Add a Flow as a source.
How the Adoption Agent works
Create an Adoption Agent by connecting your content sources - your website, knowledge base, Flows, Action flows, support center, or a combination. Click to train it, and it’s ready to answer questions based on your content, including follow-up questions that build on the conversation.
Users access Adoption Agent through your Resource Center.
.png)
Privacy Assurance and Adoption Agent
Userflow does not use AI inputs to train, fine-tune, or otherwise improve public large language models. However, to maintain the highest standards of data security, we strongly recommend training your Adoption Agent on non-sensitive data and instructing users not to submit any sensitive or private information in their Adoption Agent searches. Refer to our Terms of Service for additional details.
How the Agent builds an answer
Knowing how the Adoption Agent arrives at an answer makes it much easier to tune your sources and troubleshoot a response that isn't what you expected.
Every question runs through the same four steps:
Fragment. Userflow breaks all of your connected content into small fragments—knowledge base articles, crawled pages, integration content, Text sources, and the descriptions attached to any Flows and Action flows you've added as a source.
Score. Every fragment is scored for relevance against the question the user actually asked.
Generate. The highest-scoring fragments are passed to your configured AI engine, which writes the answer.
Cite. Every source that contributed to that answer is listed as a reference below it.
Two consequences of this are worth knowing up front.
The Agent won't quote your articles word-for-word. The AI engine writes each answer from the fragments it receives, so the phrasing won't match your source content exactly. That's expected behavior, not a fault. If the substance of an answer is wrong, treat it as a source or tuning problem rather than a wording problem.
An answer can cite more than two sources. There's no cap at two. If fragments from four different pages all contributed, you'll see four references.
When the wrong source wins
If your marketing site or blog is consistently outranking your help center on a topic, that usually isn't a scoring fault. Users tend to phrase questions the way marketing copy is written rather than the way help articles are written, so those fragments score as genuinely more relevant.
Both can also appear together. If a help article and a marketing page each contributed to an answer, both are listed as references.
When you see one source crowding out another as a recurring pattern, name the URLs you want favored in Custom instructions—for example, telling the Agent to prefer your help center over your blog. Test the result in Test chat before publishing.
Training your Adoption Agent
Adoption Agents are created, managed, and published in a similar manner to other Userflow content, such as Flows and Checklists. However, they also require a brief training step before publishing.
Step 1: Create the Adoption Agent
Select Adoption Agents in the sidebar and click Create Adoption Agent.
Enter a name and click Create agent.
Step 2: Add sources and train the Adoption Agent
Click Add source and select an option. Learn more about the Web crawler and other source types to learn how to integrate with help centers and configure flows to appear as results in an Adoption Agent search below.
Public vs. Private content
Adoption Agent can only access/scrape content that is public. Adoption Agent cannot access content that requires log in credentials unless you have configured the Adoption Agent through an integration with Salesforce, Zendesk, or Intercom. See content source types.
Enter the source information in the right-hand panel.
Click Train. Userflow will fetch all source information and train the agent. Depending on the amount of content, it may take several seconds to minutes.
Each source type is documented under Content source types below, including adding a Flow as a source.
Adding multiple sources
You can add multiple sources if you have content on different domains, such as yourdomain.com and help.yourdomain.com.
Whenever you change the agent settings, you must click Train to apply the changes.
Step 3: Test the agent
After training is complete, click Test chat and enter search criteria relevant to your source to view how the agent responds. The result will display in the test chat window. Test follow-up questions as well.
.png)
Test chat vs. Preview
It's important to understand the difference between Test chat and Preview:
Test chat — available in the Adoption Agent builder. Does not consume subscription credits. Covered by a separate monthly test-chat limit of 500 credits, shared across your account. If your account’s test-chat limit was raised previously, your ceiling is 500 plus that earlier increase.
Preview — available when previewing flows and other Userflow content. Counts as regular subscription messages against your plan credits. If you're previewing a flow that triggers an Adoption Agent interaction, that usage counts against your plan.
Use Test chat for agent accuracy testing; use Preview when you need to test the full end-to-end user experience.
Refine your source settings to improve the Adoption Agent’s accuracy. Common adjustments include:
Exclude irrelevant pages: Block the crawler from specific URLs to prevent training on unrelated content. Activate the Control URLs to visit option and add URLs to the Do not visit URLs matching field. Use the "+” to add multiple URLs.
Filter page content: Remove headers, footers, and navigation menus using CSS selectors by adding them to the Only include HTML matching CSS selector and/or Exclude HTML matching CSS selector settings. You can verify the text stored for each page the Adoption Agent trained on by clicking the number of documents trained and selecting a document in the list to view it. Read more about this in the Web crawler section below.
.png)
Step 4: Configure your agent settings
The Adoption Agent settings include advanced customizations, agent-level limit settings to help you stay within your usage budget, and customizations for your standard message placeholders, UI copy, and set feedback settings. Learn more in our Adoption Agent settings and advanced customizations documentation.
Step 5: Publish your agent
Click Publish when you are satisfied with your test results.
The agent is now usable but not yet visible to users. Follow the steps in the next section to add it to your Resource Center.
Step 6: Add the Adoption Agent to your Resource Center
After you publish your Adoption Agent, add it to your Resource Center to make it visible to your users.
Select Resource centers in the sidebar.
Find your Resource Center in the list and click it. If you don’t have one yet, either create one or refer to the Minimal resource center solution for additional options.
Select Add block > Adoption Agent.
Select your agent from the dropdown list in the side panel, then configure:
- How it will appear (text input or button)
- Placeholder text or button tooltip text
- Whether you want to show a “contact support” button
- Conditions that must be met for the block to appear
We recommend placing the Adoption Agent block at the bottom of the Resource Center and using the Text input option under Appearance. This creates an eye-catching design that captures users’ attention when they open the resource center.Click Preview to test the Resource Center with the agent before publishing.
When ready, click Publish to make the agent available for users.
Content source types
You can add multiple content sources and refinements to an Adoption Agent. You can also publish more than one Adoption Agent for a single site.
Which knowledge bases and documentation sites can I connect?
Any public documentation site or help center. Point the Web crawler at it. If a person can read the page without signing in, the Adoption Agent can read it too.
Salesforce Knowledge, Zendesk, and Intercom help centers — including ones behind a login. Connect them under Settings → Integrations and they appear under Add source. These are the only authenticated sources the Agent reads directly.
Other private or authenticated systems aren’t supported directly. Confluence is the most common ask and there’s no Confluence source. Either publish the relevant pages somewhere public the crawler can reach, or paste the content into a Text source.
Your own Userflow content — Flows and Action Flows can be added as sources. See the source types below.
The Knowledge base block in a Resource Center is a separate feature with its own provider list — see Chat and Knowledge bases.
Add a Flow as a source
When users search for help and answers to questions, they often want a variety of result formats - help articles, blog posts, and Flows. You can train the Adoption Agent to include specific Flows (or all Flows) in response to a query. By including Flows in your Adoption Agent, you can:
Reduce time-to-resolution by connecting users directly to guided walkthroughs.
Increase feature adoption by bridging the gap between reading and doing.
Cut support tickets by turning passive answers into active, hands-on help.
To add Flows to your Adoption Agent search results:
Click Add source or Add another source > Flows.
.png)
Click +Add.
.png)
Select individual Flows to the Adoption Agent or click + Add all to include all published Flows.
.png)
Click a Flow in the Flows source panel on the right to edit its details. You can add a description manually or click the AI button to have AI generate the Flow’s purpose, add a URL that should launch when the Flow is selected, and add conditions for when this flow should appear in the Adoption Agent results.
.png)
How users find Flows in Adoption Agent results
When a user asks the Adoption Agent a question, the Agent matches their wording against the Flows you have added and returns a matching Flow alongside its written answer. The user starts the Flow from that response and is guided through the task in your app.
What the Agent matches on. The Agent reads the Flow’s own content and the description set on its entry in the Flows source panel. Write that description the way a user would describe the task, not the way the Flow is named internally. “Connect a Stripe account for billing” matches more questions than “Billing v2 onboarding.”
Set a launch URL for page-specific Flows. If a Flow only runs on a particular screen, add that URL to the Flow’s entry so the Agent opens the page when the user starts the Flow.
Use conditions to limit who is offered a Flow. Add conditions on the Flow’s entry so an admin-only or account-specific walkthrough is only returned to users it applies to.
Only published Flows are included. + Add all adds your published Flows; a Flow you are still building will not be returned until it is published and the Agent is retrained.
Retrain after any change. Adding a Flow, editing its description, or changing its conditions all require clicking Train before the change affects live answers.
Which Flows are worth adding. The strongest candidates are the ones your team already links to by hand:
Setup and configuration tasks users ask about repeatedly—connecting an integration, inviting teammates, setting permissions.
Multi-step tasks that are slow to describe in writing but quick to demonstrate in the product.
Anything where your help article ends by telling the reader to go follow the steps in the app.
Other source types
Expand any source type below for its setup steps.
Web crawler
Crawl a website or help center
The Web crawler starts at the given Starting URL and recursively follows all links.
It will only follow links within the same path as the Starting URL. Examples: If your Starting URL is https://example.com/docs, it will read https://example.com/docs/page, https://example.com/docs/sub/page, and anything else under that path, but it will not read https://example.com/other-page since it’s not under the /docs prefix. It also won’t follow links to other domains.
To prevent the crawler from visiting certain pages, enable Control URLs to visit and add URL patterns to include or exclude. When a page is not visited, the crawler will not load it, meaning it won’t store its content or follow its links.
If you want the crawler to visit certain pages but not store them as source information, enable Control URLs to store. When a page is marked as not stored, the crawler will load it and follow its links, but not store its content. This feature is useful for following links from index-like pages without including their content. For example, on a blog, you want the crawler to visit /blog and /blog/page/:page to find all old blog posts, so you can’t use the Control URLs to visit feature.
The crawler will attempt to extract only the text bits from each page’s HTML content and transform it to Markdown, which helps the agent understand headings, sections, code, and other formatting. It’s a good idea to remove all text that’s not the main content of the page. To do this, use the Only include HTML matching CSS selector and Exclude HTML matching CSS selector settings. Examples:
If your documentation site wraps the main content in an
<article>HTML tag, enterarticleunder Only include HTML matching CSS selector.If your website has
<header>and<footer>HTML elements on all pages containing the top and bottom menus, enterheader, footerunder Exclude HTML matching CSS selector.
After training the agent, click the x documents link in the builder header and explore some of the URLs to ensure the text is clean and free of irrelevant content.
If your website uses JavaScript to dynamically fetch content and render it asynchronously, you may find that your pages’ content is empty. If this occurs, enable Render JavaScript. You can also enter a number of milliseconds to wait before capturing the content. Choose a duration you feel confident that your page will load within. If unsure, enter the maximum value of 10,000 (10 seconds), but note that higher values may slow down training. If the wait is shorter than your page needs, the crawler stores only what has rendered before it expires. Because page-load speed varies between crawls, the same page can be captured in full on one training run and partially or not at all on the next — which is a common reason an Agent answers a question correctly one week and can't find it the following week with nothing changed on your side. If answers come and go like that, raise the wait before changing anything else, and re-check the x documents link after training.
If your website uses special proxies or captchas, you may not see any documents under x documents and may encounter error messages in the Training log. If this happens, try enabling the Captcha/proxy workaround. If the issue persists, contact Userflow support for assistance.
Note that Userflow caches your web pages for up to one week. This speeds up retraining, as it only needs to reevaluate your URL patterns, CSS selectors, etc., without waiting for your website to respond with the full HTML. If your website content has changed, click the Clear cache and train button under the top-right three-dot menu in the builder.
Action flows
Add an Action Flow as a source
An Action Flow is a task the Adoption Agent performs for the user rather than guiding them through. Adding Action flows as a source lets the Agent offer to run those tasks when a user asks for one.
To add Action flows to your Adoption Agent:
Click Add source or Add another source > Action flows.
Click + Add in the Action flows to suggest panel.
Select the Action Flows this Agent should be able to run.
Click an Action Flow in the panel to set its Action flow icon, and use Only suggest action flow if… to limit which users it's offered to.
Click Train.
The Agent decides when to recommend an Action Flow from the Summary of action flow written on the flow itself. Unlike a Flow, an Action Flow has no content for the Agent to read, so that summary is the only context it has.
Users always confirm before an Action Flow runs — the Agent presents it as a card and nothing happens until the user clicks it.
For the full setup, see Create an Action Flow and Add an Action Flow to your Adoption Agent.
Text
Add plain text as a source
The Text source is beneficial for providing the agent with information that you prefer not to display directly on your website.
For instance, during the early-access phase of our Adoption Agent feature, this public guide was unavailable. However, we still wanted to offer helpful information to customers inquiring about getting an agent of their own. To achieve this, we added the following text in a Text source:
Users can get a Userflow Adoption Agent of their own by contacting us via the HUMAN live-chat. We maintain a waitlist and will extend invitations soon.
Salesforce
Connect Salesforce Knowledge
The Salesforce source loads your Knowledge Base articles directly via the Salesforce API. It works even if your help center requires user authentication. You can easily filter which data categories you want to include.
How to set up:
Connect to Salesforce under Settings > Integrations.
Fill in your Article URL template under Salesforce Knowledge Base settings. This is how the agent will know how to link to your articles. Example:
https://help.mysite.com/s/article/{{ article.urlName }}. If you don’t fill this field in, articles’ content will be used for answering, but the agent will not provide any source links.Optional: By default, we’ll use the content of your articles’ Title, Question and Answer fields from Salesforce. If you’re using a different format for your articles, you can use a custom Article content template. If your articles have a custom field called,
CustomText__c, then you can use it like this:{{ layout_items.CustomText__c }}.Salesforce will now appear under the Add source button in the agent builder.
Zendesk
Connect a Zendesk help center
The Zendesk source loads your help center articles directly via the Zendesk API. It works even if your help center requires user authentication. You can easily filter which categories/sections you want to include.
First, connect to Zendesk under Settings > Integrations. After that, Zendesk will appear in the Add source button under the agent builder.
⚠️ Existing Zendesk connections may need reconnecting
Zendesk is phasing out long-lived API tokens (April 30, 2026 – April 2027). If your Zendesk source was connected before Userflow's refresh-token update, the Adoption Agent's access to private Zendesk content may fail or silently go stale until you reconnect under Settings > Integrations.
Intercom
Connect an Intercom help center
The Intercom source loads your help center articles directly via the Intercom API. It works even if your help center requires user authentication. You can easily filter which categories/sections you want to include.
First, connect to Intercom under Settings > Integrations. After that, Intercom will appear in the Add source button under the agent builder.
Minimal resource center solution
If you are not using the full Resource Center but want to implement the Adoption Agent in your app, you can create a new Resource Center containing only a single Adoption Agent block.
Next, have your developers disable the default Resource Center Launcher by adding the following line before your userflow.init() call. This will prevent the round Userflow help button from appearing in the corner of your app:
userflow.setResourceCenterLauncherHidden(true)Then, click Publish in the resource center builder. As the default launcher is hidden, nothing will be displayed to users.
Finally, request your developers to open the agent chat programmatically, such as when users click a custom button in your app:
userflow.openResourceCenter()An example of an event handler on a button:
<button onclick="userflow.openResourceCenter()">
Chat with our Adoption Agent
</button>User ratings and feedback
Users can rate the agent’s replies using the thumbs-up and thumbs-down icons located below each response.
Upon liking or disliking a reply, users can provide additional feedback in a free-form text field.
You can view both the ratings and the feedback on the agent’s Analytics tab.