Passing Record Output Between Generative Answers Actions in Copilot Studio

Kalla, Jahnavi 60 Reputation points
2026-05-27T11:15:43.2766667+00:00

Hi Team,

I am currently working with Topics in Copilot Studio and attempting to pass the output from one Generative Answers action to another. However, I am encountering an issue where the output I am trying to use is a record, while the subsequent action only accepts a string input. I'd like to use the record output instead of string.

Due to this type mismatch, I am unable to proceed and would like to understand how to properly handle this scenario. Is there a recommended approach to convert or extract the required data from the record so it can be passed as a string input to another Generative Answers action?

Any guidance or best practices would be greatly appreciated.

Thank you in advance for your support.

Regards,
Jahnavi Kalla

Microsoft Copilot | Microsoft 365 Copilot | Development
0 comments No comments

1 answer

Sort by: Most helpful
  1. AI answer

    2026-05-27T11:16:08.1966667+00:00

    Generative Answers actions and topics in Copilot Studio only accept specific input types (such as text/string) and expose specific output types. When an action returns a record/table and the next action expects a string, the record can't be passed directly; a string value must be extracted or defined as an output.

    Use the following approach:

    1. Define topic outputs as strings
      • When designing topics that will feed other actions, define explicit output variables of type text/string that contain exactly what the next action needs.
      • For example, if a Generative Answers action returns a record with multiple fields, add a topic output like SummaryText and map it to the specific field or composed text that should be passed on.
      • In generative orchestration, the orchestrator then uses these outputs as structured data to build the next step or the final answer, instead of passing the entire record.
    2. Avoid passing citations/records as tool inputs
      • Citations and other structured outputs from knowledge sources are exposed as tables/records (for example, Answer.Speech.Citations in voice scenarios) and are meant for display or branching, not as inputs to other tools.
      • Current limits explicitly state that citations returned from a knowledge source can't be used as inputs to other tools or actions. Instead, extract or summarize the needed information into a text output variable and pass that.
    3. Use topic input/output parameters for orchestration
      • Configure topic inputs as text parameters with clear names (for example, questionText, contextSummary) so the orchestrator can auto-fill them from conversation context or ask the user if missing.
      • Configure topic outputs as text parameters that represent the final data points needed by downstream topics or actions (for example, NearestStoreLocation, AnswerSummary).
      • The orchestrator then passes these string outputs between topics and tools in the generated plan; records remain internal to the topic/tool and are not passed directly.
    4. Pattern to handle record → string
      In practice, this means:
      • Use the Generative Answers action to query knowledge sources and get a record/table internally.
      • Within the same topic, compose the desired text (for example, a summary, a specific field, or a formatted string) and assign it to a text output variable.
      • Configure the next Generative Answers action (or topic) to take that text output variable as its string input.

    This pattern aligns with how topic inputs/outputs and generative orchestration are designed: structured outputs (records/tables) stay inside the topic/tool, while explicitly defined text outputs are used to connect steps.


    References:

    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.