Skip to main content
Plexara
Integration9 min read

707 - Capstone: the supplier form end to end

The whole supplier program on the demo tenant in one place: the form and its bot check, the page that embeds it, the table its submissions land in, the automation that answers each one, and a report that joins the applications to warehouse stores and categories. With the run history, the Endpoints page figures, and the store finder and partner stock lookup beside it, the 700 series ends where the platform does: data in from people and systems, governed, stored, acted on, and reported.

What you will take away from this lesson

The supplier program on the demo tenant started as a paragraph to the agent and an administrator’s two bindings. This lesson lays it out end to end and adds the last piece, a report that reads the applications against the warehouse.

Learning Objectives

  1. 01Name every object the supplier program is made of and who created each.
  2. 02Read the path one application takes from the page to the vendor team.
  3. 03Join form submissions to warehouse data in a report.
  4. 04Read the run history and the Endpoints page for the whole program.

The program, object by object

Seven objects make the supplier program. Each is an ordinary platform object, listed where its kind is listed in the portal.

The supplier program, object by object

acme-public-forms

bot check, administrator

A proof-of-work check created in Admin > Settings > Bot checks for the form.

acme-supplier-onboarding

form automation, agent

form_spec with twelve fields and live choices; form_submit checking the tax ID, the code of conduct, and repeat applications. Version 2.

/forms/supplier-onboarding

binding, administrator

Public with the bot check on submission, an allowed site, a 10 MB body, and the administrator persona allowed to decrypt.

form-supplier-onboarding

source and table, made by the binding

One row per accepted application in webhook_form_supplier_onboarding; certificates in the source’s library.

Become an ACME supplier

asset, agent

The program page with the form framed inside it, shared as a link with prospects.

acme-supplier-intake

event automation, agent

Runs once per application, adds store and category facts from the warehouse, posts to the operations feed.

Supplier pipeline

report, agent

The applications joined to stores, regions, and categories.

The agent wrote everything that is code or content. An administrator made the two decisions that open the platform to the outside: the bot check and the binding. Nothing was installed, and no system outside the platform was added.

One application, end to end

Every application takes the same six steps, and each step is one the series covered.

One application, page to vendor team

  1. 1

    The page opens

    form_spec runs and reads 50 categories and 303 stores from the warehouse; the platform signs the spec into a token.

  2. 2

    The supplier submits

    The page solves the proof-of-work check. The platform checks the token, the honeypot, the five-second fill time, and every field.

  3. 3

    form_submit decides

    The tax ID’s shape, the code of conduct, and a query of the stored applications for a repeat. A refusal goes back to the page beside its field.

  4. 4

    The application is stored

    The tax ID is encrypted, the certificate saved to the library, and the application written as one event before the supplier sees the confirmation.

  5. 5

    The intake run follows

    Seconds later, acme-supplier-intake reads the event, looks up the store and category, and posts to the operations feed with a link to its run.

  6. 6

    The report reads the table

    The supplier pipeline report joins every application to the warehouse.

The Flow tab

The Flow tab of a form's automation, on its Structure view: Start, a query of the store table inside form_spec(), a query of the supplier table inside form_submit(), an If that returns early when the supplier is already known, and End, with a How to read this panel beside the diagram.
The Flow tab draws a form's automation from its source: the store list the form reads, the duplicate check, and the early return that refuses a repeat application.

A report on the applications

The vendor team asked where suppliers want to start and which categories they would add to. The answer joins the form’s table to the warehouse.

Applications joined to the warehouse

What the agent calls. This is the exchange the agent has with Plexara on your behalf, shown for the technical reader. You ask in plain language; you never type any of it.

→ trino_query   connection acme
  WITH apps AS (
    SELECT CAST(json_extract_scalar(payload, '$.values.pilot_store') AS integer) AS store_id,
           CAST(json_extract_scalar(payload, '$.values.category') AS integer)    AS category_id,
           CAST(json_extract_scalar(payload, '$.values.annual_volume_usd') AS double) AS volume
    FROM scratch.uploads.webhook_form_supplier_onboarding)
  SELECT r.region_name AS region, count(*) AS applications,
         count(DISTINCT a.category_id) AS categories, sum(a.volume) AS expected_annual_volume_usd
  FROM apps a
  JOIN warehouse.public.stores s  ON s.store_id = a.store_id
  JOIN warehouse.public.regions r ON r.region_id = s.region_id
  GROUP BY r.region_name ORDER BY applications DESC

← region        applications  categories  expected_annual_volume_usd
  West                     9           8                   4,370,000
  Southeast                7           6                   3,520,000
  Midwest                  7           7                   3,425,000
  Mid-Atlantic             5           5                   1,390,000
  Northeast                4           4                   2,700,000
  Southwest                4           4                   1,460,000
  Northwest                1           1                     180,000

The form’s table and the warehouse are queried together in one statement. A second query ranked the categories applicants asked for against the number of products ACME carries in each: snacks and chips and beverages drew three applications apiece, against 188 and 185 products carried. Both went into an HTML report in the ACME brand, saved as an asset with the two queries as its provenance.

What the report says

The supplier pipeline report

applications stored, each answered by one intake run
37
expected annual volume across applicants
$17.0M
regions with a pilot request
7 of 8
tax IDs readable in the table
0

Expected volume is what each applicant typed, not a forecast, and the report says so. The tax ID is not part of it: the report queries the table, where the value is ciphertext.

The record

The run history, the refusals, and the Endpoints page together show everything the program did and everything it turned away.

What the record shows

Intake runs

37 runs with the trigger event, all succeeded, between a quarter of a second and a second and a half each.

Refused before storing

Two malformed tax IDs and one repeat application answered 422; one honeypot, one early submission, and one missing bot check answered 400 or 403.

Siblings on the Endpoints page

The store finder (127 requests over a day, 14 refused at its bot check) and the partner stock lookup (169 requests from one key, 31 refused) beside the form.

Everything that came in

Everything that came in during the series

From a website

Store finder requests, answered under a proof-of-work check.

From a partner

Stock lookups with an API key, under a per-caller rate.

From people

Supplier applications through a hosted page and a page that embeds the form.

Where the series leaves you

Key terms

Three terms close the series.

Key Terms

Supplier program
The demo tenant’s worked example: a public form, its table, an intake automation, a page that embeds the form, and a report.
Provenance
The calls a saved asset was built from, recorded with it. The report’s are its two queries.
Flow tab
The diagram of an automation’s steps on its page in the portal, with a run’s answers drawn on it.