Xero / Pipedrive Integration - Search Contact Error

@DavidGurr_Make It doesn’t allow me to get to the point like these in your screenshots. Adding URL, method, headers etc

This is what I only see when I try to make a connection:

Hi Ali. I’m suggesting you replace the List Products in a Deal module with the Make an API Call module, configured as shown in my last post.

That Make an API Call configuration is calling the same API endpoint as List Products in a Deal but with the addition of the query parameter that returns the full product list.


Hi @DavidGurr_Make Gotcha. Thanks for clarifying and for your patience. I’ll follow that. That means we don’t need the array aggregator as well?

@DavidGurr_Make If we remove that array, then create an invoice will not have a reference anymore. What will we replace that with?

The Make an API Call module just replaces the List Products in a Deal module - everything else stays the same.

You still need the Array Aggregator as you need to assemble the product bundles into an array for Xero.


Hi @DavidGurr_Make I understand, and thank you, but we’re having this issue. It says the array module ref does not exists. Do you know how to configure this?

You previously had the source module of your Array Aggregator set to be the List Products in a Deal module.

As you’ve now replaced that module with the Make an API Call module, that now needs to be set as the Array Aggregator’s source.


Got it. @DavidGurr_Make

We now have change the source to - Make an API call but it’s still looking for a reference module. But we don’t have the fields to reference now for quantity, item price etc for example which is before can be called in Lis Products in a deal module. Should we just remove these mappings? Thank you so much

Hi Ali.

Because the Make an API Call module can return just about anything (as it has access to the full API), Make doesn’t know by default what the mapping options are.

To solve this, you first need to run the Make an API Call module once. Make then learns what the outputs are in that case and makes them available in mapping.

Right-click on the Make an API Call module and select Run this module only. It will ask you for a Deal ID (as it doesn’t have it from the previous modules in this case). Now, you should be able to see the outputs in the mapping.

I’d also like to take this opportunity to recommend our free training courses in the Make Academy. They cover all the basics and a lot of useful tips and tricks!


Hi @DavidGurr_Make Yes the Academy is really helpful. I’m taking the courses now. Just really needed help for this one since we have a timeframe. Thank you for your help!

I’ve tried to do the run this module only. Is there a number we should put in Deal ID? Can’t seem to be able to map a field from PD.

And we got this prompt

If you log into Pipedrive and select a Deal, the Deal ID is the number at the end of the URL after https://your-host.pipedrive.com/deal/


Hi @DavidGurr_Make Thank you again. Good news! managed to map it out properly, I think.

Though when we run the scenario once. It only went through the first module and didn’t push through the end. Is there something missing with this setup?

My apologies … the Make an API Call module doesn’t return things in exactly the same format as the List Products in a Deal module.

The latter (List Products in a Deal) returns them as separate bundles (one after another), ready for you to use the Array Aggregator to build your own array for Xero.

The former (Make an API Call) returns them in the same way as the raw Pipedrive API call, as an array of Pipedrive products. But you still need to build your own array … so you’ll need to iterate over this array before using the Aggregator.

Add an Iterator before the Array Aggregator. The array parameter should be 23.body.data[].

Your Array Aggregator is now going to have the Iterator as the source module.

Also note - I think you should be using product.code for the Item field rather than product.name, but it depends on how you have the Products set up in Pipedrive.


Hi @DavidGurr_Make Ah! That makes sense. Thank you

I’ve done those instructions but it still wouldn’t push to the next module.

Is this set up correct?

Ah, I didn’t see what you meant by “won’t push to the next module”.

A polling trigger (ie one that has to be run on a schedule) will always use one operation to check and see if there’s any new data. By default, it will only check for new data since the last time it ran.

For testing purposes this often doesn’t work well, as you might not have any new data! If you right-click on the Watch Deals module you’ll see that you can Choose where to start - set this to a specific date and it will return all new Deals since that date. After you run the scenario, it will change back to From now on.


Hi @DavidGurr_Make Thank you for that. I tried it, but I’m not sure if I’m following your instructions right. Can you please check the video? and please let me know if there’s any other info you need. Thank you

The scenario: When a deal in Pipedrive is moved to the quote stage, create an invoice in Xero. I just created that deal today and set the choose where to start today as you said > run once but it still didn’t move to the next module.

Here’s a video: Xero / Pipedrive Integration - Search Contact Error - Questions & Answers - Make Community - 16 February 2024 | Loom

Something in your filtering isn’t working.

I’d try:

  • Set your Limit to 10 (rather than 1000 - you’d never want that many)
  • Set the Choose where to start to All
  • Run the scenario

If you still don’t get anything, try relaxing the constraints. I see you have both Status set to open and a filter for All open deals.

You shouldn’t need both. I’d also check the definition of that Filter - you can set up any filter in Pipedrive and give it a name, but the actual constraints might be different.


Hi @DavidGurr_Make I think it’s working now! Thank you so much for all your help.

Though just one thing not sure why it picked it up the wrong name. The contact should be Mag Test. Is it because it’s just a test or something is really wrong? Please check screenshots below.

But in the invoice in Xero the name is Julie Soh

Hi @DavidGurr_Make Hope you’re well. Just a last question here, hopefully. Thank you

In the Create an Invoice module I guess you’re using the ID returned by the Search for Contacts module.

What parameters are you using in the Search for Contacts module?

1 Like