How to Build an Automated Service Request-to-Invoice Payment Workflow

Build one automated system that transforms service requests into branded invoices with integrated payment processing, eliminating manual invoice creation and reducing payment delays.

Build Time & Skill

60-90 min

Advanced

What you'll learn

How to create an end-to-end automated workflow that collects service requests, generates custom branded invoices, collects secure payments, and tracks everything in one place

Invoice-To-Payment-Guide-Main-Graphic.png

Manually creating invoices drains hours from your week. You copy information from service requests into invoice templates, calculate totals in spreadsheets, chase customers for payment, and track everything across multiple disconnected systems. Every manual step introduces errors and delays payment. Clients wait days for invoices to arrive, and you’re left wondering who paid, who didn’t, and which invoices are overdue, all while tracking everything in scattered spreadsheets.

With Cognito Forms, you can automate the entire process from initial request to payment confirmation. This automated workflow helps you:

  • Eliminate repetitive invoice creation. Generate professional invoices automatically from form data with your branding, pricing calculations, and service details (no copying and pasting).
  • Get paid faster. Customers receive invoices immediately with a secure payment link, reducing the time between delivering services and collecting payment.
  • Reduce payment friction. Customers pay securely online through Stripe, PayPal, or Square, with no checks to deposit or manual payment processing.
  • Track everything in one place. See which requests need invoicing, which invoices are outstanding, and which payments have been received, all from one centralized view.

Understanding the Workflow Components

Five core features work together to create this automated system. Each handles a specific part of the process, and when combined, they transform a manual workflow into an efficient automation:

Feature What It Is What It Does In This Workflow
Calculations Automatically compute totals, multiply quantities by rates, and sum line items without manual entry Use our calculation syntax to build pricing formulas that update instantly as staff add services
Custom Document Templates Generate a branded invoice created using your form’s data Generates branded invoices with your logo, formatting, and all transaction details
Payment Collection Securely processes credit card payments through integrated processors Connect your existing Stripe, PayPal, or Square account to collect payments directly through the form
Workflow Automation Routes entries through your process automatically As entries move from “Submitted” to “Invoice Sent” to “Paid,” the system triggers the right actions and notifications at the right time
Entry Views Filtered, organized lists of your form submissions Displays payment status in one place without spreadsheets
Feature What It Is What It Does In This Workflow
Calculations Automatically compute totals, multiply quantities by rates, and sum line items without manual entry Use our calculation syntax to build pricing formulas that update instantly as staff add services
Custom Document Templates Generate a branded invoice created using your form’s data Generates branded invoices with your logo, formatting, and all transaction details
Payment Collection Securely processes credit card payments through integrated processors Connect your existing Stripe, PayPal, or Square account to collect payments directly through the form
Workflow Automation Routes entries through your process automatically As entries move from “Submitted” to “Invoice Sent” to “Paid,” the system triggers the right actions and notifications at the right time
Entry Views Filtered, organized lists of your form submissions Displays payment status in one place without spreadsheets

Step-by-Step: Building Your Automated Payment Workflow

Follow these steps to build a system where service requests automatically become invoices, invoices become payments, and every step is tracked without manual intervention.

It often feels natural to add fields to the form before setting up the Workflow. However, to ensure seamless build process for the form, the steps will have you add Workflow items first. If you would prefer to set up your form’s fields first, follow the steps in this order:

  1. Complete steps 4 and 5, but skip the conditional logic mentioned.
  2. Complete steps 1-3.
  3. Go back and add the conditional logic outlined in steps 4 and 5.
  4. Finish up with steps 6-8.

Step 1: Configure Workflow Statuses and Roles

For the purpose of this guide, you will set up Workflow Statuses and Roles first. These will determine the path that entries follow from initial request through final payment, and define what each person can see and do at each stage.

Create workflow statuses

Screenshot of workflow statuses and Cognito Forms including Complete, Submitted, Invoice sent, Paid, and Complete

Screenshot of workflow statuses and Cognito Forms including Complete, Submitted, Invoice sent, Paid, and Complete

Statuses represent where an entry is in your process. Each entry moves through these stages: Incomplete → Submitted → Invoice Sent → Paid → Complete

