03: English screenshots and English apps (Parent letter assistant, School news, Reception mode)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Guido van Dijk
2026-09-21 08:35:45 +02:00
parent beb87790ca
commit f5761da782
71 changed files with 38 additions and 35 deletions
@@ -2,7 +2,7 @@
FOR THE EDITOR
Guide 3: school communication at Example College (fictional). Screenshots in screenshots/,
captured on 20 September 2026 (Dify cloud, Dutch build of the same apps).
captured on 21 September 2026 (Dify cloud, English interface).
Convert to HTML, PDF and Word: python3 build.py
(python-markdown, google-chrome and libreoffice; layout and logo in _tools/build_guide.py)
@@ -16,9 +16,10 @@ Formatting conventions (see also README.md):
Sample document: style-guide-example-college.pdf (fictional, in this folder); the school guide
from guide 2 is reused.
Published example apps (Dutch):
Parent letter assistant https://udify.app/chat/OJCfxjBeBHCEbBPx
School news https://udify.app/workflow/jJclFyX9BlteuHYi
Published example apps:
Parent letter assistant https://udify.app/chat/oB2H2mLaoKR6d4IC
School news https://udify.app/workflow/E2CHtVPKe3PLg7GF
School guide assistant https://udify.app/chat/6Y6WnP0m5Z3jSHRs (with Reception mode)
School guide assistant https://udify.app/chat/cvLAmpk60m9HUXUy (with the Reception mode)
-->
@@ -37,7 +38,7 @@ In guide 1 you built a workflow, in guide 2 an agent with a knowledge base. Now
The common thread is a **style guide**: two pages with the school's agreements about reading level, form of address, words to avoid and the length per channel. You put it in the knowledge base next to the school guide. After that all three apps stick to it, without you having to repeat the rules in every prompt. Change the style guide and the apps change with it.
This guide follows the cloud version of Dify as it looked on 20 September 2026. Dify changes fast: if your screen differs, follow what you see, not what is written here. The screenshots show the Dutch build of these apps; the screens and clicks are the same.
This guide follows the cloud version of Dify as it looked on 20 September 2026. Dify changes fast: if your screen differs, follow what you see, not what is written here.
**How to read this guide**
@@ -96,7 +97,9 @@ The school guide is already in the knowledge base. You add the style guide as a
2. Under **Documents**, click **Add file**.
3. Click **Browse** and choose `style-guide-example-college.pdf`, or drag the file into the box.
![Add file: one file at a time in the sandbox](screenshots/a01-add-file.jpg)
![Add file](screenshots/a01-add-file.jpg)
![The file is ready](screenshots/a02-file-ready.jpg)
4. Click **Next**.
@@ -106,7 +109,7 @@ The school guide is already in the knowledge base. You add the style guide as a
Dify does not necessarily remember the setting of the first document. So check again how the document is split.
![The default setting: Delimiter \n](screenshots/a02-chunk.jpg)
![The default setting: Delimiter \n](screenshots/a03-chunk.jpg)
1. In the **Delimiter** field set the value to `\n\n` (backslash-n twice, no spaces).
@@ -116,15 +119,15 @@ Dify does not necessarily remember the setting of the first document. So check a
| Maximum chunk length | `1024` (leave as is) |
| Chunk overlap | `50` (leave as is) |
2. Click **Preview Chunk**. On the right you now see a handful of pieces of a paragraph or longer: the introduction, the language rules, the channels, the privacy rules.
2. Click **Preview Chunk**. On the right you now see four pieces of a few paragraphs each: who we write for and the tone, the words to avoid and the letter structure, the channels, the privacy rules.
![After the change: four chunks with real content](screenshots/a03-chunk-delimiter.jpg)
![After the change: four chunks with real content](screenshots/a04-chunk-delimiter.jpg)
3. Click **Save & Process**.
### Step 3. Wait for the green tick
![Document uploaded, embedding completed](screenshots/a04-klaar.jpg)
![Document uploaded, embedding completed](screenshots/a05-done.jpg)
For two pages this takes a few seconds. Then click **Go to document**: the knowledge base now has two documents.
@@ -139,7 +142,7 @@ The agent reads the description of the knowledge base to decide whether to searc
Two documents from Example College. The school guide: lesson times, reporting illness, absence and leave, homework and tests, phones and laptops, form tutors and contact details. The style guide: how the school writes to parents and for the website, the parent app and social media (reading level B1, formal or informal address, words to avoid, structure of a parent letter, length per channel, names and photos of students). Use this knowledge base for questions about school rules and for writing or checking texts for parents.
```
![The updated description](screenshots/a05-settings.jpg)
![The updated description](screenshots/a06-settings.jpg)
3. Scroll down and click **Save**.
@@ -165,7 +168,7 @@ A teacher pastes a draft letter, the assistant turns it into a letter parents un
3. Click **Create**.
![The empty agent: instruction, variables, knowledge base and tools](screenshots/b02-lege-agent.jpg)
![The empty agent: instruction, variables, knowledge base and tools](screenshots/b02-empty-agent.jpg)
4. Click the model name (**gpt-5**) at the top right and choose **gpt-5-mini**.
@@ -184,7 +187,7 @@ Method:
5. Be brief. No introduction, no compliment, no sign-off from you.
```
![The instruction is in place](screenshots/b03-instructie.jpg)
![The instruction is in place](screenshots/b03-instruction.jpg)
> **Your choice: the method.** Point 3 determines the shape of the answer. Would you rather have two variants (short and full)? A version in another language for parents who speak it? Only the letter, without the explanation? Change only that point and test again. Point 4 (invent nothing, [FILL IN]) we recommend keeping; that is the rule that keeps you out of trouble.
@@ -195,7 +198,7 @@ Method:
![Select reference Knowledge](screenshots/b04-select-knowledge.jpg)
![The knowledge base is attached to the agent](screenshots/b05-gekoppeld.jpg)
![The knowledge base is attached to the agent](screenshots/b05-attached.jpg)
### Step 8. Test with a woolly letter
@@ -209,9 +212,9 @@ Dear parent(s)/carer(s),
By means of this letter we would like to inform you with regard to the parents' evening which, within the framework of the subject choice process, will take place on Thursday 8 October at 19.30 in the main hall. During this evening an explanation of the choice trajectory will be provided by the careers adviser. You are requested to confirm your attendance asap via the parent portal. Kind regards, the management
```
![The answer: the rewritten letter with a subject line](screenshots/b07-antwoord2.jpg)
![The answer: the rewritten letter with a subject line](screenshots/b06-answer-letter.jpg)
![Below it: "What I changed", with the rule from the style guide for each point](screenshots/b06-antwoord.jpg)
![Below it: "What I changed", with the rule from the style guide for each point](screenshots/b07-answer-changes.jpg)
Note three things in the answer:
@@ -229,9 +232,9 @@ An agent app is already published when it is created, but empty. Without this st
![Publish Update](screenshots/b08-publish.jpg)
![Success: the webapp now runs the new version](screenshots/b09-publish2.jpg)
![Success: the webapp now runs the new version](screenshots/b09-publish-success.jpg)
2. In the same menu click **Open webapp** to see the link you share with the team. Our Dutch version: https://udify.app/chat/OJCfxjBeBHCEbBPx
2. In the same menu click **Open web app** to see the link you share with the team. The app from this guide is live at <https://udify.app/chat/oB2H2mLaoKR6d4IC>.
---
@@ -241,7 +244,7 @@ One message almost never lands in one place. The website wants 200 words with a
This is what the whole thing will look like:
![The whole workflow: User Input, Knowledge Retrieval, three LLM steps and Output](screenshots/c17-hele-flow.jpg)
![The whole workflow: User Input, Knowledge Retrieval, three LLM steps and Output](screenshots/c00-whole-flow.jpg)
### Step 10. Create the workflow
@@ -268,7 +271,7 @@ Click the **User Input** block, then on the right under **INPUT FIELD** click **
| Label Name | `What has happened or is going to happen? (who, what, where, when)` |
| Required | on |
![Add Input Field: Paragraph, core message](screenshots/c02-veld-kernboodschap.jpg)
![Add Input Field: Paragraph, core message](screenshots/c02-field-core-message.jpg)
**Field 2: the audience**
@@ -289,9 +292,9 @@ Click the **User Input** block, then on the right under **INPUT FIELD** click **
| Options | `informative`, `celebratory`, `urgent` (each via **+ Add option**) |
| Required | on |
![Add Input Field: Select with three options](screenshots/c03-veld-toon.jpg)
![Add Input Field: Select with three options](screenshots/c03-field-tone.jpg)
![The three fields are in User Input](screenshots/c04-drie-velden.jpg)
![The three fields are in User Input](screenshots/c04-three-fields.jpg)
> Choose the **Field Type** before you start typing. If you change the type afterwards, the window sometimes closes and you lose your input.
@@ -370,7 +373,7 @@ Core message: {core_message}
8. Rename the block to `Parent app`.
![The Parent app block is finished](screenshots/c13-ouderapp-klaar.jpg)
![The Parent app block is finished](screenshots/c13-parent-app-done.jpg)
**Block 3: Social**
@@ -394,7 +397,7 @@ Core message: {core_message}
11. Rename the block to `Social`.
![The Social block is finished](screenshots/c15-social-klaar.jpg)
![The Social block is finished](screenshots/c15-social-done.jpg)
> **Your choice: the channels and their rules.** The three prompts differ only in the first paragraph: that is the place for your channel rules. Does your school have a newsletter instead of Instagram? Replace block 3 with "Newsletter, at most 120 words, with a five-word headline". Want a fourth channel (for example the staff bulletin, informal address)? Add a fourth block and a fourth output variable in step 14. The word limits are also in the style guide; make prompt and style guide say the same thing, otherwise the prompt wins.
@@ -439,11 +442,11 @@ Check: the website item has a headline and ends with a contact, the parent app m
2. Click **Access point** in the left-hand menu. Under **Webapp** is the link; **Open** shows it the way a colleague sees it.
![Access point with the webapp link](screenshots/c22-toegangspunt.jpg)
![Access point with the webapp link](screenshots/c22-access-point.jpg)
![The webapp: form on the left, three texts on the right](screenshots/c23-webapp.jpg)
Our Dutch version: https://udify.app/workflow/jJclFyX9BlteuHYi
The app from this guide is live at <https://udify.app/workflow/E2CHtVPKe3PLg7GF>.
---
@@ -453,9 +456,9 @@ The team's third wish was a reference desk for reception: a parent emails or cal
![The menu on an app card: Edit Info, Duplicate, Export DSL, Delete](screenshots/d02-duplicate-menu.jpg)
But with five apps a sandbox account is full:
But a sandbox account holds five apps at most, and with the apps from guides 1 to 3 you are close to that:
![Studio with five apps: the limit of the sandbox](screenshots/d01-studio-vijf-apps.jpg)
![Studio with the apps from guides 1 to 3 (and the Dutch originals)](screenshots/d01-studio.jpg)
So we do it differently, and actually better: the School guide assistant already has the style guide in its knowledge base (that happened in part A, without touching the app). You only have to tell it when to act as reception.
@@ -463,7 +466,7 @@ So we do it differently, and actually better: the School guide assistant already
1. In **Studio** open the app **School guide assistant**.
![The instruction from guide 2](screenshots/d03-instructie-oud.jpg)
![The instruction from guide 2](screenshots/d03-instruction-old.jpg)
2. Click at the end of the instruction and paste this paragraph below it:
@@ -471,7 +474,7 @@ So we do it differently, and actually better: the School guide assistant already
Reception mode: if a staff member starts with "Reception:" and then pastes a question from a parent, you write the reply that the staff member can send to that parent. Then follow the style guide in your knowledge base: address the parent formally, reading level B1, no abbreviations, no words from the list of words to avoid, at most six sentences, and end with a way to get in touch. If you do not know the answer from the school guide, write a short message saying you will check and put [FILL IN] where the staff member must add the real answer.
```
![The extended instruction](screenshots/d04-instructie-nieuw.jpg)
![The extended instruction](screenshots/d04-instruction-new.jpg)
### Step 18. Test as reception
@@ -481,7 +484,7 @@ Reception mode: if a staff member starts with "Reception:" and then pastes a que
Reception: Hello, my daughter is in 7C and will be ill tomorrow. Do I have to report her absent and how do I do that? Will she get tomorrow's test at another time? Regards, Sanne's mother
```
![The reply for reception: formal, from the school guide, with chapter references](screenshots/d05-balie-antwoord.jpg)
![The reply for reception: formal, from the school guide, with chapter references](screenshots/d05-reception-answer.jpg)
The reply takes the sick report and the catch-up slot from two chapters of the school guide, addresses the parent formally, and ends with reception. Ask the same question again without "Reception:" in front: then you get the shorter answer for student or parent from guide 2. One app, two users.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

+1 -1
View File
@@ -5,7 +5,7 @@ This is what changed per release.
## 2026-09-20, English screenshots
- Guides 01 and 02 rebuilt with the English Dify interface and English apps (Text at level, https://udify.app/workflow/VHWboGL9462eA1KI; School guide assistant, https://udify.app/chat/6Y6WnP0m5Z3jSHRs). The other guides follow.
- Guides 01, 02 and 03 rebuilt with the English Dify interface and English apps (Text at level, School guide assistant, Parent letter assistant, School news; links in the README). The other guides follow.
- New appendix 00-self-hosting: running Dify Community Edition yourself with Docker (Windows, Mac, Linux).
## 2026-09-20, first release
+3 -3
View File
@@ -55,9 +55,9 @@ The order is also a learning path: 01 and 02 in the first hour of the workshop,
The apps are live to try out:
- Text at level (01): https://udify.app/workflow/VHWboGL9462eA1KI
- School guide assistant (02): https://udify.app/chat/6Y6WnP0m5Z3jSHRs
- Parent letter assistant (03; Dutch build): https://udify.app/chat/OJCfxjBeBHCEbBPx
- School news (03 and 07; Dutch build): https://udify.app/workflow/jJclFyX9BlteuHYi
- School guide assistant (02, with the Reception mode from 03): https://udify.app/chat/6Y6WnP0m5Z3jSHRs
- Parent letter assistant (03): https://udify.app/chat/oB2H2mLaoKR6d4IC
- School news (03): https://udify.app/workflow/E2CHtVPKe3PLg7GF
- Test week planner (04; Dutch build): https://udify.app/agent/rKoqw8rbmp0IF86Q
- Transcription tool (05; Dutch build): https://udify.app/workflow/7N5dNg8fD9qXHA80
- Materials check (06; Dutch build): https://udify.app/agent/lkWKedkSW2d3nqBV