# weclapp

Create, find and change customers and contacts, articles, sales orders (Aufträge), invoices (Rechnungen), quotations (Angebote) and tickets in weclapp, download their PDF, and invoice an order.

## Connect weclapp

1. In the sidebar, open **Connections** and press **Add connection**.
2. Type `weclapp` and choose **weclapp**.
3. Fill in the fields. Each one says **Required** or **Optional**.
4. Press **Test and save**. GoRunner checks the connection before it saves anything.

The sheet asks for:

- **weclapp Address · Required**: Your tenant: acme, or acme.weclapp.com.
- **API Token · Required**: The API token from My settings › API.

Enter your weclapp address (acme for acme.weclapp.com) and an API token: in weclapp open your name (top right) › My settings › API and create a token. The token acts with that user’s rights; generating a new one stops this connection.

[Connections](https://docs.gorunner.io/build/connections) says how to sign in again, rename or delete it. In a product that embeds GoRunner, **Add connection** can be missing: then [your provider makes connections](https://docs.gorunner.io/embed/customer-connections) for you.

## Start a workflow

Add a trigger and choose **weclapp**. The trigger uses the same connection as the steps.

### On Record Created or Changed

Checks weclapp about once a minute and starts a run for each record created (or changed) since the check before. The first check after publishing only takes note of the time (it starts nothing); changing the trigger starts over the same way. A check starts at most 100 runs; more wait for the next check.

- **Watch · Required**: Which records. Options: Sales orders, Sales invoices, Quotations, Customers and contacts (parties), Tickets, Articles. Default: Sales orders.
- **Trigger on · Required**: Created only, or also each change (a status, a payment, an edit). Options: Created, Created or changed. Default: Created.

A later step can use its data, such as `{{trigger.change_type}}`, `{{trigger.createdDate}}`, `{{trigger.id}}` and 1 more. See [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).

## Do things in weclapp

Add a **weclapp** step, choose a **Resource**, then an **Operation**. Choose a row to see its fields.

- [Customer or Contact (Party)](https://docs.gorunner.io/apps/weclapp#fields-f-party): Create · Get · Get Many · Update · Delete
- [Article](https://docs.gorunner.io/apps/weclapp#fields-f-article): Create · Get · Get Many · Update · Delete
- [Sales Order](https://docs.gorunner.io/apps/weclapp#fields-f-salesorder): Create · Get · Get Many · Update · Delete · Download PDF · Create Invoice
- [Sales Invoice](https://docs.gorunner.io/apps/weclapp#fields-f-salesinvoice): Create · Get · Get Many · Update · Download PDF
- [Quotation](https://docs.gorunner.io/apps/weclapp#fields-f-quotation): Create · Get · Get Many · Update · Delete · Download PDF · Accept
- [Ticket](https://docs.gorunner.io/apps/weclapp#fields-f-ticket): Create · Get · Get Many · Update · Delete
- [User](https://docs.gorunner.io/apps/weclapp#fields-f-user): Get Me · Get Many

Later steps read a step’s output by its name: see [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).

## Limits

- A reply from weclapp can be up to 16 MB (a file download can have its own limit). A larger one fails the step; it is never cut short.
- When weclapp says to slow down (429), the step waits as long as it asks, if the step’s time allows. Otherwise it fails and says when to try again.

Not in your list? See [When an app isn’t here](https://docs.gorunner.io/apps/when-an-app-isnt-here#q-not-in-list).

## For developers

In the API, which calls apps pieces, weclapp is `pieceId: "weclapp"` with `actionId: "weclapp"`, set by `resource` and an `operation_…` field, such as `operation_article`. Its trigger is `weclapptrigger` / `weclapp_poll`. [Get an app](https://docs.gorunner.io/api/apps/get-app) returns every field.

It can change something outside the run (`writes_external`). See [How versions and side effects work](https://docs.gorunner.io/apps#q-versions).

### weclapp › Customer or Contact (Party)

### Create

- **Type · Optional**: An organization or a person. Empty when creating: organization. Options: Organization, Person.
- **Company · Optional**: An organization's name. Required to create one.
- **Salutation · Optional**: Options: Herr, Frau, Familie, Firma, None.
- **First Name · Optional**
- **Last Name · Optional**: A person's last name. Required to create one.
- **Email · Optional**
- **Phone · Optional**
- **Mobile · Optional**
- **Website · Optional**
- **Customer · Optional**: Make it a customer (Kunde). Empty: unchanged; a new party is a customer. Options: Yes, No.
- **Supplier · Optional**: Make it a supplier (Lieferant). Empty: unchanged. Options: Yes, No.
- **Customer Number · Optional**: Empty when creating: weclapp numbers it.
- **Street · Optional**: The new party's address.
- **ZIP Code · Optional**
- **City · Optional**
- **Country · Optional**: ISO code (DE, AT, CH). Empty with an address: DE.
- **Description · Optional**
- **Other Fields · Optional**: More of weclapp's properties as JSON, such as {"commercialLanguage": "en"}. A field set above wins.

### Get and Delete

- **Party · Required**: The party's id, or its link from weclapp.

### Get Many

- **Customer Number · Optional**
- **Company Contains · Optional**
- **Last Name Contains · Optional**
- **Email · Optional**: The exact address.
- **Type · Optional**: Options: ORGANIZATION, PERSON.
- **Customers Only · Optional**: Options: true.
- **Changed Since · Optional**: Only those changed on or after this time (2026-11-01 or 2026-11-01T10:00:00+01:00).
- **Return All · Optional**: Read every party, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many partys to return (1–5000). Default: 50. Shows when **Return All** is off.

### Update

- **Party · Required**: The party's id, or its link from weclapp.
- **Type · Optional**: An organization or a person. Empty when creating: organization. Options: Organization, Person.
- **Company · Optional**: An organization's name. Required to create one.
- **Salutation · Optional**: Options: Herr, Frau, Familie, Firma, None.
- **First Name · Optional**
- **Last Name · Optional**: A person's last name. Required to create one.
- **Email · Optional**
- **Phone · Optional**
- **Mobile · Optional**
- **Website · Optional**
- **Customer · Optional**: Make it a customer (Kunde). Empty: unchanged; a new party is a customer. Options: Yes, No.
- **Supplier · Optional**: Make it a supplier (Lieferant). Empty: unchanged. Options: Yes, No.
- **Customer Number · Optional**: Empty when creating: weclapp numbers it.
- **Description · Optional**
- **Other Fields · Optional**: More of weclapp's properties as JSON, such as {"commercialLanguage": "en"}. A field set above wins.

### weclapp › Article

### Create

- **Name · Optional**: Required to create.
- **Article Number · Optional**: Empty when creating: weclapp numbers it.
- **Unit · Optional**: The unit it is counted in. Required to create.
- **Type · Optional**: Empty when creating: a basic article. Options: Basic article, Service, Sales bill of material, Shipping cost.
- **Tax Rate · Optional**: Empty when creating: the standard rate. Options: Standard, Reduced, Zero.
- **Net Price · Optional**: The new article's net sales price (sales channel NET1).
- **EAN · Optional**
- **Active · Optional**: Empty: unchanged; a new article is active. Options: Yes, No.
- **Description · Optional**
- **Other Fields · Optional**: More of weclapp's properties as JSON, such as {"commercialLanguage": "en"}. A field set above wins.

### Get and Delete

- **Article · Required**: The article's id, or its link from weclapp.

### Get Many

- **Article Number · Optional**
- **Name Contains · Optional**
- **Active · Optional**: Options: true, false.
- **Changed Since · Optional**: Only those changed on or after this time (2026-11-01 or 2026-11-01T10:00:00+01:00).
- **Return All · Optional**: Read every article, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many articles to return (1–5000). Default: 50. Shows when **Return All** is off.

### Update

- **Article · Required**: The article's id, or its link from weclapp.
- **Name · Optional**: Required to create.
- **Article Number · Optional**: Empty when creating: weclapp numbers it.
- **Unit · Optional**: The unit it is counted in. Required to create.
- **Type · Optional**: Empty when creating: a basic article. Options: Basic article, Service, Sales bill of material, Shipping cost.
- **Tax Rate · Optional**: Empty when creating: the standard rate. Options: Standard, Reduced, Zero.
- **EAN · Optional**
- **Active · Optional**: Empty: unchanged; a new article is active. Options: Yes, No.
- **Description · Optional**
- **Other Fields · Optional**: More of weclapp's properties as JSON, such as {"commercialLanguage": "en"}. A field set above wins.

### weclapp › Sales Order

### Create

- **Customer · Optional**: Required to create.
- **Order Date · Optional**: 2026-11-01. Empty when creating: today.
- **Customer's Order Number · Optional**
- **Planned Delivery · Optional**
- **Introduction · Optional**: The text above the items.
- **Closing Text · Optional**: The text below the items.
- **Internal Description · Optional**
- **Items · Required**: The positions: an article and its quantity; a price overrides the article's.
- **Other Fields · Optional**: More of weclapp's properties as JSON, such as {"commercialLanguage": "en"}. A field set above wins.

### Get, Delete and Download PDF

- **Sales Order · Required**: The sales order's id.

### Get Many

- **Order Number · Optional**
- **Customer · Optional**
- **Status · Optional**: Options: ORDER_ENTRY_IN_PROGRESS, ORDER_CONFIRMATION_PRINTED, CLOSED, MANUALLY_CLOSED, CANCELLED.
- **Changed Since · Optional**: Only those changed on or after this time (2026-11-01 or 2026-11-01T10:00:00+01:00).
- **Return All · Optional**: Read every sales order, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many sales orders to return (1–5000). Default: 50. Shows when **Return All** is off.

### Update

- **Sales Order · Required**: The sales order's id.
- **Customer · Optional**: Required to create.
- **Order Date · Optional**: 2026-11-01. Empty when creating: today.
- **Customer's Order Number · Optional**
- **Planned Delivery · Optional**
- **Introduction · Optional**: The text above the items.
- **Closing Text · Optional**: The text below the items.
- **Internal Description · Optional**
- **Other Fields · Optional**: More of weclapp's properties as JSON, such as {"commercialLanguage": "en"}. A field set above wins.

### Create Invoice

- **Sales Order · Required**: The sales order's id.
- **More Orders · Optional**: Ids of more orders of the same customer to put on the same invoice, separated by commas.

### weclapp › Sales Invoice

### Create

- **Customer · Optional**: Required to create.
- **Invoice Date · Optional**: 2026-11-01. Empty when creating: today.
- **Delivery Date · Optional**
- **Due Date · Optional**
- **Customer's Order Number · Optional**
- **Introduction · Optional**
- **Closing Text · Optional**
- **Internal Description · Optional**
- **Items · Required**: The positions: an article and its quantity; a price overrides the article's.
- **Other Fields · Optional**: More of weclapp's properties as JSON, such as {"commercialLanguage": "en"}. A field set above wins.

### Get and Download PDF

- **Sales Invoice · Required**: The sales invoice's id.

### Get Many

- **Invoice Number · Optional**
- **Customer · Optional**
- **Status · Optional**: Options: NEW, ENTRY_COMPLETED, DOCUMENT_CREATED, OPEN_ITEM_CREATED, CANCELLED.
- **Payment Status · Optional**: Options: OPEN, PAID, NO_OPEN_ITEM, CLEARED_WITH_CREDIT_NOTE, CREDIT_NOTE_CLEARED, UNKNOWN.
- **Changed Since · Optional**: Only those changed on or after this time (2026-11-01 or 2026-11-01T10:00:00+01:00).
- **Return All · Optional**: Read every sales invoice, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many sales invoices to return (1–5000). Default: 50. Shows when **Return All** is off.

### Update

- **Sales Invoice · Required**: The sales invoice's id.
- **Customer · Optional**: Required to create.
- **Invoice Date · Optional**: 2026-11-01. Empty when creating: today.
- **Delivery Date · Optional**
- **Due Date · Optional**
- **Customer's Order Number · Optional**
- **Introduction · Optional**
- **Closing Text · Optional**
- **Internal Description · Optional**
- **Other Fields · Optional**: More of weclapp's properties as JSON, such as {"commercialLanguage": "en"}. A field set above wins.

### weclapp › Quotation

### Create

- **Customer · Optional**: Required to create.
- **Quotation Date · Optional**: 2026-11-01. Empty when creating: today.
- **Valid Until · Optional**
- **Introduction · Optional**
- **Closing Text · Optional**
- **Internal Description · Optional**
- **Items · Required**: The positions: an article and its quantity; a price overrides the article's.
- **Other Fields · Optional**: More of weclapp's properties as JSON, such as {"commercialLanguage": "en"}. A field set above wins.

### Get, Delete, Download PDF and Accept

- **Quotation · Required**: The quotation's id.

### Get Many

- **Quotation Number · Optional**
- **Customer · Optional**
- **Status · Optional**: Options: OPEN, INQUIRED, ENTRY_COMPLETED, ACCEPTED, REJECTED, CANCELLED.
- **Changed Since · Optional**: Only those changed on or after this time (2026-11-01 or 2026-11-01T10:00:00+01:00).
- **Return All · Optional**: Read every quotation, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many quotations to return (1–5000). Default: 50. Shows when **Return All** is off.

### Update

- **Quotation · Required**: The quotation's id.
- **Customer · Optional**: Required to create.
- **Quotation Date · Optional**: 2026-11-01. Empty when creating: today.
- **Valid Until · Optional**
- **Introduction · Optional**
- **Closing Text · Optional**
- **Internal Description · Optional**
- **Other Fields · Optional**: More of weclapp's properties as JSON, such as {"commercialLanguage": "en"}. A field set above wins.

### weclapp › Ticket

### Create

- **Subject · Optional**: Required to create.
- **Customer · Optional**: The party the ticket is for.
- **Description · Optional**
- **Status · Optional**
- **Priority · Optional**
- **Assigned To · Optional**
- **Contact Email · Optional**
- **Contact First Name · Optional**
- **Contact Last Name · Optional**
- **Contact Phone · Optional**
- **Other Fields · Optional**: More of weclapp's properties as JSON, such as {"commercialLanguage": "en"}. A field set above wins.

### Get and Delete

- **Ticket · Required**: The ticket's id, or its link from weclapp.

### Get Many

- **Ticket Number · Optional**
- **Customer · Optional**
- **Status · Optional**
- **Assigned To · Optional**
- **Changed Since · Optional**: Only those changed on or after this time (2026-11-01 or 2026-11-01T10:00:00+01:00).
- **Return All · Optional**: Read every ticket, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many tickets to return (1–5000). Default: 50. Shows when **Return All** is off.

### Update

- **Ticket · Required**: The ticket's id, or its link from weclapp.
- **Subject · Optional**: Required to create.
- **Customer · Optional**: The party the ticket is for.
- **Description · Optional**
- **Status · Optional**
- **Priority · Optional**
- **Assigned To · Optional**
- **Contact Email · Optional**
- **Contact First Name · Optional**
- **Contact Last Name · Optional**
- **Contact Phone · Optional**
- **Other Fields · Optional**: More of weclapp's properties as JSON, such as {"commercialLanguage": "en"}. A field set above wins.

### weclapp › User

### Get Me

Nothing to fill in.

### Get Many

- **Return All · Optional**: Read every user, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many users to return (1–5000). Default: 50. Shows when **Return All** is off.

Source: https://docs.gorunner.io/apps/weclapp