To set this up:

  1. Go to Workflow and click Statuses
  2. Your form starts with “Incomplete” and “Submitted.” Keep these.
  3. Add these additional statuses:
    • Invoice Sent: For when staff have generated and the invoice has been sent
    • Paid: After the customer has made their payment
    • Complete: Once service has been delivered and the transaction is closed

Configure workflow roles

Screenshot of Workflow Roles in Cognito Forms, showing a Public Role and Internal Role

Screenshot of Workflow Roles in Cognito Forms, showing a Public Role and Internal Role

Roles control what different people can see and do throughout the Workflow.

To set this up:

  1. In Workflow, click Roles
  2. You’ll see two default Roles:
    • Public: Represents the customer who submits the request
    • Internal: Represents your staff who manage invoices

For this Workflow, we want the Public role to submit requests and pay invoices, while the Internal role can view all entries, add pricing, generate invoices, and mark work complete.


Step 2: Set up all Workflow Actions

Actions are buttons that move entries through your workflow. Configure the actions customers and staff use to advance entries through each stage.

Check the “Submit” Action (already configured)

Screenshot of the Conditional Logic Builder in Cognito Forms showing how to allow the submit action when the status is incomplete and the role is public.

This default Action allows customers to submit their initial request.

  1. In Workflow , click Actions and open the Submit Action.
  2. Verify these settings:
    • Allow Action: When Entry.Status is Incomplete
    • Change Status To: Submitted

Create the “Send Invoice” Action

Screenshot of the Conditional Logic Builder in Cognito Forms showing how to allow the

Add an Action that staff will use to send invoices after a request is submitted. You'll configure more on this Action later.

  1. Click + Add Action and name it "Send Invoice."
  2. Set Allow Action to When Entry.Status is Submitted AND Entry.Role is Internal
  3. Set Change Status To: Invoice Sent

Create a “Pay Invoice” Action

Screenshot of the Conditional Logic Builder in Cognito Forms showing how to allow the Pay Invoice Action when the status is Invoice Sent and the role is Customer.

Create an Action for the customer to complete payment after receiving their invoice.

  1. Click + Add Action and name it "Pay Invoice"
  2. Set Allow Action to When → Entry.Status is Invoice Sent AND Entry.Role is Public
  3. Set Change Status To: Paid

Create a “Mark Complete” Action

Screenshot of the Conditional Logic Builder in Cognito Forms showing how to allow the Mark Complete Action when the status is Paid and the role is Internal.

Add an Action for staff to close out an entry work after services have been completed.

  1. Click + Add Action and name it "Mark Complete."
  2. Set Allow Action to When → Entry.Status is Paid AND Entry.Role is Internal
  3. Set Change Status To: Complete

Configure the Update Action

Screenshot of the Conditional Logic Builder in Cognito Forms showing how to allow the update action when the role is internal and the status is either submitted or invoice sent.

The default “Update” Action lets users make changes to entries. Add conditions to control who can use this Action and when it is available to them.

  1. Open the Update Action.
  2. Set Allow Action to For Roles and check Internal.
  3. Or add When conditions to allow updates only in specific statuses.
    • For example: When Entry.Status is Submitted or Invoice Sent AND Entry.Role is Internal . This would only let the “Internal” Role make updates to fields when the entry is in the “Submitted” or “Invoice Sent” Status, but not once the invoice has been paid.

Check the “Submit” Action (already configured)

This default Action allows customers to submit their initial request.

Screenshot of the Conditional Logic Builder in Cognito Forms showing how to allow the submit action when the status is incomplete and the role is public.
  1. In Workflow , click Actions and open the Submit Action.
  2. Verify these settings:
    • Allow Action: When Entry.Status is Incomplete
    • Change Status To: Submitted

Create the “Send Invoice” Action

Add an Action that staff will use to send invoices after a request is submitted. You'll configure more on this Action later.

Screenshot of the Conditional Logic Builder in Cognito Forms showing how to allow the
  1. Click + Add Action and name it "Send Invoice."
  2. Set Allow Action to When Entry.Status is Submitted AND Entry.Role is Internal
  3. Set Change Status To: Invoice Sent

Create a “Pay Invoice” Action

Create an Action for the customer to complete payment after receiving their invoice.

