Case Study - AI & Instructional Design

PowerAutomatedPower-
Automated

AI Agent

Role

UX, Instructional Design, User Research, Coding

Client

New Zealand Customs Service

Deliverables

AI agent, Power Automate flow, cheatsheets, instructional videos

Year

2024

Microsoft Copilot Studio - AI agent builder

Challenge

Replacing a manual process with an intelligent first point of contact

The Learning Design team at New Zealand Customs Service used a manual form to handle course page requests. It was a slow, inconsistent process with too much back-and-forth. With AI tools available in Microsoft 365, there was a clear opportunity to streamline it.

Approach

Self-driven, end-to-end - from research to working product

Self-initiated and end-to-end. I identified the opportunity, ran the research, and designed and built the solution independently, spanning UX, conversational flow, Power Automate integration, and instructional design.

Research

Needs analysis with the full team

I spoke with every team member to surface pain points in the existing process. The key issues were:

  • The current process was too time-consuming
  • Communication spread across multiple emails led to unclear expectations from the client
  • Documentation was often inconsistent

Problem Framing and Development

A clear design question, and three rounds of testing

From that research I framed a How Might We question to guide the design direction:

How might we create an agent that automates new course page requests and minimises manual labour?

Once a working prototype was in place, I ran three rounds of usability testing with five participants each. The sessions focused primarily on information architecture and structure, making sure the conversation flow felt logical, that questions appeared in the right order, and that the language matched how the team actually talked about their work.

Solution

An AI agent that guides clients through the request process

Built in Microsoft Copilot Studio, the agent serves as an intelligent intake form. It guides clients through a structured conversation - gathering all the information the Learning Design team needs to begin work on a new course page - then automatically compiles the responses and sends a formatted summary to the team via Outlook.

The back end connects Copilot Studio topics and triggers to a Power Automate flow, which processes the collected answers using dynamic text and routes the completed request to the appropriate inbox - no manual chasing required.

Flow

The agent, step by step

Scroll to watch the back-end logic unfold alongside the user's experience. Back-end Copilot Studio logic on the left, the live conversation on the right.

← Back-end · Copilot Studio Front-end · User →
Trigger

User says a phrase

  • "Request new course page"
  • "Create a course page"
  • "Add new course page to the learning room"
  • "I need a new course page"
  • "Submit request for a course page"
"I want a new course page"
Message

New course page request

Welcome message displayed. Instructs user to fill out as much information as possible.

New course page request - in order to create a new course page please fill out as much information as possible. A Learning Room advisor will then work with you to develop the course page.
Question

What is the name of the course?

Identify: User's entire response

{x} CourseName | string
What is the name of the course?
"Maritime unit"
Question

Who will be the course owner?

The team taking responsibility for the learning.

{x} CourseOwner | string
Who will be the course owner? (This should be the team taking responsibility for the learning.)
"Maritime unit team"
Question

What is the contact for the owner?

Usually an email address for the responsible person or team.

{x} CourseContact | string
What is the contact for the owner? This is usually an email address for the responsible person or team.
"maritimexxx@customs.govt.nz"
Question

Please describe the course.

Will appear on the course page and in the Find Learning catalogue.

{x} CourseDescription | string
Please describe the course. Briefly describe the purpose and what people will get from it.
"The course will need to have resources, an interactive module and a knowledge check"
Question

Who is the course for?

Multiple choice: All of Customs / Specific work area or role

{x} CourseAudience | choice
Condition

= "Specific work area or role"

Question

Please specify work area or role:

{x} SpecificWorkArea | string
Who is the course for?
All of Customs Specific work area or role
Please specify work area or role:
"Maritime unit"
Question

What do you need from this course page?

{x} CourseNeeds | string
What do you need from this course page?
"I need it to have three sections tied to work area frameworks"
Question

Will all items on the course page be mandatory?

Multiple choice: Yes, everything is mandatory / No, some items are optional

{x} MandatoryItems | choice
Condition

= "No, some items are optional"

Question

Please specify which items are mandatory and which are optional:

{x} OptionalDetails | string
Will all items on the course page be mandatory?
Yes, everything is mandatory No, some items are optional
Please specify which items are mandatory and which are optional:
"Quiz will be mandatory, the rest is optional"
Question

Do you have a course image to provide?

Multiple choice: Yes / No

{x} CourseImageProvided | choice
Condition

= "Yes" → attach file

{x} CourseImageFile | file
Do you have a course image to provide?
No Yes
Action

Calls: Outlook_flow

10 variables passed to Power Automate with each variable allocated to Text#:

CourseName · CourseOwner · CourseContact · CourseDescription · CourseAudience · SpecificWorkArea · CourseNeeds · MandatoryItems · OptionalDetails · CourseImageProvided
Power Automate

When an agent calls the flow

Send email (V1) to xxxx@customs.govt.nz - Subject: New Course Page Request. Body built with dynamic text from all variables. Text is formatted as: TriggerBody()?['text#']
Respond to agent - result: OK
Processing

📧 New Course Page Request

Course name: Maritime unit

Owner: Maritime unit team

Contact: maritimexxx@customs.govt.nz

For: Specific work area - Maritime unit

Completion: No, some items optional

Image provided: No

Message

New Course Page Request - summary

Displays all collected variables back to the user for confirmation.

New Course Page Request

Course name: Maritime unit

Course owner: Maritime unit team

Description: Resources, interactive module and a knowledge check

Audience: Specific - Maritime unit

Needs: Three sections tied to work area frameworks

Completion: No, some optional - Quiz mandatory

Image provided: No

Message

Thank you, you're all done!

Confirmation message. Advises a Learning Room advisor will be in touch.

Thank you, you're all done! I've sent your new course page request to the Learning Room team. A Learning Room advisor will be in touch to help you develop the course page. 🎉

📬 Email delivered to Learning Room

The team receives a fully formatted request with all answers - no manual follow-up needed.

Final Product

The agent in action

The finished agent deployed inside Microsoft Teams - ready for staff to use as the first point of contact for all new course page requests.

Copilot Studio - New Course page request topic and live test panel Outlook - New Course Page Request email received by the Learning Room team

Impact

Pioneering AI adoption
across the organisation

A traditional course request takes around 12 minutes to process, not counting follow-up emails. With 31 requests a year, that's over 6 hours of admin time. The agent handles the same task in roughly 24 seconds, bringing the annual total down to about 12 minutes.

First of its kind

This was the first AI agent deployed within the organisation's Microsoft environment, demonstrating a practical, low-risk application of emerging tools to a real team problem.

Knowledge transfer

To ensure the work had lasting value, I documented the entire build process and created cheatsheets and instructional videos so other staff could confidently build their own agents.

Streamlined intake

The agent replaced an inconsistent manual form, ensuring every request arrives with the right information - reducing turnaround time and freeing up the team administrator to focus on higher-value work.