File download problem

Hi

Please assist.

We are currently employing Pipedrive as our CRM system for a sales team. All leads, Facebook, PPC, website etc, are entering the system as new leads and for each such lead, a new deal is created and followed up with a new quote, possible revised quotes, questions etc.

When a deal is won, orders are received and client payments are accepted where proof of such payments are attached to the deal.

Finally, the deal is packaged and pushed over to Trello for fulfillment by the factory team.

This process takes all the files for the deal and attaches them to a newly created card.

For this integration, we are using the Integromat automation platform.

Now here is the problem:

The full end-to-end automation works fine, but the files downloaded and attached to Trello cannot be opened as valid PDF files.

Trying to safe the same files to another location like S3, Dropbox or anything else presents the same problem.

Iā€™ve tried downloading a file via the API page with the [/files/{id}/download] endpoint.

But this does not work either.

Iā€™m at a loss to what the problem can be.

Our PD account is linked to a Google drive account (with a gmail.com email).

I suspect this has something to do with the problem.

Assistance will be greatly appreciated.

Regards
Nantus

1 Like

Hello @nantus

Can you use the /download endpoint in Postman, save the response as .pdf and open it in your computer? If you can, maybe there is an issue with how youā€™re handling and uploading the pdf document to Trello.

1 Like

Hi jp-apps

Many thanks for your feedback and input!

I did indeed test via Pipedriveā€™s own API site. Calls to other endpoints work just fine. But the file download presents a challenge.

Testing through Postman (good suggestion) actually revealed the problem, if you can call it that.

What I now see is happening is that when the ā€¦/files/{id}/download endpoint is called within a browser, with Google Drive setup in PD as the file storage, it actually does not download the file but rather opens up a doc preview from Google Drive, then giving the option to manually download the file.

This renders the file download API call, when used in conjunction with Goolge Drive in PD, useless as an automation mechanism. It really is a disappointment.

The only way around it would be to download the file directly from Drive then. Cannot see any other way.

Perhaps another solution is possible, but I cannot see it.

Thanks again!

Hi @nantus,

Thanks for bringing up this point, not sure if our team was aware of this. I will talk to them and see if thereā€™s a solution or if itā€™s simply something that needs to be optimized in the future.

Hi David

Many thanks!

This is disappointing indeed because once Google Drive is configured and used as file storage, it is not possible to revert back to the default S3 storage if the system is alive and busy for a while.

The implication of selecting Google Drive in this respect must be made much clearer while setting up the starting of.

Weā€™re now kind of stuck and have to find other ways to deal with files attached in PD. Inside PD, all is well, but for the sake of automation it is a bad architecture.

Kind regards
Nantus

1 Like

We are also facing the same problem. We are trying to get the file attachments of a Pipedrive deal and have it as an attachment of a Contract(In our system which is integrated with Pipedrive) through the API. If the user has setup the Drive integration, we get the login page of the Google Drive as the response for the file download API. We were expecting, Pipedrive will relay the file content through the Pipedrive endpoint. Is there any update on this in the last 15 months?

Hi guys,

After researching so much I get to know that, if we want to download the files from pipedrive we have to get the first files from deal/files/ api.

Then we will get the url and name, which we have to pass to file_get_contents.

$fileId = 538697;

$downloadurl = ā€œhttps://ā€ . $company_domain . ā€œ.pipedrive.com/v1/files/$fileId /download?api_token=$apiTokenā€;
$file_name = ā€˜pipedrive_sample_data.xlsxā€™;

//save the file by using base name
if(file_put_contents( $file_name,file_get_contents($downloadurl))){
echo ā€œFile downloaded successfully!ā€;
}else{
echo ā€œFile downloading failed!ā€;
}

Hi guys. @Ravinder_Kaur , I tested this solution but Iā€™m getting a 403 error