Screenshot of the Conditional Logic Builder in Cognito Forms showing how to allow the Pay Invoice Action when the status is Invoice Sent and the role is Customer.
  1. Click + Add Action and name it "Pay Invoice"
  2. Set Allow Action to When → Entry.Status is Invoice Sent AND Entry.Role is Public
  3. Set Change Status To: Paid

Create a “Mark Complete” Action

Add an Action for staff to close out an entry after services have been completed.

Screenshot of the Conditional Logic Builder in Cognito Forms showing how to allow the Mark Complete Action when the status is Paid and the role is Internal.
  1. Click + Add Action and name it "Mark Complete."
  2. Set Allow Action to When → Entry.Status is Paid AND Entry.Role is Internal
  3. Set Change Status To: Complete

Configure the Update Action

The default “Update” Action lets users make changes to entries. Add conditions to control who can use this Action and when it is available to them.

Screenshot of the Conditional Logic Builder in Cognito Forms showing how to allow the update action when the role is internal and the status is either submitted or invoice sent.
  1. Open the Update Action.
  2. Set Allow Action to For Roles and check Internal.
  3. Or add When conditions to allow updates only in specific statuses.
    • For example: When Entry.Status is Submitted or Invoice Sent AND Entry.Role is Internal . This would only let the “Internal” Role make updates to fields when the entry is in the “Submitted” or “Invoice Sent” Status, but not once the invoice has been paid.

screenshot of a service request form with fields for Name, Email, Phone, Address, Choice field for what services you are interested in, a text box for additional details, and a Submit button

Step 3: Build the basics of your service request form

Start with a form that collects initial customer information and provides space for staff to add invoice details. The same form serves both purposes: customers see only their inquiry fields, while staff see additional internal fields for service selection and invoice customization.

Add customer-facing inquiry fields

Create fields for the information customers provide when requesting services.

  1. Add fields for the customer’s contact information (like Name, Email, Phone, and Address)
  2. Add a Choice field labeled “What services are you interested in?”
    • Use the “Card” Style for professional visual selections
    • Set the Selection Type to “Multiple” if customers can request multiple services
    • Don’t assign prices yet, you’ll do this later.
  3. Add a Text field (Multiple Lines) for customers to provide more context and details about their requirements or what they’re looking for.
  4. For all customer-facing inquiry fields added in the steps above, set the Read-Only setting to When: Entry.Role is Public AND Entry.Status is not one of Incomplete or Submitted
    • This conditional logic ensures that customer fields are editable during initial submission, but then become read-only once the request is submitted.

Create invoice line items

Now, create an internal Table field visible to staff only so they can add multiple services with individual pricing.

Automated GIF of a Table field in Cognito Forms and configuring a Choice field to add services, a Number field for estimated hours, and a price field to multiply the service hourly price by the number of hours it will take

  1. Add a Table field and label it “Invoice Line Items”.
  2. Change the Item Label to “Service” for clearer display.
  3. Set Minimum Items to 1 and enable Auto-hide buttons.
  4. Configure the Show This Field logic to WhenEntry.Role is Internal OR Entry.Role is Public AND Entry.Status is one of Invoice Sent, Paid, or Complete
    • This ensures the Table is only shown on the form when the customer accesses the form after their invoice has been sent to them, or any time the Internal Role accesses the entry.
  5. Configure the Read-Only logic to WhenEntry.Status is Paid or Complete OR Entry.Role is Public
    • This conditional logic ensures the Table is always read-only for the customer, editable by the Internal Role when in the “Submitted” or “Invoice Sent” Status, and read-only for the Internal Role after the customer has paid the invoice.
  6. Inside the table, add these fields:
Field Type Its Purpose Additional Customizations
Choice field labeled “Add Service” Lets staff select from a list of service types
  • Add all your service offerings as choices and assign a price to each choice in the Price setting
  • Do not enable Collect Payment on this field. We’ll do this on a later field
Number field labeled “Estimated Hours” Allows staff to estimate the amount of time it will take to deliver the selected service
  • Set the field’s Default Value to: =if String.IsNullOrEmpty(AddService) then null else 1
  • This leaves the field blank and then automatically populates 1 when a service is selected
Price field labeled “Service Total” Calculates and collects payment for the total price of each service
  • Set Amount to: =AddService_Price * EstimatedHours
  • Enable Sum in the column settings
  • Optionally customize the Item Name and Item Description to control what is shown on payment receipts
