# KlickTipp

Subscribe, update, tag and untag contacts in KlickTipp, find them by email, and manage tags, opt-in processes and data fields.

## Connect KlickTipp

1. In the sidebar, open **Connections** and press **Add connection**.
2. Type `klicktipp` and choose **KlickTipp**.
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:

- **Username · Required**: The KlickTipp username (not the email address, unless that is the username).
- **Password · Required**: That account’s password.

A KlickTipp username and password with API access (KlickTipp Premium or higher). KlickTipp recommends a sub-account with the API user role for integrations rather than the main account.

[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 **KlickTipp**. The trigger uses the same connection as the steps.

### On Tag Added or Contact Changed

Checks KlickTipp about once a minute and starts a run for each contact that got the tag (or was added or changed) since the check before. The first check after publishing only takes note of what is there (it starts nothing); changing the trigger starts over the same way. Email opens and clicks are not changes. Tag added starts at most 100 runs a minute (the rest follow the minute after).

- **Trigger on · Required**: What starts a run. Options: Tag added to a contact, Contact added or changed. Default: Tag added to a contact.
- **Tag · Required**: The tag to watch. Shows when **Trigger on** is **Tag added to a contact**.

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

## Do things in KlickTipp

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

- [Contact](https://docs.gorunner.io/apps/klicktipp#fields-f-contact): Add or Update (Subscribe) · Update · Get · Find by Email · Get Many · Get Tagged · Add Tags · Remove Tag · Unsubscribe · Delete
- [Tag](https://docs.gorunner.io/apps/klicktipp#fields-f-tag): Create · Get · Get Many · Update · Delete
- [Opt-in Process](https://docs.gorunner.io/apps/klicktipp#fields-f-optinprocess): Get · Get Many · Get Redirect URL
- [Data Field](https://docs.gorunner.io/apps/klicktipp#fields-f-field): Get · 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 KlickTipp 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 KlickTipp 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, KlickTipp is `pieceId: "klicktipp"` with `actionId: "klicktipp"`, set by `resource` and an `operation_…` field, such as `operation_contact`. Its trigger is `klicktipptrigger` / `klicktipp_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).

### KlickTipp › Contact

### Add or Update (Subscribe)

- **Email · Optional**: The contact's email address.
- **SMS Number · Optional**: A mobile number in international format (+4917012345678). Either the email or the SMS number is needed.
- **Opt-in Process · Optional**: How the contact confirms. Empty uses the account's default double opt-in, which sends a confirmation email.
- **Tag · Optional**: A tag to add to the contact (starts the automations it triggers).
- **First Name · Optional**
- **Last Name · Optional**
- **Fields · Optional**: Data field values by field id, such as {"fieldCity": "Berlin", "fieldZip": "10115", "field12345": "VIP"}.

### Update

- **Contact ID · Required**: The contact's id (or contact key).
- **New Email · Optional**: Change the contact's email address to this.
- **New SMS Number · Optional**: Change the contact's SMS number to this.
- **First Name · Optional**
- **Last Name · Optional**
- **Fields · Optional**: Data field values by field id, such as {"fieldCity": "Berlin", "fieldZip": "10115", "field12345": "VIP"}.

### Get and Delete

- **Contact ID · Required**: The contact's id (or contact key).

### Find by Email and Unsubscribe

- **Email · Optional**: The contact's email address.

### Get Many

- **Subscription Status · Optional**: Only contacts with these statuses. Empty: subscribed only (KlickTipp's default). Options: Subscribed, Pending (opt-in not confirmed), Unsubscribed.
- **With Details · Optional**: Read each contact's data (one more call per 200). Off returns ids only. On by default.
- **Return All · Optional**: Read every contact, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many contacts to return (1–2000). Default: 50. Shows when **Return All** is off.

### Get Tagged

- **Tag · Optional**: A tag to add to the contact (starts the automations it triggers).
- **Subscription Status · Optional**: Only contacts with these statuses. Empty: subscribed only (KlickTipp's default). Options: Subscribed, Pending (opt-in not confirmed), Unsubscribed.
- **With Details · Optional**: Read each contact's data (one more call per 200). Off returns ids only. On by default.
- **Return All · Optional**: Read every contact, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many contacts to return (1–2000). Default: 50. Shows when **Return All** is off.

### Add Tags

- **Email · Optional**: The contact's email address.
- **Tags · Required**: The tags to add.

### Remove Tag

- **Email · Optional**: The contact's email address.
- **Tag · Optional**: A tag to add to the contact (starts the automations it triggers).

### KlickTipp › Tag

### Create

- **Name · Optional**: The tag's name.
- **Description · Optional**: What the tag is for.

### Get and Delete

- **Tag · Required**: The tag.

### Get Many

Nothing to fill in.

### Update

- **Tag · Required**: The tag.
- **Name · Optional**: The tag's name.
- **Description · Optional**: What the tag is for.

### KlickTipp › Opt-in Process

### Get

- **Opt-in Process · Required**: The opt-in process.

### Get Many

Nothing to fill in.

### Get Redirect URL

- **Opt-in Process · Required**: The opt-in process.
- **Email · Required**: The contact's email address: the URL is the one this contact is sent to.

### KlickTipp › Data Field

### Get

- **Data Field · Required**: The field's id without the prefix (12345 for field12345, FirstName for fieldFirstName).

### Get Many

Nothing to fill in.

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