Regarding your question.. It's not that it NEEDs to have that variable, it's just one way of doing it.
And about your screenshot, the "Attribute Name" doesn't need to be "CallLog = Flow.CallLog". It should be just "CallLog".
That's the name that you want your Participant Data to have.
Then the value that will be stored in it is what you put in the place you painted green.
So you should have a Participant Name named "CallLog", with the value from the "Call.Ani" variable.
When you check the Interaction details from one of your interactions, you will end up with something like: "CallLog = +12225555"
Original Message:
Sent: 09-24-2025 17:27
From: Jean Lam
Subject: Architect flow question - How to capture the ANI and put it on a Interaction log?
Hi Marcello,
Thank you for the explanation. It is exactly what I was asking about :)
- This part is a great it makes sense "Participants are all parties that participated in the interaction (Like the "customer", the "flow", the "queue", the "agent", etc.)"
- I asked AI and it explained the reason behind the order it is written ANI for CallBlocking = Flow.ANI
Because of assignment direction:
The left side of = is always the destination (where the value will be stored).
The right side is the source (the value you're copying).
- QUESTION
"Now, regarding "Call.Ani", that is a variable on your Flow. A built-in system variable that comes with any Inbound Call Flow."
For the log to show the ANI, the string must contain Call.Ani to work? So as long as you insert the variable somewhere like here: Replace(Replace(Call.Ani, "tel:+1", NOT_SET), "-", NOT_SET) having the Call.Ani in this string is sufficient?
As an example this would work if I don't require to clean up the ANI prior and I want the ANI to show up in the Interaction log?

------------------------------
Jean Lam
Original Message:
Sent: 09-19-2025 17:06
From: Marcello Jabur
Subject: Architect flow question - How to capture the ANI and put it on a Interaction log?
Hi Jean,
I'm not 100% certain that I understand your question, but I will try to help anyway:
You are asking "why is the string written this way ANI for CallBlocking = Call.Ani"
-----
Well, there are several different elements that we can define here.
Firstly, "ANI for CallBlocking" is the name of the Participant Data that your Flow is creating.
Participant Data are attributes associated to an specific Participant of an Interaction.
Participants are all parties that participated in the interaction (Like the "customer", the "flow", the "queue", the "agent", etc.)
By default the Flow will associate the Participant Data that you create to the "customer" participant (At least for inbound calls)
-----
Now, regarding "Call.Ani", that is a variable on your Flow. A built-in system variable that comes with any Inbound Call Flow.
This variable has a fixed value, and you can't change it.
-----
What you see in the "Set Participant Data" block written as "ANI for CallBlocking = Call.Ani" is simply a summarized list of the first few participant data that are being updated in that block.
And that information is telling you that you have a Participant Data named "ANI for CallBlocking" and you are updating it with the value stored in the variable "Call.Ani".
That's why on your second image you can see a list of Participant Data stored in the Conversation, and you see on the left side the name of it (ANI for CallBlocking), and on the right side the value that was written on it (which is the value that was stored in the Call.Ani variable).
-----
Lastly, what the previous function (Replace(Replace(Call.Ani, "tel:+1", NOT_SET), "-", NOT_SET)) was doing was:
1) Removing the "tel:+1" from the value stored in the Call.Ani variable, in case it existed
2) Removing the "-" from the string resulting from the previous removal.
So, let' say your Call.Ani variable had the value: "tel:+1222-5555". It would end up being just "2225555". And this would be the value that would be written to your Participant Data (ANI for CallBlocking)
-----------
Does that make sense? Hope it helped, let me know if you still have any questions
------------------------------
Marcello Jabur
Original Message:
Sent: 09-19-2025 16:52
From: Jean Lam
Subject: Architect flow question - How to capture the ANI and put it on a Interaction log?
Hi Dave,
This the full string, Replace(Replace(Call.Ani, "tel:+1", NOT_SET), "-", NOT_SET). I experimented by removing the entire string and inserted this below instead.

And it worked. The ani showed up in the log

Having the Call.Ani as part of a string in the flow will work. My question is why is the string written this way ANI for CallBlocking = Call.Ani ?
I would think it would be written in this manner Call.Ani = CallBlocking
------------------------------
Jean Lam
Original Message:
Sent: 09-16-2025 17:51
From: Dave Halderman
Subject: Architect flow question - How to capture the ANI and put it on a Interaction log?
- Yes. It's available in Call.Ani. That is a built-in variable that is available to be used in your flows. See the list of built-in variables here. Note that some variables are only available in specific flow types.
- I can't see all of it, but the second part of step 54 looks like it's getting the contents of the Call.Ani built-in variable, stripping off the unwanted parts, then storing just the part you want into the Flow.ANI variable. If we pretend that the Flow.ANI variable is 8005558445, then the Call.Ani variable would have contained something like tel:+1 8005558445.
- Step 55 is writing the two flow variables that were set in step 54 out to two pieces of participant data named 'CallLog' and 'ANI for CallBlocking'. The flow variables are only available within the current flow. The participant data travels along with the call as it moves throughout the system. This can be a useful way to pass information along to be used by some flow or script later in the process
------------------------------
Dave Halderman
Business Analyst
Original Message:
Sent: 09-16-2025 17:26
From: Jean Lam
Subject: Architect flow question - How to capture the ANI and put it on a Interaction log?
The following steps are copied from another flow and it does work in capturing the ANI and displaying a log in the Interaction details page.
My questions are,
- Is the ANI automatically captured when it enters the Genesys platform?
- Is how is the flow capturing the ANI with a Update Data or Set Participant data action?
- The 2nd line in box "55 ANI for CallBlocking = Flow.ANI" , is that the function that captures the ANI and creates the log in the Interaction details?
FLOW

Log display in Interaction details page 
#PlatformAdministration
#Routing(ACD/IVR)
#Unsure/Other
------------------------------
Jean Lam
------------------------------