Field Type Its Purpose Additional Customizations
Choice field labeled “Add Service” Lets staff select from a list of service types
  • Add all your service offerings as choices and assign a price to each choice in the Price setting
  • Do not enable Collect Payment on this field. We’ll do this on a later field
Number field labeled “Estimated Hours” Allows staff to estimate the amount of time it will take to deliver the selected service
  • Set the field’s Default Value to: =if String.IsNullOrEmpty(AddService) then null else 1
  • This leaves the field blank and then automatically populates 1 when a service is selected
Price field labeled “Service Total” Calculates and collects payment for the total price of each service
  • Set Amount to: =AddService_Price * EstimatedHours
  • Enable Sum in the column settings
  • Optionally customize the Item Name and Item Description to control what is shown on payment receipts

Step 4: Add calculations and connect payment

Now create additional fields to manage invoices and calculate totals to generate the final invoice amount. After the Table field, add these fields for invoice management:

Screenshot of a calculation in Cognito Forms to automatically create a unique invoice number for every invoice

Auto-generate unique invoice numbers

Screenshot of a calculation in Cognito Forms to automatically create a unique invoice number for every invoice

  1. Add a Calculation Field and name it “Invoice Number.”
  2. You can come up with your own invoice number formula. An example of a calculation that would always be unique would be: = Form.Id + Entry.Number

Keep in mind: The value for Entry.Number won’t display on the entry until after the entry has been created or updated.

Default the invoice’s creation date

Screenshot of the default value in a Date field to automatically set today's date

  1. Add a Date Field and name it “Date Issued”
  2. Set Default Value to: =if Entry.Action = "SendInvoice" then DateTime.Today else DateIssued
    • This will default the field to today’s date when your staff generate and send the invoice. It will also remain blank beforehand (when customers initially submit) and stay the same value afterwards (when customers go to make their payment).
  3. Optionally make this Read-Only if you don’t want staff changing it

Calculate a payment due date

Screenshot of the default value in a Date field to automatically calculate the payment due date

  1. Add a Date Field titled “Payment Due Date.”
  2. Set Default Value to: =DateIssued.AddDays(14). (Adjust the number of days to match your payment terms.)
  3. Make the field Read-Only if you don’t want staff to edit the date, or leave it editable if staff need to customize terms per customer.

Screenshot of the calculation in Cognito Forms to total all services

Calculate the total of all services

Screenshot of the calculation in Cognito Forms to total all services

Set up an automatic calculation to sum all line item totals from the table you created.

  1. Add a Calculation Field of the Currency type and name it “Invoice Total.”
  2. Set the calculation to: =InvoiceLineItems.Sum(ServiceTotal)

Using the AI Calculation Helper

screenshot of an interaction with the Cognito Forms AI calculation editor. It shows the user sending what they want the calculation to do in plain language, and the calculation editor replying with the calculation syntax to use for that

screenshot of an interaction with the Cognito Forms AI calculation editor. It shows the user sending what they want the calculation to do in plain language, and the calculation editor replying with the calculation syntax to use for that

If you’re building complex pricing calculations (like tiered pricing, discounts, or tax calculations), try our AI Calculation Helper. Click the lightning bolt icon in any Calculation field, describe what you want to do in natural language, and our AI helper will generate the calculation syntax for you. Learn more about the AI Calculation Helper →

Add conditional logic to all four fields

Ensure all four fields you just created are only shown to the Internal Role, and only be editable for them when the request hasn’t been paid yet. For each field:

  1. Set the Show This Field setting to For RolesInternal.
  2. Set the Read-Only setting to WhenEntry.Status is Paid or Complete

Connect Payment Processing

You’ve already added a Price field in the table that is collecting payment. Now, you need to configure your Payment settings to be sure it’s ready to go.

Screenshot of the Payment tab selected on the Cognito Forms build page

  1. Click on the Payment tab in the top left of your screen.
  2. If you haven’t selected and connected a payment provider yet, you should do this now by clicking + Add Payment Account.
  3. Optional: Map Billing Fields to the fields collecting customer information.

Step 5: Create your custom invoice template

Transform your form data into a professional invoice document with your branding. You’ll design the invoice once in Microsoft Word, Google Docs, or any other word processor. Then, Cognito Forms automatically populates it with customer details, selected services, and pricing for every transaction.

