Why am I encountering an error when running the `configureComponent` function for `google_my_business` in pipedream connect?

This topic was automatically generated from Slack. You can find the original thread here.

Hey guys!

I ran into an issue using pipedream connect in my SaaS, in a few words, I try to run the configureComponent function for google_my_business but I get an error each time I try. I already faced this kind of issue and successfully solved it, but this time I tested a lot of stuff and it didn’t worked out. Can someone help?

Here is my code:

  const pd = createBackendClient({
    environment: PIPEDREAM_ENV,
    projectId: PIPEDREAM_PROJECT_ID,
    credentials: {
      clientSecret: PIPEDREAM_CLIENT_SECRET,
      clientId: PIPEDREAM_CLIENT_ID
    }
  })

  const response = await pd.configureComponent({
    componentId: {
      key: "google_my_business-create-update-reply-to-review"
    },
    configuredProps: {
      google_my_business: {
        authProvisionId: "apn_XXXXXX"
      }
    },
    externalUserId: "org_XXXXX",
    propName: "account"
  } as any)

And here are the results:

{
  "errors": [
    "{\"code\":\"UserError\",\"message\":\"bad options response for prop: account\",\"ts\":\"2025-07-21T20:55:54.677Z\",\"cellId\":null,\"stack\":null,\"$debug\":null,\"name\":\"UserError\"}"
  ],
  "observations": [
    {
      "ts": 1753131354669,
      "k": "error",
      "err": {
        "name": "TypeError",
        "message": "Cannot read properties of undefined (reading 'oauth_access_token')",
        "stack": "TypeError: Cannot read properties of undefined (reading 'oauth_access_token')\n    at Object._getHeaders (file:///pipedream/dist/code/db122c037526770426a79fa85e3142ddab9b36e630d99e0ee292b47b9c972443/code/app/google_my_business.app.mjs:62:53)\n    at Object._httpRequest (file:///pipedream/dist/code/db122c037526770426a79fa85e3142ddab9b36e630d99e0ee292b47b9c972443/code/app/google_my_business.app.mjs:68:31)\n    at Object.listAccounts (file:///pipedream/dist/code/db122c037526770426a79fa85e3142ddab9b36e630d99e0ee292b47b9c972443/code/app/google_my_business.app.mjs:93:41)\n    at Object.options (file:///pipedream/dist/code/db122c037526770426a79fa85e3142ddab9b36e630d99e0ee292b47b9c972443/code/app/google_my_business.app.mjs:12:45)\n    at /var/task/node_modules/@lambda-v2/component-runtime/src/configureProp.js:82:43\n    at captureObservations (/var/task/node_modules/@lambda-v2/component-runtime/src/captureObservations.js:28:11)\n    at configureProp (/var/task/node_modules/@lambda-v2/component-runtime/src/configureProp.js:81:28)\n    at MessagePort.<anonymous> (file:///var/task/component_maker.mjs:186:15)\n    at [nodejs.internal.kHybridDispatch] (node:internal/event_target:820:20)\n    at MessagePort.<anonymous> (node:internal/per_context/messageport:23:28)"
      }
    }
  ],
  "t": {
    "ar": 1753131354452,
    "br": 1753131354651,
    "bp": 1753131354651,
    "bls": 1753131354651,
    "ble": 1753131354677,
    "lcp": 1753131354668,
    "le": 1753131354669
  }
}

I would be very grateful if someone can spend some time on this :pray:

Somewhat nuanced, but this is the issue

You need to make sure you’re using the name of the app prop that’s returned from the component definition, which in this case is app instead of google_my_business. If I call getComponent, this is what’s returned:

{
  data: {
    name: "Create or Update Reply to Review",
    description: "Create or update a reply to the specified review. [See the documentation](https://developers.google.com/my-business/reference/rest/v4/accounts.locations.reviews/updateReply)",
    component_type: "action",
    version: "0.0.1",
    key: "google_my_business-create-update-reply-to-review",
    configurable_props: [
      {
        name: "app",
        type: "app",
        app: "google_my_business"
      },
      {
        name: "account",
        type: "string",
        label: "Account Name",
        description: "Select an ****Account**** or provide a custom **Account Name**.",
        remoteOptions: true
      },
      {
        name: "location",
        type: "string",
        label: "Location",
        description: "The location whose local posts will be listed. [See the documentation](https://developers.google.com/my-business/content/location-data#filter_results_when_you_list_locations) on how to filter locations.",
        useQuery: true,
        remoteOptions: true
      },
      {
        name: "review",
        type: "string",
        label: "Review",
        description: "Select a ****Review**** or provide a custom **Review Name**.",
        remoteOptions: true
      },
      {
        name: "comment",
        type: "string",
        label: "Comment",
        description: "The body of the reply as plain text with markups. The maximum length is 4096 bytes."
      }
    ]
  }
}

Then if I call configureComponent with the below payload, it works for me.

{
  externalUserId: "<exu>",
  page: 0,
  componentId: "google_my_business-create-update-reply-to-review",
  propName: "account",
  configuredProps: {
    app: {
      authProvisionId: "apn_xxxxxxx"
    }
  }
}

Yes, that’s it!

Thanks !

I struggled to figure out exactly what should have been used there

:tada:

Yea, that’s a nuanced one

Thanks again !