Genesys Cloud - Main

 View Only

Sign Up

  • 1.  Architect flow question - How to capture the ANI and put it on a Interaction log?

    Posted 09-16-2025 17:27

    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,

    1. Is the ANI automatically captured when it enters the Genesys platform?
    2. Is how is the flow capturing the ANI with a Update Data or Set Participant data action? 
    3. 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
    ------------------------------


  • 2.  RE: Architect flow question - How to capture the ANI and put it on a Interaction log?
    Best Answer

    Posted 09-16-2025 17:45

    1) Yes
    2) No.  Call.Ani built in variable in Architect that will have the value of the ani. Flow.ANI is a variable the flow author created, it looks like they wanted to manipulate the value of the ani in some way.
    https://help.mypurecloud.com/articles/architect-default-variables/
    3) Set participant data sets attributes on the conversation object, which the interaction view can display.
    https://help.mypurecloud.com/articles/set-participant-data-action/
    https://help.mypurecloud.com/articles/view-participant-data-attributes/



    ------------------------------
    Melissa Bailey
    Software Engineer
    ------------------------------



  • 3.  RE: Architect flow question - How to capture the ANI and put it on a Interaction log?

    Posted 09-16-2025 17:53

    Beat me to it! 



    ------------------------------
    Dave Halderman
    Business Analyst
    ------------------------------



  • 4.  RE: Architect flow question - How to capture the ANI and put it on a Interaction log?

    Posted 09-16-2025 17:52
    1. 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.
    2. 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.
    3. 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
    ------------------------------



  • 5.  RE: Architect flow question - How to capture the ANI and put it on a Interaction log?

    Posted 09-19-2025 16:52

    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
    ------------------------------



  • 6.  RE: Architect flow question - How to capture the ANI and put it on a Interaction log?

    Posted 09-19-2025 17:06
    Edited by Jason Kleitz 09-22-2025 13:17

    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
    ------------------------------



  • 7.  RE: Architect flow question - How to capture the ANI and put it on a Interaction log?

    Posted 09-24-2025 17:28
    Edited by Jean Lam 09-24-2025 17:28

    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
    ------------------------------



  • 8.  RE: Architect flow question - How to capture the ANI and put it on a Interaction log?

    Posted 09-24-2025 17:41

    Glad to have helped!

    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"



    ------------------------------
    Marcello Jabur
    ------------------------------