Can I do those 3 things via API?

Hi, new to NextCloud, maybe my question seems too basic but for us it’s important.

We are a Travel Agency planning to use NextCloud in a dockerized container to host all our documents.

I need 3 functionalities that I’d love to manage via API to integrate with our current systems:

FUNCTIONALITY #1 VIA API: CREATE AND SHARE QUOTATIONS WITH THE CUSTOMER

We have been sending our trip quotations over email during the last times. I want to move to the next level.

  1. I want my robot to create a document via API in nextcloud with the trip-quotation for the client
  2. Then the robot will create a share link via API on that document and send the link to the user.
  3. Allow the user to see that “automatically created document” and allow him to download as PDF without having to login or register in the next-cloud.

FUNCTIONALITY #2 VIA API: CREATE FOLDERS FOR THE CRM

We have a CRM in place which is text-based and allows us to register events like “today we called her and she agreed to go on this excursion”.

Sometimes we need to “create a folder” to store documents either sent by the user, either used internally by us.

Currently we manually create a folder and set in the CRM: “here’s the folder for this particular client” and manually write a text field.

  1. I want that the CRM will be able to “create a storage folder” for that client via API
  2. Get that URL to the recently created folder via API to automatically write the property in the CRM.

This would allow any of my employees to know the URL of that recently created folder to eanble them to manuall upload any documents they manage into the “traveler’s folder for internal use” created in NextCloud and keep all the traveler’s info in one single place.

FUNCTIONALITY #3 VIA API: ALLOW THE USERS TO UPLOAD PHOTOS

When they are on the trip they sometimes send us photos over whatsapp. This requires us to “manually sort those photos”: This photo belongs to this user, this other photo to that one.

I want:

  1. The user to be able to make a photo on their smartphone and “easily share the photo” with some thing super-easy for them, in a way that identifies them.
  2. Make those photos “arrive to my NextCloud” but although identified, they don’t “have to” register or login into my nextcloud.
  3. When a traveler sends us a new photo, make the NextCloud to call a callback so our robot may get those photos via API to be automatically donwloaded from the NextCloud.

In short, I need to…

  • create documents via API
  • share them
  • create internal folders
  • know some kind of “permalink” to the folder to pass to my teammates
  • make it easy to “receive documents” from the users without them having to “register” in my NextCloud
  • access those uploaded documents from my system

Can I do this with NextCloud?

Thanks!

Point #1:

There is a python library, it was developed when Nextcloud wasn’t forked yet but the basic fonctionality should be enough:

You can create a new folder, upload files into it, and generate a sharing link. It just uses the APIs, so you can use any other language as well. What is less nice that it is some “outside” script that needs to be started.

Check out the workflow features, that can automatize some tasks (and call scripts on certain actions):

https://docs.nextcloud.com/server/latest/admin_manual/file_workflows/index.html

#2:

Not sure about the system if you can just use webdav as storage backend, then it could be directly use. Or a local folder that is synced via the nextcloud desktop client. But it depends on the program and how to sync files when the program is open. Or can you give the programm some API commands that it can carry out?

#3:
With the pictures, it should probably be via smartphone so upload via browser is not the best. But on the other hand, asking them to install a specific app (that you would have to develop). Or you use Nextcloud talk, so you can also communicate with your customers (per chat or video call). And via the chat they are able to send you pictures. You can give each customer a guest account.