Skip to main content

AI Act transparency for conversational workflows

If your workflow talks to people and an AI model writes or speaks the replies, those people have to be told.

Article 50 of the EU AI Act (Regulation (EU) 2024/1689) requires that a natural person interacting with an AI system is informed of that fact. This page explains what the rule asks for, who has to do it, and exactly where to put the disclosure in an EW-FLOW Process for each Channel. It is written for the people who build and operate workflows, and it is not legal advice: check the final wording with whoever owns privacy and compliance in your organisation.

What Article 50 requires

Article 50 is the transparency chapter of the AI Act. Two parts of it matter for conversational workflows.

ObligationWhat it means for a workflowApplies from
Article 50(1) Interaction disclosureAn AI system that interacts directly with natural persons must be designed so those persons are informed that they are interacting with an AI system, unless that is obvious to a reasonably well informed, observant and circumspect person in the context.2 August 2026
Article 50(2) Marking of generated contentOutput that is synthetic audio, image, video or text must be marked in a machine-readable format and detectable as artificially generated or manipulated.2 August 2026, and 2 December 2026 for systems already placed on the market before 2 August 2026

The "unless it is obvious" carve-out is narrower than it sounds. A voice agent that answers a phone line with a natural sounding synthetic voice is not obvious. A chat widget labelled "AI assistant" in its header may be, but only if the label is visible at the moment the conversation starts. When in doubt, say it explicitly: a sentence costs nothing and removes the argument.

Article 50 also expects the information to be given at the latest at the time of the first interaction, in a clear and distinguishable way, and in a form that is accessible to people with disabilities. In practice that means the disclosure belongs in the first thing your workflow says, not in a footer, not in a privacy policy the caller never opens.

Where this sits in the AI Act

Article 50 obligations are transparency obligations. They apply on their own, independently of whether your system is classified as high risk. A customer service assistant that is not high risk still has to introduce itself.

Who is responsible

Article 50 names two roles, and a conversational workflow usually has both.

  • Provider: whoever develops an AI system and places it on the market or puts it into service under their own name or trademark. Under Article 50(1) the provider must design and develop the system so users are informed.
  • Deployer: whoever uses an AI system under their own authority in the course of their activity. Deployers carry the disclosure duties in Article 50(3) and 50(4), for example for emotion recognition and for deepfake content.

For an EW-FLOW workflow, the practical split is:

PartyRoleWhat they own
EW-FLOW (Everywhere Srl)Supplier of the platform and of the TasksThe optional Tasks and fields that make a disclosure possible, and the documentation you are reading
You, the Workspace ownerDeployer of the conversational system you built, and usually provider of it towards your own end usersWhether and how the disclosure is given, its text and language, and the evidence that it was delivered

The responsibility for informing your end users rests with you, as the organisation that builds and runs the conversational system. EW-FLOW gives you the option. You decide whether to use it and what goes in it. Nobody at EW-FLOW can know that your flow is a booking assistant for an Italian clinic and that the caller needs to hear the notice in Italian, so that part cannot be automatic.

Voice workflows: the ACS agent

The ACS Module runs a real-time voice agent on a phone call with the AcsAgentConverse Task: speech to text, a language model, and streaming text to speech over the live call.

Two Task fields control the spoken disclosure:

FieldTypeDefaultDescription
AiDisclosureEnabledbooleanoffWhen switched on, the disclosure sentence is spoken before the greeting, at the start of the agent turn.
AiDisclosureTextstringA neutral default sentenceThe sentence the agent speaks. Supports {variable} placeholders, so you can localise it from a Session variable.

When enabled, the disclosure is prepended to the Greeting Message, so the caller hears it as the first words of the conversation and before the agent starts listening.

Availability

AiDisclosureEnabled and AiDisclosureText ship with the next release of the ACS Module. Until you are on that release, put the disclosure sentence at the beginning of the Greeting Message yourself, which produces the same spoken result. After upgrading, move the sentence into AiDisclosureText so the two are not spoken twice.

A worked example for an Italian phone line:

FieldValue
AiDisclosureEnabledtrue
AiDisclosureTextBuongiorno, sta parlando con un assistente virtuale automatico.
Greeting MessageCome posso aiutarla?

The caller hears: "Buongiorno, sta parlando con un assistente virtuale automatico. Come posso aiutarla?"

If the call is transferred to a human later in the flow, you do not need a second notice. The obligation is about the AI interaction, and once a person takes over, the AI interaction has ended.

Chat, WhatsApp, SMS and Slack workflows

There is no dedicated disclosure field on the messaging Channels, and there does not need to be: the rule is satisfied by the first outbound message of the conversation. Put the sentence there, in the first Task that sends text to the user, and the requirement is met.

The pattern is the same on every Channel: find the first Task after the StartTask that writes to the user, and lead with the disclosure.

Standard chat Channel

