Skip to main content

Hi. I’m a new developer and I’m in over my head. I’m hoping someone here in the Zapier community can help me.

The company I started working for is integrating their application with two programs: Quickbooks Online and a whitelisted CRM. I’ve been tasked with building out this integration using Zapier.

I was able to get outbound data transfer working, so when a new customer is created in our application, data is sent through Zapier and results in QBO and the CRM also adding copies of the new customer to their systems. I went through the process of setting up authentication (using sessions/Javascript Web Tokens), making sure data could be read from our API, sorting the data in reverse chronological order so that Zapier knew where the new data was, and built a trigger so that when a new customer is added in our app, two separate Zaps are triggered that send that customer’s info to QBO and to the CRM. That side is fine.

Now, I’m working on the reverse, starting with QBO, and I’ve hit some roadblocks.

I can authenticate to QBO and see the most recent customer in the test from Zapier. However, I don’t know how to grab that data to use it so that I can send it to our app. I also wanted to ask for clarity if I need to use the Input Designer to add custom fields so that fields in our app can be matched/mapped to fields in the other programs.

During testing, the field names I tried didn’t work (for example, 'customerDisplayName': bundle.inputData.displayName,). I get a successful API call and response, but there’s no new customer saved in our app. If I hardcode values into the object, that information DOES transmit properly and show up in the app, so I know I’m either not reading the data from the source correctly or my format is incorrect (I’m leaning towards the former).

If anyone can help me understand how to properly go about resolving this, I’d really appreciate it.

Thanks in advance!

Hi friends, I wanted to pop in and consolidate a few of the great nuggets of info here into one answer.
 

When using the Platform UI to build your integration the input designer is where you would add fields to your action’s input form. So you’ll want to add fields in there that relate to the fields in your app, so that customers can map fields from other apps to the fields in your app when setting up their Zaps. 

It looks as though the Platform documentation has guides on how to set up an action, configure the input form fields and send the field data back to your app which you may find helpful in setting this up:

 

 

I misunderstood the Input Designer’s role and thought it was only for manual entry for end users, when it was needed to connect the input fields between the two applications to perform mappings.


It resulted in a follow-up question on where and how to properly format phone #’s prior to them being pushed to the app. To which vish213 circled back with their solution:

If you need to format data that was returned from an API, look at the Zapier Formatterhttps://zapier.com/apps/formatter/help

You can use it in your Actions to grab individual fields and manipulate their data. For example, I used it to edit phone numbers in a Zap from QBO that included parenthesis and hyphens and stripped those out so that only numbers were sent to our application.

The “How to Get Started with Formatter by Zapier” section in the link above includes videos from Zapier’s YouTube channel that quickly demonstrate how to use Formatter. The process can get tedious if you need to alter a piece of data several times (splitting and removing and recombining parts of a string, for example) but if you take things step-by-step, it gets your data into useable shape.

The video they referenced can be viewed here: https://zapier.com/help/create/format/get-started-with-formatter


This is super helpful! Thanks so much for sharing your progress, @vish213.


I’m leaving an update here in case anyone else runs into issues that I’ve had and needs guidance.

If you need to format data that was returned from an API, look at the Zapier Formatterhttps://zapier.com/apps/formatter/help

You can use it in your Actions to grab individual fields and manipulate their data. For example, I used it to edit phone numbers in a Zap from QBO that included parenthesis and hyphens and stripped those out so that only numbers were sent to our application.

The “How to Get Started with Formatter by Zapier” section in the link above includes videos from Zapier’s YouTube channel that quickly demonstrate how to use Formatter. The process can get tedious if you need to alter a piece of data several times (splitting and removing and recombining parts of a string, for example) but if you take things step-by-step, it gets your data into useable shape.


Thanks, Sam. I was able to make progress with the QBO connection to our application. We’re getting data back now. I misunderstood the Input Designer’s role and thought it was only for manual entry for end users, when it was needed to connect the input fields between the two applications to perform mappings.

 

I do have one additional question, and I’m not sure if someone here can help me with it. QBO is sending back customer phone numbers in a format that includes parentheses and dashes. I think I know how to remove these using JavaScript so that I only get numbers, which is what our application uses. I just don’t know where to access the phone number information that Zapier retrieves from QBO to make that change. Do you (or does anyone else here) know where I can modify that data before it gets pushed to our application?

 

Thanks!


Hey @vish213, welcome to the Community! 

When using the Platform UI to build your integration the input designer is where you would add fields to your action’s input form. So you’ll want to add fields in there that relate to the fields in your app, so that customers can map fields from other apps to the fields in your app when setting up their Zaps. 

It looks as though the Platform documentation has guides on how to set up an action, configure the input form fields and send the field data back to your app which you may find helpful in setting this up:

 
Hope that helps to point you in the right direction! :)