Finance

2 Workflows2 Response Formats3 Backend Steps

Billing & Invoice Assistant

Triages billing questions - invoices, failed payments, plan changes - and drafts a clear resolution reply.

Works with

Primary
Backup

Pick your providers and models. The download is customized to your selections.

Best for

  • SaaS businesses
  • Subscription products
  • Finance teams

How the data flows

Requests move between your backend and the AI workflows automatically. Here's the exact path a request takes.

Customer request arrives

AI workflow

billing_triage_workflow

Classifies the billing inquiry and starts resolution

Backend event

inquiry_received

draft_resolution fires, then starts billing_resolution_workflow

Backend event

resolution_ready

AI workflow

billing_resolution_workflow

Drafts a clear resolution reply for the customer

Customer receives the response

What you get

Every template is built from two kinds of pieces: Workflows and Response Formats.

Workflow

billing_triage_workflow

Classifies the billing inquiry and starts resolution

Workflow

billing_resolution_workflow

Drafts a clear resolution reply for the customer

Response format

billing_triage_response

Classification of the billing inquiry

inquiry_typeurgencycustomer_intentneeds_agent

Response format

billing_resolution_response

Drafted resolution and customer reply

resolution_summarycustomer_replynext_steps

Details

The full specification of each workflow, with plain-English explanations. Everything below is set in the downloaded file and can be changed after import.

billing_triage_workflow

Classifies the billing inquiry and starts resolution

Model & backupsLearn more
openai · gpt-5.6-terraBackup 1: anthropic · claude-haiku-4-5-20251001

The primary model plus automatic fallback models if the primary is unavailable.

Response formatLearn more
billing_triage_responseReturns a structured object instead of free-form text.

The structured JSON this workflow returns. Fields are defined by you and enforced by ModelRiver.

Customer data it usesLearn more
customer_idinvoice_numbercustomer_message

Fields you include in each request so the workflow can personalise its answer.

Memory windowLearn more
10 minutes

Identical requests are answered from memory within this window, which is faster and cheaper.

Automated pipelineLearn more
inquiry_receiveddraft_resolutionstarts billing_resolution_workflowresolution_ready
How multi-step pipelines work

Steps that run automatically around this workflow, in order.

Production mode

Runs live against your connected AI provider.

billing_resolution_workflow

Drafts a clear resolution reply for the customer

Model & backupsLearn more
anthropic · claude-haiku-4-5-20251001Backup 1: openai · gpt-5.6-terra

The primary model plus automatic fallback models if the primary is unavailable.

Response formatLearn more
billing_resolution_responseReturns a structured object instead of free-form text.

The structured JSON this workflow returns. Fields are defined by you and enforced by ModelRiver.

Customer data it usesLearn more
customer_idinvoice_numbercustomer_message

Fields you include in each request so the workflow can personalise its answer.

Production mode

Runs live against your connected AI provider.

How to use it

  1. 1

    Download the template

    The file is a portable JSON bundle - safe to share and easy to read.

  2. 2

    Open a project in ModelRiver

    Sign in, pick a project, and make sure the AI providers used by this template are connected. You can connect them from the Providers section.

  3. 3

    Import it

    Open the Import button in your project, paste or upload the file, review the preview, and confirm. Everything is created atomically, so nothing is overwritten. How import & export works

Template file

Technical users can inspect the raw bundle below.

View full template JSON
modelriver-billing-invoice-assistant-template-v1.json4.0 KB
{
  "version": 1,
  "structures": [
    {
      "name": "billing_triage_response",
      "description": "Classification of the billing inquiry",
      "example": {
        "inquiry_type": "failed_payment",
        "urgency": "high",
        "customer_intent": "wants to update payment method",
        "needs_agent": false
      },
      "schema": {
        "type": "object",
        "properties": {
          "inquiry_type": {
            "type": "string",
            "enum": [
              "invoice_question",
              "failed_payment",
              "plan_change",
              "refund_question",
              "other"
            ]
          },
          "urgency": {
            "type": "string",
            "enum": [
              "low",
              "medium",
              "high"
            ]
          },
          "customer_intent": {
            "type": "string"
          },
          "needs_agent": {
            "type": "boolean"
          }
        },
        "required": [
          "inquiry_type",
          "urgency",
          "customer_intent",
          "needs_agent"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "billing_resolution_response",
      "description": "Drafted resolution and customer reply",
      "example": {
        "resolution_summary": "Customer's payment failed; the card was declined.",
        "customer_reply": "Your payment didn't go through - please update your card and we'll retry automatically.",
        "next_steps": [
          "Update payment method in settings",
          "Contact support if the charge appears twice"
        ]
      },
      "schema": {
        "type": "object",
        "properties": {
          "resolution_summary": {
            "type": "string"
          },
          "customer_reply": {
            "type": "string"
          },
          "next_steps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "resolution_summary",
          "customer_reply",
          "next_steps"
        ],
        "additionalProperties": false
      }
    }
  ],
  "workflows": [
    {
      "name": "billing_triage_workflow",
      "description": "Classifies the billing inquiry and starts resolution",
      "provider": "openai",
      "model": "gpt-5.6-terra",
      "backups": [
        {
          "provider": "anthropic",
          "model": "claude-haiku-4-5-20251001"
        }
      ],
      "request_type": "chat",
      "system_instructions": "Classify the billing inquiry type, set urgency, and summarize what the customer wants. Flag anything that needs a finance or support agent.",
      "structure": "billing_triage_response",
      "customer_fields": [
        "customer_id",
        "invoice_number",
        "customer_message"
      ],
      "test_mode": false,
      "cache_window_seconds": 600,
      "backend_pipeline": {
        "enabled": true,
        "events": [
          {
            "name": "inquiry_received"
          },
          {
            "name": "draft_resolution",
            "target_workflow": "billing_resolution_workflow"
          },
          {
            "name": "resolution_ready"
          }
        ]
      }
    },
    {
      "name": "billing_resolution_workflow",
      "description": "Drafts a clear resolution reply for the customer",
      "provider": "openai",
      "model": "gpt-5.6-terra",
      "backups": [
        {
          "provider": "anthropic",
          "model": "claude-haiku-4-5-20251001"
        }
      ],
      "request_type": "chat",
      "system_instructions": "Write a clear, reassuring reply for the billing inquiry. Summarize the resolution, include next steps the customer can take, and never promise amounts or refunds that were not provided in the message.",
      "structure": "billing_resolution_response",
      "customer_fields": [
        "customer_id",
        "invoice_number",
        "customer_message"
      ],
      "test_mode": false
    }
  ]
}

Looking for something else?

More templates are on the way. In the meantime, you can build your own workflows from scratch in the ModelRiver console.