Download the standard template

Animated GIF of downloading the standard document template in Cognito Forms and opening it up in Microsoft Word

  1. Go to your form’s Workflow settings.
  2. Open the “Submit” Action.
  3. Under Confirmation, select the Documents dropdown.
  4. Click Manage Templates.
  5. Choose Custom as the Template Type.
  6. Click Download to get a Word document with all your field names.

This template can be adjusted directly in the downloaded file, or you can reference your form’s field names in any other document template using this template as your guide.

Understanding field tokens

Field tokens use curly brackets with your field names inside: {FieldName}. When the document generates, Cognito Forms replaces these tokens with actual values from the entry. For fields with multiple parts (like Name or Address), reference specific subfields:

  • {Name.First} displays only the first name of the Name field
  • {Address.CityStatePostalCode} displays city, state, and postal code together
  • {Email} displays the customer’s email address

Step 6: Format your custom invoice template

Start with a document template you like. You can use an existing template you already use for manual invoice creation or find a simple template online. Then, add field tokens throughout the document to pull in your form’s data dynamically. Walk through a full example of this below.

Title and a header or footer section

Screenshot of the footer section of a document in Microsoft Word

  1. Header or footer section: Add your business name and contact information at the top or bottom (whichever you prefer). This stays the same for every invoice.
  2. Title section: Add a title and place your logo next to it. This stays the same for every invoice.

Keep in mind: The header and footer you set up here will not show on generated documents when the document template is in Test mode. It will appear on generated documents after the template is switched to Live.

Billing details

animated GIF of two documents open in Microsoft Word: the standard document template generated by Cognito Forms and the customer's personal invoice template. Shows copying Name, Email, Address, and Phone field tokens from the standard document template and pasting them in the correct places of the customer's invoice template format

Add customer information, such as Name, email, phone, and address. Here’s an example of how this might look when typed out in your document:

{Name}
{Address.Line1}
{Address.CityStatePostalCode}
{Email}
{Phone}

Invoice details

animated GIF of two documents open in Microsoft Word: the standard document template generated by Cognito Forms and the customer's personal invoice template. Shows copying Date Issued, Payment Due Date, and Invoice Number field tokens from the standard document template and pasting them in the correct places of the customer's invoice template format

Add a section for dates, invoice numbers, or other invoice-specific information. Here’s an example of how this might look when typed out in your document:

Invoice Number: {InvoiceNumber}
Date Issued: {DateIssued}
Payment Due: {PaymentDueDate}

Add invoice line items

animated GIF of two documents open in Microsoft Word: the standard document template generated by Cognito Forms and the customer's personal invoice template. Shows copying Service Name, Estimated Hours, Service Total, and Invoice Total field tokens from the standard document template and pasting them inside a table on the customer's invoice template format

For repeating line items, create a table that automatically populates with all services.

  1. Insert a table with 3 columns.
  2. In the header row, type your column labels: Service, Estimated Hours, and Service Total.
  3. In the second row, add the repeating section/table syntax:
Service Price Per Hour Estimated Hours Service Total
{each InvoiceLineItems} {AddService} {AddService_Price} {EstimatedHours} {ServiceTotal} {end each}
Service Price Per Hour Estimated Hours Service Total
{each InvoiceLineItems} {AddService} {AddService_Price} {EstimatedHours} {ServiceTotal} {end each}

The {each InvoiceLineItems} tag at the very beginning tells Cognito Forms to repeat this row for every line item in the table. Close it with {end each} in the last column.

Quick Tip

It’s important that your { each } tag and { end each } tag on the same line/level or within the same table of your document. Issues can arise if one of the tags are on a different “level” or outside the same table.

4. After your line items table, add the Invoice Total Calculation field to the document. To do this:

  • Add a row to the end of the table.
  • Insert this text in the last cell: "Total Amount Due: {InvoiceTotal}"

Prevent your table from being cut off

To prevent line items from being cut off when a new page begins, follow the instructions below for your chosen word processor.

Upload and test your template