On the Chat Channel, the first message is usually an OutputTask right after the StartTask.

PropertyValue
Output MessageHi, you are chatting with an automated assistant. How can I help you today?

If the conversation starts with a question rather than a greeting, fold the disclosure into the question instead of adding a separate turn:

PropertyValue
Prompt Message (InputTask)Hi, you are chatting with an automated assistant. What is your order number?

Twilio WhatsApp

Business-initiated WhatsApp conversations start with TwilioSendWhatsAppTask. Outside the 24 hour customer service window this Task sends an approved template through ContentSid, so the disclosure has to be part of the template you submit for approval, not something you add at send time.

PropertyValue
To{phone}
BodyHi {name}, this is the Acme automated assistant. Your appointment on {date} is confirmed. Reply CHANGE to move it.

Inside the window, where a free-form Body is allowed, the same sentence goes at the front of the Body text. When the user writes first and your workflow replies on the TwilioWhatsApp Channel through the standard OutputTask, put the disclosure in that first reply.

Templates and disclosure

Submit one template per language with the disclosure already in the copy. Meta reviews the template text, so a disclosure that lives in the template is reviewed once and then cannot be forgotten by a later edit to the Process.

Twilio SMS

SMS runs through the same unified Conversations path as WhatsApp on the TwilioSms Channel, so the first OutputTask carries the sentence. Keep it short: SMS segments are 160 characters, and a long disclosure pushes the useful content into a second billed segment.

Acme automated assistant here. Your code is 4821.

Slack

On the SlackChannel Channel the first OutputTask or SlackBlockMessage in the flow carries the sentence. If the workflow answers in a thread, the disclosure belongs on the first message of that thread, because a thread is where the interaction actually begins for the reader.

Writing the disclosure

A few rules that keep the sentence both compliant and tolerable.

  • Write it in the user's language. A notice in English to an Italian speaking caller does not inform anyone. If your flow detects or already knows the language, store the sentence in a Session variable and reference it with {variable} in the disclosure field, so one Process serves several languages.
  • Keep it to one sentence. "You are chatting with an automated assistant" is enough. You do not have to name the model, the vendor, or the version.
  • Say it once, at the start. Repeating the notice on every turn trains people to ignore it.
  • Do not bury it. A disclosure in the third paragraph of a long welcome message, or only in a linked privacy notice, does not meet "at the time of the first interaction".
  • Do not pretend to be human. Names like "Sofia, your assistant" are allowed, but not if the workflow then claims to be a person when asked. Give the agent a clear instruction to confirm it is an AI when a user asks.

Wording that works well in practice:

LanguageVoiceChat and messaging
EnglishYou are speaking with an automated virtual assistant.You are chatting with an automated assistant.
ItalianoSta parlando con un assistente virtuale automatico.Stai scrivendo con un assistente automatico.
EspañolEstá hablando con un asistente virtual automático.Está escribiendo con un asistente automático.
FrançaisVous parlez avec un assistant virtuel automatique.Vous discutez avec un assistant automatique.
DeutschSie sprechen mit einem automatischen virtuellen Assistenten.Sie schreiben mit einem automatischen Assistenten.

Logs and evidence

Being compliant and being able to show you were compliant are different problems. EW-FLOW covers the second one for you.

  • Every message your workflow sends is recorded on the Session. Open Sessions, pick an execution, and the conversation history shows the disclosure as the first outbound message, with its timestamp.
  • The spoken ACS disclosure appears in the same history, and in the transcript written to the AcsAgentConverse Transcript Variable when you bind one.
  • Session data is kept according to your Workspace retention settings. If you need disclosure evidence for longer than your retention window, export the relevant Sessions or write the disclosure text to your own system with an HttpTask at the start of the flow.
  • If you change the disclosure text, do it as a new Process version and deploy it. The Deployment history then tells you which wording was live on any given date, which is the question an auditor actually asks.
Retention deletes evidence too

Shortening the retention window on a Workspace deletes old Sessions, including the record of what your workflow told people. Decide the retention period with the evidence requirement in mind, not only with the storage cost in mind.

Checklist

Before you deploy a conversational Process to a production Environment:

  • Every Channel the Process can start on has a disclosure in its first outbound message. Check each StartTask branch, not just the happy path.
  • Voice flows: the caller is informed, either with AiDisclosureEnabled switched on and AiDisclosureText in the caller's language, or with your own message earlier in the flow.
  • WhatsApp: every approved template used to open a conversation contains the disclosure in its copy.
  • The sentence is in the language the user will actually be addressed in, for every language the flow supports.
  • The agent's system prompt tells it to confirm it is an AI if a user asks directly.
  • A test Session on each Channel shows the disclosure as the first message in the Session history.
  • Someone outside the build team has read the wording and signed off on it.
  • The retention window on the Workspace is long enough to keep the evidence you may need.

References