Skip to main content

Qualtrics and airtable integration

  • March 27, 2021
  • 2 replies
  • 288 views

Hi!

I’m working on a project that requires that responses from Qualtrics Surveys get logged in airtable. I keep encountering this mysterious error when I try to create a record via POST. Any advice or direction you might be able to share would be greatly appreciated! I’ve been trying to solve this for almost three days now.

First I create a JSON object formatted according to the api’s specifications in a code task after the response is recorded, then pass that JSON object to the web service to POST to airtable

Here’s the full message I get from Qualtrics when I attempt to write to airtable, with the error message highlighted in red below:

> Input Payload
>     {
>         "payload": {
>             "Fire": true,
>             "pipedTextConfig": [],
>             "exportMappings": [],
>             "customSaveHandler": true,
>             "taskNumber": 2,
>             "elementConfigured": true,
>             "createdAt": 1616820644283,
>             "updatedAt": 1616832335963,
>             "triggerAction": "WebService",
>             "requestType": "POST",
>             "contentType": "JSON",
>             "url": "https://api.airtable.com/v0/appg---------------------------",
>             "textPayload": "{\\"records\\":[\\"~{ch://OCAC_2Qxm6xaGnwmHtfI/fields}\\"],\\"typecast\\":\\"true\\"}",
>             "name": "Token",
>             "summary": "Authenticate with an access key",
>             "id": "PLUG_d4015baa-9716-4aaa-a26c-45cdd460f081",
>             "taskRegistryId": "APP_42a7f4b6-bb84-4c66-94cc-e3e1208e62bf",
>             "actionId": "OCAC_Xj45GqNFvP9NW6J",
>             "icon": "https://www.xm-apps-static.com/assets/v1/APP_42a7f4b6-bb84-4c66-94cc-e3e1208e62bf/1.0.27/2tl04rGNWIx8qbmr/images/logo-small.png",
>             "contextId": "SV_bPAsnaCYe1SYKmq",
>             "outcomeId": "OC_2CCX3dfIcEIfKIE",
>             "surveyId": "SV_bPAsnaCYe1SYKmq",
>             "Type": "OutcomeAction",
>             "currentPipedTextTestMappings": {
>                 "~{ch://OCAC_2Qxm6xaGnwmHtfI/fields}": ""
>             },
>             "credentials": {
>                 "credentialId": "CRED_WwQTbyqDMWcYyk",
>                 "name": "volunteers",
>                 "scheme": "apikey"
>             },
>             "ownerObject": {
>                 "orgId": "berkeley",
>                 "userId": "UR_eh9TkyjopJ1LOsd"
>             },
>             "keyValues": {
>                 "typecast": "true",
>                 "records": [
>                     "~{ch://OCAC_2Qxm6xaGnwmHtfI/fields}"
>                 ]
>             },
>             "pipedTextImports": {
>                 "url": [],
>                 "headers": [],
>                 "body": [
>                     "~{ch://OCAC_2Qxm6xaGnwmHtfI/fields}"
>                 ]
>             },
>             "exports": [
>                 {
>                     "key": "headers",
>                     "display_name": "Headers"
>                 },
>                 {
>                     "key": "statusCode",
>                     "display_name": "Status Code"
>                 },
>                 {
>                     "key": "data",
>                     "display_name": "Data"
>                 }
>             ],
>             "dependencies": {
>                 "OCAC_2Qxm6xaGnwmHtfI": [
>                     "fields"
>                 ]
>             },
>             "headers": {
>                 "Content-Type": "application/json",
>                 "Authorization": "Bearer {{CRED_WwQTbyqDMWcYyk}}"
>             },
>             "chain": {
>                 "OCAC_2Qxm6xaGnwmHtfI": {
>                     "fields": {
>                         "Email": "erinkraemer@berkeley.edu",
>                         "ResponseId": "R_0JqkYtbDgYRUwP7",
>                         "First": "first",
>                         "Last": "last",
>                         "State": "California",
>                         "County": "orange",
>                         "Race": [
>                             "White"
>                         ],
>                         "RaceOther": "White",
>                         "Phone": "6504683045",
>                         "Languages": [
>                             "Armenian",
>                             "Bengali",
>                             "Cantonese",
>                             "English"
>                         ],
>                         "Roles": [
>                             "Vaccine Appointment Sleuth",
>                             "Community Outreach"
>                         ],
>                         "Source": "ok",
>                         "Certificate": "Yes",
>                         "CertificateCopy": "https://berkeley.qualtrics.com/WRQualtricsSurveyEngine/-----------------",
>                         "School": [
>                             "Yes at UC Berkeley"
>                         ],
>                         "Occupation": "ok",
>                         "Skills": "ok",
>                         "Notes": "oi"
>                     }
>                 }
>             }
>         },
>         "data": {
>             "eventTimestamp": 1616832428607,
>             "throttleCount": 0,
>             "uniqueId": "R_0JqkYtbDgYRUwP7",
>             "contextId": "SV_---------------------",
>             "workspaceId": "SV_------------------------",
>             "workflowName": "Lets see if this workflow"
>         },
>         "user": {
>             "userId": "UR_-----------sd",
>             "brandId": "berkeley"
>         },
>         "notification": {
>             "infos": [],
>             "errors": []
>         }
>     }
> 
>     Task Output
>     {
>         "name": "ACTIONS.ERROR_CODES.INTERNAL_ERROR",
>         "message": "{\\"error\\":{\\"type\\":\\"INVALID_REQUEST_UNKNOWN\\",\\"message\\":\\"Invalid request: parameter validation failed. Check your request d",
>         "needRetry": false
>     }

2 replies

ScottWorld
Forum|alt.badge.img+35
  • Genius
  • March 27, 2021

2025 Update:

Welcome to the community, @Erin_Kraemer!

I don’t have the specific answer to your question on how to modify your JSON code, but you can easily do this with no code at all by using Make’s Qualtrics integrations combined with Make’s Airtable integrations.

If you’ve never used Make before, I’ve assembled a bunch of Make training resources in this thread. For example, here is one of the ways that you could instantly trigger a Make automation from Airtable

I also give live demonstrations of how to use Make in many of my Airtable podcast appearances. For example, in this video, I show how to work with Airtable arrays in Make.

However, an even better option for you would be to leave Qualtrics altogether, in favor of Fillout’s advanced forms for Airtable — because Fillout communicates directly with Airtable and can easily do everything that you want without jumping through any hoops.

Fillout is 100% free, and it offers hundreds of features that Airtable’s native forms don’t offer, including the ability to update Airtable records using a formcreate custom PDF files from a form submissionaccept payments on formspre-fetch dynamic data from an Airtable recordcustomize the style and branding of your formcustomize a theme for your form, display Airtable lookup fields on forms, create new linked records on a formadd a login page to your form, perform math or other live calculations on your forms, collect signatures on a form, create multi-page forms with conditional paths, connect a single form to dozens of external apps simultaneously, add CAPTCHAs to your form, and much more.

I show how to use a few of the advanced features of Fillout on these 2 Airtable podcast episodes:

Hope this helps! If you’d like to hire the best Airtable consultant to help you with anything Airtable-related, please feel free to contact me through my website: Airtable consultant — ScottWorld


  • Author
  • New Participant
  • March 27, 2021

Welcome to the community, @Erin_Kraemer!

I don’t have the specific answer to your question on how to modify your JSON code, but you might want to consider using Integromat instead.

Integromat is a no-code automation tool that lets you integrate Qualtrics and Airtable with just a few clicks of your mouse. No need to type up any JSON data or any other code.

And it’s FREE for up to 1,000 operations per month!

Integromat can monitor for Qualtrics survey responses, and then send the survey data onto Airtable.

Just a few clicks of your mouse, and you’ll be setup:

(Note that I am a professional Airtable consultant and a Registered Integromat Partner, and the Integromat links contain my personal referral code.)


Thanks Scott! Unfortunately, I cannot use Interomat because I do not have the credentials to set it up for my account through my organization.