animated GIF of uploading the finished invoice document template back into Cognito Forms. There are errors found on it, so the annotated template is downloaded and then the fixed version is re-uploaded with no errors

  1. Download/export your finished invoice template as a Word document (.docx file).
  2. Return to the Manage Templates dialog in Cognito Forms.
  3. Click Upload and select your customized Word document.
  4. If Cognito Forms finds any errors, download the annotated version that highlights issues. Fix these errors and reupload until no errors are returned.
  5. Select your desired Output Format:
    • PDF for static documents
    • Word document for editable documents
  6. Keep Billing Mode set to Test while you’re finalizing the design.

Test with multiple entries that have different numbers of line items to ensure your table formatting works correctly.

Include the invoice document in email notifications or confirmation messages

screenshot of the option to attach a document to an email notification in Cognito Forms with the custom invoice template selected

Attach your custom invoice document to the email going to the customer with the “Send Invoice” Action. You could also attach the generated document to the confirmation message of the same Action, so staff can download a copy of the invoice as well.

screenshot of the option to attach a document to an email notification in Cognito Forms with the custom invoice template selected

  1. Open the email you set up in Step 3 under the “Send Invoice” Action.
  2. Find Attach in the email settings and check Documents.
  3. Choose your custom invoice template.

Expert Tips for Customizing Document Templates

Create your own reference tool for field names and syntax:  

  1. Add a Calculation field to your form.
  2. Set Show This Field to Never.
  3. Click on the lightning bolt and start typing.
  4. You can now scroll through field names and their subfields.

This field now becomes a reference tool for you. You can view a list of field names and subfields to easily find the exact names and syntax to use in your document template. Learn more about the Cognito Forms merge syntax.

Apply consistent font styles
Use Microsoft Word or Google Docs’ Styles settings to apply consistent text formatting throughout your entire document. Learn how to do this in our Styling & Formatting Custom Documents help topic.


Step 7: Set up email notifications and confirmation messages

Now that Actions and your invoice template are set up, you’ll want to create notifications to keep everyone informed. First, set up an email that sends a copy of the generated invoice to the customer, and then add additional emails throughout the Workflow as you see fit.

Create the email that sends the invoice to customers

screenshot of the "Send email" option to add a new email on a Workflow Action in Cognito Forms

Now, create the email that sends the invoice to customers when the “Send Invoice” Action is clicked by your staff.

screenshot of the "Send email" option to add a new email on a Workflow Action in Cognito Forms

1. In the Send Invoice action settings, scroll to Send Emails .

2. Click + Add Email and configure the email:

  • To: Click Insert Field and select the form’s Email field. This automatically sends to the customer who submitted the request.
  • Subject: Write a clear, concise subject line. Use Insert Field options to add form data like the Invoice Number or Subtotal calculation.
  • Message: Let them know the invoice is attached, how to make a payment, and use Insert Field to add their payment due date.

screenshot of the Share Workflow Link button highlighted with the Customer Role selected

3. Click Share Workflow Link (next to the To field) and select Public as the Role.

  • By doing so, this will include a button on the email that takes customers to their entry so they can securely pay the invoice.

4. Optionally customize the Workflow Button Text to "View & Pay Invoice"

Add a confirmation message for staff after the invoice is sent

After the “Send Invoice” button is clicked by a staff member, show them a confirmation message.

screenshot of a custom confirmation message on a Workflow Action in Cognito Forms, with the custom invoice document attached. The message states, "Invoice sent successfully. The customer will receive an email with the invoice and a link to make their payment. Please save the attached document for your internal records."

  1. In the Send Invoice Action, find Confirmation.
  2. In the textbox, add a message like: “Invoice sent successfully! The customer will receive an email with the invoice and a link to make their payment.”
  3. Optional: Attach the generated invoice to this confirmation so staff can see what was sent or download and save it for internal documentation.
  4. Optional: Set up a second email to notify and send a copy of the invoice to a staff member.

Set up emails and confirmation messages for the “Submit” Action

Customize the Confirmation Message or set up automatic email notifications after customers click “Submit.” Two ideas include:

  • Show the customer an immediate confirmation with an estimated time frame for when to expect a reply.
  • Send an email to alert your team when new requests come in, including key details of the request for their review.

After customers submit their initial request, instantly redirect them to your booking link or calendar so they can schedule a time to meet with you. Learn how to redirect customers upon submission.

Set up emails and confirmation messages for the “Pay Invoice” Action

