Clickup Task with Custom Fields to Google Contact

Hi,

i am trying to get google contact and clickup to talk to each other. i finally made it, that i create new contacts from a clickup task. but

  1. the create contact module only provides Names, phoneNumbers, emailAdresses and Addresses. but i would actually like to get some more info in (notes, relations, organizations, …). any way of doing that (i tried adding them to the expression field where you define the fields, but it does not work - errors out) … actually pipedream is the first app that gets the cusom field values that i`d like to use … make, zapier do not … so that was exciting … but now i am stuck
  2. i would like to update those contacts if they are updated in clickup. i did try “update contact” by searching the name but this also creates a huge error. any other way or “correct” way to do that?

thanks a lot, arne

Hi @arne,

Hi Arne,

I’m glad you’ve made progress with creating new contacts from a ClickUp task. Let’s address your concerns one by one:

  1. To add more fields like notes, relations, and organizations to the Google Contacts creation, you’ll need to modify the code in the Pipedream component. Unfortunately, I don’t have an example for Google Contacts specifically. However, you can refer to the Google Contacts API documentation to understand how to structure the request with the additional fields you need: Method: people.createContact  |  People API  |  Google for Developers

  2. To update contacts when they’re updated in ClickUp, you’ll need to set up a workflow with a trigger that listens for updates in ClickUp. Then, use the “Update Contact” action from the Google Contacts app in Pipedream. Make sure you’re passing the correct parameters to the action. If you’re encountering errors, please share the error message or any relevant details so I can help you better.

If you need further assistance or have any questions, feel free to ask.

Best regards,
Pipedream Support Bot
I’m a bot powered by Pipedream and GPT-4. I’m still learning, so please double check my answers and code! Learn how to build your own.

amazing … a bot that actually helps … ai is awesome :slight_smile: thanks

regarding to 1. how would i change the code of the pipedream component?
regarding 2. what would be the right parameter to find a contact? here is the example of parameter (i search for first and last name ({{steps.split_text.$return_value[1]}} {{steps.split_text.$return_value[0]}})

and the error:

<!DOCTYPE html> <html lang=en> <meta charset=utf-8> <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width"> <title>Error 404 (Not Found)!!1</title> <style> *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px} </style> <a href=//www.google.com/><span id=logo aria-label=Google></span></a> <p><b>404.</b> <ins>That’s an error.</ins> <p>The requested URL <code>/v1/%20dreamer%20beamer?personFields=names</code> was not found on this server. <ins>That’s all we know.</ins>
DETAILS
    at Gaxios._request (/tmp/__pdg__/dist/code/b2625e48b564bc8f1edc7aa58a921b5fb9ee1ea54ee52571ea57c3e69f199ecd/node_modules/.pnpm/gaxios@5.1.3/node_modules/gaxios/build/src/gaxios.js:140:23)
    at process.processTicksAndRejections (internal/process/task_queues.js:95:5)
    at OAuth2Client.requestAsync (/tmp/__pdg__/dist/code/b2625e48b564bc8f1edc7aa58a921b5fb9ee1ea54ee52571ea57c3e69f199ecd/node_modules/.pnpm/google-auth-library@8.9.0/node_modules/google-auth-library/build/src/auth/oauth2client.js:382:18)
    at Object.getContact (file:///tmp/__pdg__/dist/code/b2625e48b564bc8f1edc7aa58a921b5fb9ee1ea54ee52571ea57c3e69f199ecd/code/google_contacts.app.mjs:105:24)
    at Object.processResults (file:///tmp/__pdg__/dist/code/b2625e48b564bc8f1edc7aa58a921b5fb9ee1ea54ee52571ea57c3e69f199ecd/code/actions/update-contact/update-contact.mjs:39:24)
    at Object.run (file:///tmp/__pdg__/dist/code/b2625e48b564bc8f1edc7aa58a921b5fb9ee1ea54ee52571ea57c3e69f199ecd/code/actions/common/base.mjs:134:21)
    at global.executeComponent (/var/task/launch_worker.js:225:22)
    at MessagePort.messageHandler (/var/task/launch_worker.js:722:28)

i found a solution for “2” “Update Contact”, that works, but is not pretty (as it does not check if a contact already exists or not)

each new task in clickup contact list creates a new contact. this contact returns their ressource ID to clickup to be stored in a custom field. that then is used to find the contact in google again to update it if there are changes