# Generating a pricing quote page for client to sign

**URL:** <https://community.glideapps.com/t/generating-a-pricing-quote-page-for-client-to-sign/79086>\
**Category:** Ask for Help\
**Created:** [January 9, 2025, 3:59pm UTC](https://community.glideapps.com/t/generating-a-pricing-quote-page-for-client-to-sign/79086 "2025-01-09T15:59:04Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![johannesstromme](https://avatars.discourse-cdn.com/v4/letter/j/59ef9b/32.png) [@johannesstromme](https://community.glideapps.com/u/johannesstromme)\
**Post date:** [January 9, 2025, 3:59pm UTC](https://community.glideapps.com/t/generating-a-pricing-quote-page-for-client-to-sign/79086/1 "2025-01-09T15:59:04Z")

</div>

I’m working on a pricing quote app, where on a “Send proposal” action I want to generate a webpage and send an email to the client with a URL to that webpage that the client can access without signing in. The generated page should show the quote the Glide app user just put together in the Glide app, with pre-defined/templated pictures, testimonials, terms & conditions, and a Glide signature component that the customer can sign to accept the proposal. Every time the client opens the quote URL, Glide should record each “open” with a time stamp. Once signed, Glide should change the status of the quote and notify the user who generated the quote. A “Preview quote” button to see a preview of the generated quote page before sending it to the client would also be nice.

Is this possible with Glide? And if so, how should it be done?

---

<div class="post-metadata">

**Author:** ![MaximeBaker](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maximebaker/32/80877_2.png) [@MaximeBaker](https://community.glideapps.com/u/MaximeBaker)\
**Post date:** [January 9, 2025, 4:06pm UTC](https://community.glideapps.com/t/generating-a-pricing-quote-page-for-client-to-sign/79086/2 "2025-01-09T16:06:47Z")

</div>

> [@johannesstromme](#):
>
> Every time the client opens the quote URL, Glide should record each “open” with a time stamp.

You can create a workflow to set column value before trigger the open link! That will allow you to set a timestamp everytime a URL is clicked.

> [@johannesstromme](#):
>
> Once signed, Glide should change the status of the quote and notify the user who generated the quote. A “Preview quote” button to see a preview of the generated quote page before sending it to the client would also be nice.

You can add a submit button to trigger a workflow after signature, or, you could use my most recent solution from today, use an AI Component to trigger a workflow on value update:

> [@Enhancing Glide Workflows with AI: Real-Time Actions on Value Changes And Even More!](https://community.glideapps.com/t/enhancing-glide-workflows-with-ai-real-time-actions-on-value-changes-and-even-more/79085):
>
> [image] With Glide’s AI capabilities, you can trigger workflows and actions seamlessly. Here’s how: Create an AI Component. Add a single data point and a single action. [image] [image] Add a custom CSS class to the AI Component “hidden”. In custom CSS, add this code: .hidden { display: none; } Configure the action to trigger on data changes with this prompt: \<html style="height: auto !important; --color-accent: 208deg 89% 32%;" class="color-scheme-light"\> \<head\> \<li…

If you need more help, feel free to ask! 🙂

---

<div class="post-metadata">

**Author:** ![johannesstromme](https://avatars.discourse-cdn.com/v4/letter/j/59ef9b/32.png) [@johannesstromme](https://community.glideapps.com/u/johannesstromme)\
**Post date:** [January 9, 2025, 4:50pm UTC](https://community.glideapps.com/t/generating-a-pricing-quote-page-for-client-to-sign/79086/3 "2025-01-09T16:50:57Z")

</div>

Thank you for the swift reply! My main headache right now is figuring out how to generate a webpage with the quote and signature field, and create a url to the page that I can email to the client. Any ideas?

---

<div class="post-metadata">

**Author:** ![MaximeBaker](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maximebaker/32/80877_2.png) [@MaximeBaker](https://community.glideapps.com/u/MaximeBaker)\
**Post date:** [January 9, 2025, 4:51pm UTC](https://community.glideapps.com/t/generating-a-pricing-quote-page-for-client-to-sign/79086/4 "2025-01-09T16:51:37Z")

</div>

You want the webpage inside Glide, right?

---

<div class="post-metadata">

**Author:** ![johannesstromme](https://avatars.discourse-cdn.com/v4/letter/j/59ef9b/32.png) [@johannesstromme](https://community.glideapps.com/u/johannesstromme)\
**Post date:** [January 9, 2025, 5:00pm UTC](https://community.glideapps.com/t/generating-a-pricing-quote-page-for-client-to-sign/79086/5 "2025-01-09T17:00:43Z")

</div>

I’m not sure. Ideally, yes, but I want the client to be able to see the quote without logging in, but the rest of the app has to be private. I’ve looked into deep linking, but that just seems to link to any page within Glide that would let the client access all parts of the Glide app even without them logging in, right? That wouldn’t work either. I’d like to be able to use Glide’s signature component so I don’t have to use an additional integration or external tool for that, but is that the only way to solve this?

---

<div class="post-metadata">

**Author:** ![MaximeBaker](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/maximebaker/32/80877_2.png) [@MaximeBaker](https://community.glideapps.com/u/MaximeBaker)\
**Post date:** [January 9, 2025, 5:48pm UTC](https://community.glideapps.com/t/generating-a-pricing-quote-page-for-client-to-sign/79086/6 "2025-01-09T17:48:21Z")

</div>

> [@johannesstromme](#):
>
> I’ve looked into deep linking, but that just seems to link to any page within Glide that would let the client access all parts of the Glide app even without them logging in, right?

You can’t make a Glide app secure if you are not using row owners with logged-in user, unfortunately. I mean, it would work, but by allowing the item to be accessible from unsigned users will allow the app to download all these rows to the client browser.  
Take a look at my thread here:

> [@Security tip: Managing role-based permissions in Glide apps](https://community.glideapps.com/t/security-tip-managing-role-based-permissions-in-glide-apps/77854):
>
> If you’re using Glide apps and need secure control over user permissions, be aware that Glide’s visibility conditions (like showing or hiding buttons for certain roles) are not a security feature. While these conditions are helpful for managing the app’s appearance, they do not protect actions at the backend level. Key Points to Protect Your Data Row Owners for Data Protection: Enabling “Row Owners” is effective for securing individual records (for viewing, editing, and deleting), but it does…

> [@johannesstromme](#):
>
> I’d like to be able to use Glide’s signature component so I don’t have to use an additional integration or external tool for that, but is that the only way to solve this?

You can use integrations, of course, like DocuSign.

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/7/5/75cc5fe07fcad746f961980d5ade14c56524d4df.png)  
But in your case, you can use Glide Signature Component.

For security reasons, you should enable user login and set row-level permissions to ensure they can only access specific data. This will allow you to send them deep links securely.  
Take a look at this documentation:

> **[Row Owners | Glide Docs](https://www.glideapps.com/docs/essentials/security-and-user-data/row-owners)**
>
> A secure way to restrict access to certain rows.

🙂

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [January 10, 2025, 12:46am UTC](https://community.glideapps.com/t/generating-a-pricing-quote-page-for-client-to-sign/79086/7 "2025-01-10T00:46:01Z")

</div>

If you don’t care about users potentially seeing other data inside the app, then I would suggest a public app pointing to the same table. You can construct a URL of the same entity in the public app so your clients can access it.

Otherwise, it’s best to just generate a PDF with PDFMonkey/DocsAutomator then send it with DocuSign.
