HACKER Q&A
📣 c-fe

Simple interface for non-technical users to communicate with a back end?


Hi HN,

I want to help automate part of a process for the company of a friend of mine. The company is a small construction business.

Currently they have a website, with a form that clients can fill out if they need a repair. If they fill out the form, an email is sent to a secretary who copies the content by hand onto a sheet of paper that is then given to the repair people who are sent out to the clients location to perform the work.

We have discussed together how we could optimise this process. Their webform supports webhooks, and I am considering writing a backend that receives the form and then generates a PDF that can then be given to the repair people.

But in some situations, it is necessary that the secretary and/or the clients need to provide additional details. I need some way for them to interact with my backend. However, both the secretary and clients ar non-technical users. I am thus asking if anyone has any good ideas how to setup a communication channel between non-technical users and the backend.

Note that I am primarily a (junior) python backend developer and I have barely any frontend experience. Building a custom web app would be a solution, but it would take me a lot of time. Instead, I am considering right now to have the secretary interact with a combination of (google) forms and email.

For example, the original form, filled by the client is sent via webhook to my backend. Then the backend sends an intermediary email to the secretary with the client-provided information and some form that the secretary can fill out. The contents of this form are sent via webhook (or some other way) again back to the backend, which handles it. Eventually, the final PDF for the repair people is sent via email to the secretary to distribute it.

So my idea is essentially to create a UI that is a mix of forms (for users to communicate with backend) and email (for backend to communicate with user). The advantage I see is that various form builders exist and they have plenty of features, authentication and similar should be very simple, both forms and email are intuitive to non-technical users, and development and maintenance cost of this "frontend" is very low for me.

I am asking HN to see if (1) anyone has used a similar solution and has any feedback about it, (2) anyone has another suggestion on how to approach this problem or (optionally 3) anyone knows an existing tool that already does what I am trying to do.

Tech-wise, I am planning on building the backend in Python ideally, with FastAPI and SQLAlchemy, although I am contemplating Pynecone/Reflex. I am open to using a different techstack or approaching this from a more frontend/fullstack point of view, perhaps using NextJS/Vercel, but I am far less experienced in that.


  👤 paulcole Accepted Answer ✓
Use Google Forms and have the result sent to a Google Sheet. Generate the invoice as a Google Doc using Google Apps Script pulling from the Google Sheet. I believe GAS will let you turn that Google Doc into a PDF and attach it to an email draft in the office person’s inbox.

If somebody needs to edit something, let them edit the Google Doc and build a Google Docs extension that gives them a little button that lets them regenerate the PDF. Or they can just save it from the Google Doc themselves.

https://www.google.com/script/start/

The documentation is quite good.


👤 solardev
You need a basic CRM system, I think? You can probably build a simple enough one in Airtable for your internal users to edit easily, then make a separate related table for external users to submit forms to. Relate the tables by username or email or case ID, whatever you have. You can display all of that inside custom Airtable views (maybe good enough) or use the auto-generated APIs to make your own frontend.

If you want something more ready built, I think Zoho had a cheap CRM. Or maybe you can use a help desk type system like Freshdesk.

I think fundamentally this is more of a frontend and UX concern and not a backend stack question. Any stack can handle a few related tables, but you need something easy enough for your average user. Airtable and Freshdesk are OK out of the box, can be made better with some tweaking, and will probably be better than something you create from scratch with no frontend experience.


👤 dc_rog
In a python-based backend, one suggestion for retrieving "additional details" could be SMS via Twilio or other. Easy to use with Python and might be a good context fit for following up that doesn't require a user to be at their computer.

This also seems like a potential candidate for automating using some of the tools they might already have - forms, sheets, email. Forms has the ability to ask for additional info based on the previous answer (might fix the need to ask for more info).

You aren't generating an "invoice" but a work/spec sheet might follow a similar pattern. One of the first search results I found(no affiliation) https://howtogapps.com/generate-invoices-using-google-form-a...


👤 carlosjobim
Can the secretary not fill in the form again "as the client" with the additional information needed?

If the additional info doesn't go there, then you shouldn't mix two separate things together.


👤 mattl
Could you have the form make an issue in an issue tracker? Those have built in support for printing and if needed more information could be requested and added?

👤 phil3k
Tools like Swagger, they generate demonstrative UIs on top of your API, used it many times when exposing Rest APIs was necessary.

👤 mikewarot
Teach the secretary how to copy/paste the information, rather than retyping it.