Customize the Confirmation Message and set up automatic email notifications after customers click “Pay Invoice.” Some ideas include:

  • Add a Confirmation Message that states, “Thank you for your payment! You’ll receive a receipt via email shortly.”
  • Send customers an email with their receipt attached. Simply check Receipt under Include in the email settings.
  • Notify staff when customers pay invoices with a copy of the receipt and invoice number.

Step 8: Create entry tracking views

Set up views that organize entries by status so you and your team can quickly see what needs attention and track payment history.

Task View for new requests needing invoices

Create a Task View that shows staff which requests need invoices generated.

  1. Go to the Entries page.
  2. Click + Create New View and select Task View.
  3. Name it “Pending Invoices” or “Needs Invoice.”
  4. Set Role to Internal and leave Assign as Tasks turned on.
  5. Filter the View to the “Submitted” Status.
  6. Click Save.

Staff assigned to this view will see pending requests in their Task Dashboard, making it easy to know what needs invoicing.

Grid View for paid invoices

  1. Create a new Grid View.
  2. Name it “Paid Invoices”.
  3. Filter by Status and keep Paid and Complete checked.
  4. Click Save.

Create a date-filtered view for recent activity

You could also create a similar Grid View and filter it to show all payments made in the last 30 days. Under Filter, select Advanced Filter and create a condition like this: Date Paid is on or after DateTime.Today.AddDays(-30)


The Complete Workflow In Action

Once configured, the entire workflow happens in one form with no manual invoice creation or payment tracking spreadsheets. Here’s how the entire process unfolds from start to finish:

1. Customer submits service request

The customer fills out the form with contact details and service preferences. They click “Submit” and immediately receive a confirmation email.

an animated GIF of a customer filling out a service request form and viewing the confirmation message after clicking submit

2. Staff builds and sends the invoice

The new request appears in the “Pending Invoices” Task View with all customer details already filled in and ready for review. Staff opens the entry, adds services to the line items table, adjusts hours if needed, and reviews the auto-calculated total. When they click “Send Invoice,” the system generates the custom invoice PDF and emails it to the customer with a secure payment link.

animated GIF of a user in Cognito Forms viewing a new entry of a pending invoice. It shows filling out the invoice line items table and clicking a "Send Invoice" button. Then they click "Create Document" and the automatically generated invoice is shown

3. Customer receives invoice and makes a payment

The customer gets an email with a branded invoice PDF attached and a “View & Pay” button. They click the button, enter payment information, and click “Pay Invoice” to complete the transaction. The customer immediately gets a payment receipt via email and shown on the confirmation message. Staff can also view the entry from a “Paid Invoices” view with transaction details recorded.

animated GIF of an email with an attached invoice and clicking 'View and Pay' button. This takes them back to the form where they can submit their card number and complete the payment. Transaction details are immediately shown on the confirmation message, and staff can view the payment from the "Paid Invoices" Entry View in Cognito Forms


Advanced Features to Enhance Your Workflow

Once your basic workflow is running smoothly, add these capabilities to handle more complex scenarios and improve the customer experience.

  • Client portal access for invoice management: Set up a client portal using Guest Access so your customers can log in to view all their invoices and outstanding payments in one place. Portals work well for ongoing service relationships or when often customers have multiple invoices over time. Read more in our guide on How to Build A Client Portal.
  • Automated payment reminders: Remind customers at regular intervals to pay their invoice using Task Reminders. You can schedule up to three reminders before, on, or after the payment due date.
  • Multi-form workflows with Auto-Create Entries: Automatically create follow-up forms for ongoing projects. When a customer pays an invoice, auto-create their project tracking form or service delivery checklist.
  • Integration with accounting systems: Export paid invoice data to QuickBooks, Xero, or other accounting software to keep your books current, using Zapier, Make, Power Automate, or the Cognito Forms API.

Start Automating Your Invoices Today

Manual invoice creation, scattered payment tracking, and endless email chains slow your business down and frustrate customers. This automated workflow eliminates all three problems by connecting service requests directly to invoice generation and payment processing.

Your customers get a professional experience with the ability to submit requests easily, receive branded invoices immediately, and pay securely online. You get time back in your day, faster payments, and complete visibility into your billing pipeline without juggling multiple systems.


FAQ