Couples Therapy: How to Improve Communication with Microsoft Copilot
I have been working on some last-minute screenshots to add to my session for Community Summit. My goal was to have Copilot create 2 SQL Views. There were some issues that I encountered and some of them were downright frustrating…but it is a learning experience, and I am getting better at asking what I could do to improve my prompts.
I’ll be honest, a few of these were cases where I think my prompts were just fine…and one that the summary of what I could do better was a little passive aggressive on Copilot’s part…but part of any new relationship is working on conflicts and miscommunication. (But really, I was right…)
Image created by Copilot with the prompt: Can you make a cartoon image of a woman with brown shoulder length hair and glasses sitting in a chair, have a computer in a 2nd chair like they are in couples therapy with a 3rd person facing them taking notes? Add a speech bubble where the woman says: Why can't you just understand me?
Example 1: Wrong table information
I wanted to show how users could use Copilot to find the table that stores the Payment terms for the company. Before you tell me: “this is one table…why did you need a view?” I was trying to create a SQL View that I could use in SmartList Designer that would be a Refreshable report. I knew the table. I just wanted the screenshot of me asking Copilot for the table and have it return the table and a nice view…what happened was not so smooth.
And the next few answers were wrong.
***Amber: Isn't there a company level table that includes all of the Payment Terms?
💻Copilot: In Dynamics GP, payment terms are stored in the PM00200 table, which is part of the company database (not the system database). There isn’t a single “system-wide” table that spans all companies because GP uses a separate database for each company.
Here’s how it works:
PM00200 (Payables) and RM00201 (Receivables) both store payment terms, but they typically share the same IDs and descriptions within a company.
If you want a company-level view, you can query PM00200 in each company database.
If you need a cross-company view, you’d have to join or union the PM00200 tables from each company database, using the SY01500 table in the system database (DYNAMICS) to get the list of company databases.
***Amber: what about this table: SY03300
“This next answer is completely wrong. The SY03300 table does not have anything to do with EFT configuration”
💻Copilot: Great question! SY03300 is indeed a Dynamics GP table, but it’s not the primary source for Payment Terms. Here’s the breakdown:
SY03300 = Payment Terms Setup for EFT (Electronic Funds Transfer)
It stores EFT-related configurations for payment terms, not the general payment terms used across Payables and Receivables.
Columns include things like EFT bank details, transmission formats, etc.
PM00200 (Payables) and RM00201 (Receivables) = Main Payment Terms tables
These hold the actual terms (Net 30, 2% 10 Net 30, etc.) that users see in transactions.
So, if your goal is to list all standard Payment Terms, you should use PM00200 (and optionally RM00201 if you want to confirm consistency).
If you specifically need EFT-related payment term settings, then SY03300 is relevant.
***Amber: (sends list of the columns from SY03300)
💻Copilot: Thanks for sharing the field list from SY03300. Based on those columns, here’s what’s happening:
SY03300 is indeed a Payment Terms setup table, but it’s not the same as PM00200.
It contains detailed configuration for how due dates and discounts are calculated, including:
DUETYPE,DUEDTDS→ Due date calculation type and daysDISCTYPE,DISCDTDS→ Discount calculation type and daysDSCPCTAM,DSCDLRAM→ Discount percentage or dollar amountSALPURCH,DISCNTCB,FREIGHT,MISC,TAX→ Flags for what the discount applies toCalculateDateFrom,CalculateDateFromDays,DueMonth,DiscountMonth→ Additional calculation logic
It also includes audit fields like
LSTUSRED,MODIFDT,CREATDDT.
So, SY03300 is the master table for Payment Terms logic (used by both Payables and Receivables).
PM00200 and RM00201 reference the Payment Term ID (PYMTRMID) but don’t store all these calculation details.
**Amber: What could I have done to improve my original prompt? "Hello! Can you create a SQL View that will show me all of the Payment Terms that are setup in Dynamics GP?"
Copilot: Your original prompt was clear and polite, but it could have been more specific to help me give you the best possible answer right away. Here are a few ways you could improve it:
✅ 1. Specify the scope
Original: “…all of the Payment Terms that are setup in Dynamics GP”
Improved:
“…all Payment Terms for the current company database”
or
“…a consolidated view of Payment Terms across all companies in Dynamics GP”
✅ 2. Indicate which details you need
Do you want just the Payment Term ID and Description, or also due date rules, discount percentages, EFT details, etc.?
Example:
“…including due date calculation, discount terms, and EFT settings if available”
✅ 3. Clarify related tables
If you know about tables like SY03300, PM00200, or RM00201, mention them.
Example:
“…using SY03300 as the source table”
or
“…join PM00200 for descriptions”
✅ 4. State the output format
Example:
“…create a SQL View named vw_PaymentTerms”
or
“…provide a SELECT query only”
“Vindicated! I was right!”
Interaction with Microsoft Copilot clarifying the tables used for Payment Terms
Image created using Copilot and the prompt: a cartoon image of a woman with brown hair and glasses lost in the middle of a room that is filled with several types of tables. add a speech bubble that says: "How can I know which table to use?"
Example 2: SQL View for GL Accounts with Current Balance and Last Transaction Date
I will make a separate post with the final view that worked for this report…but it was a struggle to get Copilot to create the view. The main issue was that although Copilot (as of today) can easily return the Table IDs for Dynamics GP, it sometimes has trouble getting the exact name of the columns. I have had this happen several times when working with Copilot so I asked it to write up how I could improve my prompt for next time.
Here is what it wrote:
Better Approach Next Time
Yes! Start by asking:
“Create a SQL query to return all column names for the tables that store GL transactions and account information.”
This ensures you:
Validate schema before writing logic
Avoid errors from incorrect column names
Save time troubleshooting
Key Takeaways
Always confirm table structure with
INFORMATION_SCHEMA.COLUMNS.Use LEFT JOIN for accounts with no transactions.
Handle fiscal year logic per table.
Add usability features like “Has Transactions” and concatenated account numbers.
In the end, I hope that by not giving up and working through the issues that came up, I am improving how I interact with Copilot. I look forward to including helpful tips on how to best structure prompts for Copilot on future blog posts as well.