How to Build a Daily FAQ Digest From New Knowledge Base Documents
Build a Spojit workflow that runs every weekday morning, queries a persistent Knowledge collection for recently added topics, has the intelligent layer write a short FAQ digest, and emails it to your team through the Resend connector.
What This Integration Does
Teams that maintain a Knowledge collection (product docs, policies, support macros, onboarding notes) often add new material faster than anyone can keep up with. This workflow turns that collection into a habit: each morning it pulls the freshest topics out of the collection, asks Miraxa to turn them into a handful of plain-language questions and answers, and delivers a tidy digest to inboxes. Nobody has to remember to "read the new docs" because the new docs come to them.
The run model is a Schedule trigger on a 5-field cron expression in a timezone you choose. On each fire the workflow uses a Knowledge node in Query mode against a persistent, workspace-scoped collection, then a Connector node in Agent mode to draft the digest, and finally the Resend connector to send the email from your own domain. The workflow holds no state between runs: every fire is independent and simply reflects whatever the collection contains at that moment, so re-running it later just produces a fresh digest from the current documents.
Prerequisites
- A persistent Knowledge collection that your team already uploads documents to. Create and manage it in the Knowledge section of the sidebar via New Collection, then Upload Document and Upload & Embed.
- The embedding model is fixed when the collection is created. You do not pick it again here, but keep using the same collection so embed and query stay consistent.
- A Resend connection added under Connections → Add connection, with at least one verified sending domain so your digest sends from your own address.
- The team recipient addresses you want to email (a distribution list address works well).
- Familiarity with the visual designer: dragging nodes onto the canvas and connecting them. You can also scaffold this whole workflow by describing it to Miraxa and then fine-tuning each node in the properties panel.
Step 1: Add a Schedule trigger for the morning run
Start a new workflow and set its Trigger node type to Schedule. Add a 5-field Unix cron expression and an IANA timezone so the digest lands at a consistent local time. For weekday mornings at 8:00 AM in Sydney, use:
0 8 * * 1-5
Australia/Sydney
A single Schedule trigger can hold multiple schedules if you want more than one delivery time. The trigger output is simply { scheduledAt }, which you can reference later as {{ scheduledAt }} to stamp the run time into the email.
Step 2: Query the collection for recently added topics
Add a Knowledge node set to Query mode and connect it after the trigger. In the Collection dropdown, pick your persistent team collection (do not pick Transient, which only lives for a single run). Set the Prompt to ask for the newest material and a digest-friendly shape, set the Model for synthesis, and set a Result Count (the default is 5) to control how many source chunks feed the answer.
A prompt that works well:
Summarize the most recently added or updated topics in this
collection. For each distinct topic, give a short title and
the key facts a teammate would need. Focus on material that
reads as new guidance, policy, or product information.
To get predictable output you can feed straight into the next step, add a Response Schema on the Query node so it returns structured JSON rather than prose:
{
"type": "object",
"properties": {
"topics": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": { "type": "string" },
"summary": { "type": "string" }
},
"required": ["title", "summary"]
}
}
},
"required": ["topics"]
}
Set the Output Variable to something like kb so the result is available downstream as {{ kb.topics }}.
Step 3: Draft the FAQ digest with a Connector node in Agent mode
Add a Connector node in Agent mode to turn the topics into a clean FAQ. Agent mode lets you describe the writing task in plain language and apply a Response Schema so the output is reliable JSON. Pass the topics from the previous step in your prompt:
Write a short daily FAQ digest from these topics:
{{ kb.topics }}
Produce 3 to 6 frequently-asked questions with concise answers,
phrased the way a teammate would actually ask them. Keep each
answer to a couple of sentences. Return JSON only.
Apply a Response Schema so the draft is structured:
{
"type": "object",
"properties": {
"intro": { "type": "string" },
"faqs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"question": { "type": "string" },
"answer": { "type": "string" }
},
"required": ["question", "answer"]
}
}
},
"required": ["intro", "faqs"]
}
Set this node's output variable to digest so the email step can read {{ digest.intro }} and {{ digest.faqs }}. If the collection had nothing new, the digest can come back with an empty faqs list, which you handle in Step 5.
Step 4: Skip the email when there is nothing new
Add a Condition node so you only send mail on days with fresh content. Branch on whether the digest has any FAQs, for example checking that the length of {{ digest.faqs }} is greater than zero. Wire the true output to the send step in the next step and leave the false output unconnected so quiet days end the run silently. This keeps the digest a welcome signal instead of a daily empty email.
Step 5: Send the digest from your domain with the Resend connector
On the true branch, add a Connector node in Direct mode, choose your Resend connection, and pick the send-email tool. Direct mode is the right choice here because sending is a single, predictable call with no judgment needed, and it does not spend AI credits. Map the inputs to your team list and the drafted content:
from: digest@yourdomain.com
to: team@yourdomain.com
subject: Daily FAQ digest - {{ scheduledAt }}
html: {{ digest.intro }} ... rendered FAQ list from {{ digest.faqs }}
Because the FAQs are a list, render them into the email body using a Transform node before this step (build an HTML or plain-text block from {{ digest.faqs }}), then reference that transformed value as the html or text body. The from address must be on a domain you have verified in Resend.
If you would rather not manage a sending domain, you can swap this step for a Send Email node, which uses Spojit's built-in mail service with no connection. The trade-off is that Send Email sends from Spojit's service rather than your own domain, external recipients must be on your org allowlist under Settings → General → Email recipients, and it counts toward your monthly email allowance. The Resend connector is the choice when you want the digest to come from your own address.
Step 6: Save, name, and enable the workflow
Give the workflow a clear name like "Daily FAQ digest", save it, and enable it so the Schedule trigger starts firing. Confirm the cron expression and timezone read the way you intend in the trigger panel before you walk away, since a wrong timezone is the most common reason a "morning" digest arrives in the middle of the night.
Tips
- Tune Result Count on the Knowledge Query node to balance coverage against noise. A higher count pulls in more source chunks but can dilute the digest with older material.
- Keep the Query prompt and the Agent prompt focused: ask the Query node for facts and the Agent node for phrasing. Splitting "what to say" from "how to say it" makes both steps easier to debug.
- Use
{{ scheduledAt }}in the subject line so each digest is dated and easy to find later in inboxes. - Add a second schedule to the same trigger (for example a Friday wrap-up) instead of building a separate workflow.
Common Pitfalls
- Wrong timezone. Cron runs in the IANA timezone you set, not the viewer's local time. Double-check the timezone field so an 8 AM digest is 8 AM where your team sits.
- Querying a Transient collection by mistake. Transient collections only exist for a single run and are auto-cleaned afterward. For a persistent team archive you must select your named collection in the dropdown.
- Unverified sending domain. The Resend
send-emailtool will not deliver from afromaddress whose domain you have not verified in Resend. Verify the domain first. - Empty digests on quiet days. Without the Condition gate from Step 4, your team gets an email even when nothing new was added. Branch on the FAQ count so quiet days stay silent.
Testing
Validate before turning the schedule loose. While building, you can run the workflow on demand to exercise the full path, then open the execution history to confirm the Knowledge Query returned topics, the Agent step produced valid JSON matching your Response Schema, and the Resend step reported the email sent. Point the to address at your own inbox first and send to a single recipient so you can read the digest end to end. Once the content and formatting look right, switch the recipient to the team list and let the Schedule trigger take over.
Learn More
- Knowledge node reference for Query and Embed mode configuration.
- Knowledge platform overview covering collections, documents, and embedding models.
- Resend connector reference for the available email tools and domain setup.
- Querying Your Knowledge Base for more on Query mode, prompts, and result counts.
- Setting Up a Schedule Trigger for cron syntax and timezones.
- How to Build Email Notifications with Resend for a deeper Resend email walkthrough.
- How to Enrich Workflow Data with Knowledge Base Queries for other ways to use Query results downstream.