# Konnektive CRM


# Getting Started!

Before your initial kick off call, feel free to sign in and familiarize yourself. This article will explain where to start while configuring your new Konnektive instance.

{% hint style="info" %}
You will see a lot of Information badges around the system that will give a description of that feature if you hover your mouse over it. Also, our Help Desk (located inside the hamburger menu on the top right) is also split into sections to make it easier to find what you might be looking for and has a search option.
{% endhint %}

The best place to start is the Admin section, however, this can be skipped and returned to if you don’t have all the information needed to add the plugins.\
\
The sections below highlight the areas that will need to be configured before going live.

* [Admin Section](#gettingstarted-adminsection)
* [Merchant Section](#gettingstarted-merchantsection)
* [CRM Section](#gettingstarted-crmsection)
* [Connecting your lander to Konnektive](#gettingstarted-connectingyourlandertokonnektive)

***

#### Admin Section <a href="#gettingstarted-adminsection" id="gettingstarted-adminsection"></a>

The **Admin section** is where you will create new users and plug in [3rd party services](/konnektive-crm/admin-setup/plugins) to utilize with your Konnektive account. This section is found at the bottom of the navigation menu on the left side of the CRM.

Commonly added plug ins:\
[Fulfillment Houses](/konnektive-crm/fulfillment/add-and-editing-fulfillment-house) - Automatically send your fulfillments to one of our integrated fulfillment softwares.\
[Fraud Manager](/konnektive-crm/admin-setup/plugins/fraud-services/fraud-manager) - Screen for fraud prior to approving a transaction.\
[PAAY 3DSecure](/konnektive-crm/admin-setup/plugins/authentication/paay-plugin) - Shift chargeback liability on supported gateways.\
[Email Service Providers](/konnektive-crm/admin-setup/plugins/email-service-providers) - Automatically send partial or sales to one of our integrated ESP plugins.\
[SMTP ](/konnektive-crm/crm-setup/campaign-setup/auto-responder-setup)- This is used to email your customers their order confirmation and fulfillment updates.\
[FluidPay Account Updater](/konnektive-crm/admin-setup/plugins/data-sources/fluidpay-account-updater) - Updates card information to keep subscription customers active for longer.\
[Midigator Chargeback Protection](/konnektive-crm/admin-setup/plugins/chargeback-management/midigator) - Used to fight chargebacks and issue refunds prior to a CB occurring.

#### Merchant Section <a href="#gettingstarted-merchantsection" id="gettingstarted-merchantsection"></a>

The next best place to go is the [**Gateway section**](/konnektive-crm/gateway-setup). Under the Gateway List you will first want to create merchant categories that match each of the corporations that you have mids acquired under. *This is a critical step to ensure you are remaining compliant with Visa and MasterCard regulations.*\
\
Once you have the categories added, you can then add in your mids and set them to their appropriate category.  If you don’t have any mids yet, you can create a mid using the DUMMY GATEWAY option.\
\
***\*\* Having a mid created will be necessary to save an offer in your campaign. The Dummy Gateway is ONLY for testing. Any live sales ran to this gateway will not process BUT the fulfillment WILL still send out. BE CAUTIOUS\*\****

#### CRM Section <a href="#gettingstarted-crmsection" id="gettingstarted-crmsection"></a>

Once you have your mid(s) saved you’ll want to go to the [**CRM section**](/konnektive-crm/crm-setup) to add your products.\
\
The [product page](/konnektive-crm/crm-setup/product-setup/product-creation) will first have you create a category to begin organizing your products (Diet, Muscle, Skin, etc). Clicking the green plus button will allow you to start creating. Once you have a product created, you can then start creating your campaign. (You can set a fulfillment house to all your products at once at a later date using the “Assign to All Products” button located in the fulfillment house plugin)\ <br>

Next, go to the [Campaign page](/konnektive-crm/crm-setup/campaign-setup/creating-a-campaign) to create a campaign (you can also create categories here to filter by on your reports). The campaign is where you will add in your products as offers and upsells, which determines the price the customer will pay, and when. There are a lot of other settings within the campaign that you can do use to fit your needs.\
\
There are 3 types of campaigns to choose from:

* Phone campaigns are used for inbound and outbound calls to/from your call center and can be listed under the Order Entry page to manually place orders. We also suggest having a phone campaign dedicated to testing new mids and fulfillment houses. This way you can set the offers to $1 so you aren’t charging yourself full price just to test.<br>
* Lander campaigns are where a site may have several options to choose from, typically a single bottle offer along with a three bottle and/or five bottle bundle, but the customer can only choose one of those offers before proceeding to checkout, and then your upsell funnel.<br>
* Ecommerce campaigns are more of a shopping cart style. Your offers will all be listed and the customer can choose as many items as they want before proceeding to the checkout page, and then your upsells.

When configuring the API to connect your landing page to a campaign, you will need to pass in the campaignId and the productId listed within the campaign. (See API Docs)

{% hint style="info" %}

#### Connecting your lander to Konnektive <a href="#gettingstarted-connectingyourlandertokonnektive" id="gettingstarted-connectingyourlandertokonnektive"></a>

To connect your url to Konnektive, you can either use Konnektive's form code or use the Direct API method. Links to the Help Desk articles are below:  \
\
Form-Code - [Single Product, Multi Product, and Shopping Cart  ](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code)\
\
Direct API - [API Docs and Suggested API Flow](/api-documentation/api-documentation)
{% endhint %}


# CRM Dashboard

The CRM Dashboard provides graphs, tables, and charts to illustrate how your business is performing. Any hyperlinked value will redirect you to the report that the value is being retrieved from.

The dashboard is customized per user. Each user can customize their own dashboard to display the data that is most important to them.

<figure><img src="/files/V2NXrsuC2wbqHmlv7WUZ" alt=""><figcaption></figcaption></figure>

**Header Buttons (visible from any page)**

<figure><img src="/files/sGOCdNSEJgI7vCR7qacz" alt=""><figcaption></figcaption></figure>

From Left to Right:

* List button will hide/show the titles of the left-hand navigation bar
* The square shaped button will put the CRM on full screen
* The sun/moon shaped button will switch between light and dark mode
* The magnifying glass button provides quick links to search for customers, fulfillments, or products.
* Click on your username to find links to account settings, subscription info, help desk, ticketing system, and log out.

**Quick Links**

The Dashboard also provides quick links to edit your campaigns, gateways, users, and a few other plugins.

<figure><img src="/files/thOOzLprVjUTvG3VuRlb" alt=""><figcaption></figcaption></figure>

**Using the Dashboard**

Use the Quick Range dates or the date selector to determine which days the Dashboard will show statistics for. You may also filter the Dashboard to a specific campaign.

<figure><img src="/files/NlIRrtmYz6FUspt0y59n" alt=""><figcaption></figcaption></figure>

Scroll down to view the widgets added to your dashboard.

**Customizing the Dashboard**

Clicking the Edit button will allow you to add, remove, and reorganize your dashboard.

<figure><img src="/files/gjBBU6BimpneVunxxShg" alt=""><figcaption></figcaption></figure>

Click the Show Widgets button to view all the available widgets.

<figure><img src="/files/N5UWqYtIUJB48qYylqe7" alt=""><figcaption></figcaption></figure>

Clicking the green + buttons will add the widget to your dashboard.

<figure><img src="/files/3Yr6QWEH9wb1G00wiNDW" alt=""><figcaption></figcaption></figure>

After you have added all the widgets that you would like to use, click and drag the widgets to reorganize your dashboard.

After reorganizing, click the Done button to return back to your Dashboard.


# Customer Service


# Customer Service Tutorial

This article will walk you through common customer service actions.

***

*Navigate* to **Customer** → **Customer Service** to search for customers

<figure><img src="/files/OwnoC87SE3EHIaPRy6CS" alt="" width="563"><figcaption></figcaption></figure>

Use the *Advanced Filters* to enter search criteria and then *click* **Search Orders**

<figure><img src="/files/bbSIhYJgIt7Vzy4lKILt" alt="" width="563"><figcaption></figcaption></figure>

*Click* the correct customer’s name to open their customer profile

<figure><img src="/files/PPXCVVJR9eOZxmBB1AoZ" alt="" width="563"><figcaption></figcaption></figure>

On the customer’s profile you can *click* the *pencil icons* to edit the customer's information:

<figure><img src="/files/OHZHtGBcZpWCye1DyogQ" alt="" width="563"><figcaption></figcaption></figure>

*Select* the *green* **Create New Order button** to start a new order with that customer’s information or *click* the **Start C/S Call button** to call the phone number on record with a Phone Switch Plugin

In the History section on the right side of the profile, *Select* the *<mark style="color:green;">green</mark>* **+** button to add a note into the customer's **History** section:

<figure><img src="/files/DfLVoqePBRHal1V6g26T" alt="" width="563"><figcaption></figcaption></figure>

* A dialog box will appear where you can add your note then click the **Create button**:

<figure><img src="/files/OW9eAyhkZClkzrBqZaCg" alt="" width="525"><figcaption></figcaption></figure>

*Scroll* down to display the orders related to this customer.  There are also tabs to display subscriptions (Continuity), custom fields, membership clubs, and files.

<figure><img src="/files/iwI1xhHYSE0aWtVAh83s" alt="" width="563"><figcaption></figcaption></figure>

*Scroll* down further, you can see all of the **Transactions** and **Fulfillments** related to this customer:

<figure><img src="/files/Wa5qNMy4qPFYFj0A7KDs" alt="" width="563"><figcaption></figcaption></figure>

* Issue Refunds and Voids using the Transaction Actions
* Reship or cancel fulfillment using the Fulfillment Actions

{% hint style="info" %}
Refund VS Void

Void transactions are different from refunds in that they are used to revert a pending charge that has not settled yet. An unsettled transaction cannot be refunded because no money has been actually transferred from the customer’s debit or credit card company to the merchant. It is not possible to do a partial void.

Refunds are issued after a transaction has settled and the customer has paid for the good or service. The refund action will refund the amount back to the card holder’s bank account.

If a refund fails then it will go into a refund queue where the system will try to refund the transaction again automatically once a day for 3 days - if it fails after the 3rd attempt then it will be removed from the refund queue and an email will be sent to the emails inside the Notify Emails section.
{% endhint %}

Interact with the customer's purchase by either *clicking* on the **Order ID** or the **Product Name** in the **Order** section:

<figure><img src="/files/JACpEW38jFFC2YvQxCoG" alt="" width="563"><figcaption></figcaption></figure>

*Click* on the Order ID and it will bring you to the Order Summary page where you can:

* **Cancel an order**
* **Process a refund -** If you refund from here then the system will try a void first and then a refund if the void fails
* **Resend the welcome email**
* **Perform Actions on this order’s transaction and fulfillment**

<figure><img src="/files/kdryBR8fw8eTWZhW9RQM" alt="" width="563"><figcaption></figcaption></figure>

*Click* on the **Product ID** and it will take you to the Purchase Details screen where you can:

* **Restart, skip or stop a trial**
* **Select a different product option**
* **Change a price point or billing date**
* **Cancel a subscription**
* **Force bill the order’s current cycle:**

<figure><img src="/files/IC8BDdnUQsUVyXGts2EL" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="info" %}
If updating the quantity, make sure to place the Unit Price so the system can calculate the correct Price.

**Ex.** Quantity X Unit Price = Price
{% endhint %}

**Resend a Refund or Void Email:**

When an order is refunded or voided, you can resend the refund autoresponder.

From the Transaction Actions select ‘Resend Refund Email’.

<figure><img src="/files/GQ5if4BcclejtU4pFYhq" alt="" width="563"><figcaption></figcaption></figure>

From the Order Summary Page, select “Resend Email'

<figure><img src="/files/GZywoQtMoSAKujbjgpuY" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="info" %}
Customer Service Agents do not have the ability to blacklist customers via the customer profile.  This is reserved for Customer Service Admins.
{% endhint %}

**Mark a product as Tax Exempt:**

When you want to mark a customer as exempt from all sales tax, you can mark this under the "Other Info" section as shown below:

<p align="center"><img src="/files/LsdElg1yyKVkBoUOP1SF" alt=""><br></p>


# Locate a Customer Record

Locating a customer record is easy using the CRM's Customer Search Page. First, click on the Customer tab on the left of your screen, then Customer Service.

<figure><img src="/files/1X37QeQaCJLoX9zZYksG" alt="" width="563"><figcaption></figcaption></figure>

This will load the Customer Search Page. Using the fields at the top of the screen you can search for customers using a number of different fields including: name, order id, order status, email address, phone number among other option when clicking Additional Filters. Just enter the search terms in the text fields and click Search Orders to view the results of your search.

&#x20;

The results area of this screen lists out all the customers who were found in your search. You can click on the blue customer name to go directly to the customer record, and you can also expand that customer to view all the orders that customer has placed. In the expanded view, you can click on the blue order number to go directly to that customer's order record.

<figure><img src="/files/1JeZNdiIeeCqr6zPEYnb" alt="" width="563"><figcaption></figcaption></figure>

You can expand each customer to view more details.

<figure><img src="/files/t5JeWd3LcRLwqOs3hDJc" alt="" width="563"><figcaption></figcaption></figure>


# Continuity Purchase Profile

This is the section within the customer profile that manages changes to a recurring order. It can be found within a customer’s profile by clicking the **Continuity** tab and opening their purchase:

<figure><img src="/files/DhLhnxh8LP8mNWsnsLYF" alt="" width="563"><figcaption></figcaption></figure>

This profile page gives the choice to edit a customer’s recurring product:

<figure><img src="/files/ZqNd0k0K9GDTZ3IAAo3A" alt="" width="563"><figcaption></figcaption></figure>

### Purchase Details

* Order: The Order Id
* Order Date: The date when the customer ordered this product
* Product: The product attached to the recurring. \* The product can be changed here
* Quantity: How much of the product they are receiving every cycle
* Billing Type: Whether its recurring or one time
* Status: Starts as a Trial and will change to Active after the 2nd successful billing
* Trial Type: Standard or Accelerated
* Final Bill Cycle: If there is already a cycle that the customer is supposed to stop at Next Bill
* Billing Cycle: The cycle the customer is currently on
* Merchant: The merchant account the product will bill on next
* Next Bill Date: The upcoming date they will get billed
* Price: How much they will pay for the product in the next cycle
* Shipping: The price they will pay for shipping on the next cycle
* Sales Tax:
  * Auto: The system will automatically generate the tax
  * Custom: You can input a specific sales tax amount
* Insure Shipment: The option to add insurance on the product when shipped

### Actions

* Update Purchase: This needs to be clicked to accept any changes made within the "Purchase Details" and "Next - Bill" or the changes won't be saved
* Restart Trial: If customer is being allowed to restart the trial from day 1
* Skip Trial: Customer will skip trial and go into Cycle 2
* Cancel Subscription: If customer wants to cancel the subscription for this product
* Force Bill NOW: Will force the Next Bill Date and bill immediately
* Change Product: When a product is changed, so are the product's details such as pricing, merchant, and etc. If you don't want to change the products details but just the product, select 'No' on the pop up dialog and 'Yes' to change the product and the products details. None of the product's details are changed if the product is a straight sale.

**Note:** if something is hard set on the page (ie. Billing Type, Trial Type) it cannot be edited.

Below the purchase updater you will see the Customer history, Transaction history, and Fulfillment history for this subscription:

* History : Any changes or occurrences that have happened within this recurring profile
* Transactions - All the transactions in relation to this product including declines
* Fulfillment - All shipping history for this subscription

### Bundle Subscriptions

Campaign products have an option to bundle subscriptions. This maintains multiple recurring products with the same bill delay billing as a single order. Changes to some fields on a single product in the bundle will be updated for all the products in the bundle. This includes next bill date, final billing cycle, billing interval, gateway (merchant), and coupons.

If the continuity purchase is part of a bundle, a panel displays listing all the products in the bundle. Products may be added or removed (cancelled) from the bundle. The entire bundle may be cancelled at once.

Use the <mark style="color:blue;">**Edit**</mark> button to edit a product in the bundle (the product in this screenshot without an edit button is the current purchase product).

Use the <mark style="color:red;">**Delete**</mark> button to cancel the entire bundle.

Use the <mark style="color:green;">**Add**</mark> button to add a product to the bundle. The new product must have the [Bundle Subscriptions](/konnektive-crm/crm-setup/campaign-setup/adding-a-product-to-a-campaign) option enabled on the campaign product.

<figure><img src="/files/V5XU1ottrx3X0TXzryml" alt=""><figcaption></figcaption></figure>

### Switch from Wallet to Card Payment

Wallet payments (Apple Pay, Google Pay, etc.) can be switched to billing with the customer's default card payment method for specified gateways when the purchase is rebilling using a gateway rebill / vault token.

Click Force Bill Now and enable the Switch to Card Payment option.

{% hint style="warning" %}
The customer must have an existing default card payment method before the option will be available.

\
Add a card payment method to the customer via the Customer Profile or via the Update Customer Card API.
{% endhint %}

<figure><img src="/files/NhhXdACgM61QeNcMWOIL" alt=""><figcaption></figcaption></figure>

#### Supported Gateways

* Authorize.netV2
* BigDog Payments
* BlueSnap
* Braintree
* Corvia
* Finix
* Fluid Pay
* GoPaymentPros
* NMI
* Open Path
* PayArc
* PaysafeDirect
* Priority
* QorCommerce
* Solvpath
* StripeV2
* Surgeify
* TotalApps
* Verifi


# Refund/Void a Transaction

[Locate the customer’s order record](/konnektive-crm/customer-service/locating-a-customer-record) where you need to issue a refund or void.<br>

Once the customer is selected, go to the **Orders** table and *select* the order:

<figure><img src="/files/AKfthaSxzY8B08b4SUEj" alt="" width="563"><figcaption></figcaption></figure>

Select **Full Refund** or **Partial Refund** for the appropriate product:

<figure><img src="/files/4I1F69jAlgrT2s1cpmVw" alt="" width="563"><figcaption></figcaption></figure>

* If you are giving a **partial refund**, you can *enter* the amount you would like to refund then *click* the *red* **Submit Refund** button.

<figure><img src="/files/8xFwzd2L9qvVyVH4LvOU" alt=""><figcaption></figcaption></figure>

**Note:** Using either option, you can cancel the order after the refund by *selecting* the **Cancel Order After Refund?** box.

* Once you have submitted the refund the status will change to **Refunded** :

<figure><img src="/files/t4tKuhW2pgdrgoe9sPNi" alt="" width="563"><figcaption></figcaption></figure>

## Alternative - Void or Refund <a href="#refunding-voidingatransaction-alternative-voidorrefund" id="refunding-voidingatransaction-alternative-voidorrefund"></a>

On the customer’s profile, scroll down to the **Transactions** tab then click on the red **Actions** button, then click **Void** or **Refund**.

<figure><img src="/files/ORTOhgy3pkHOxtNqfoBU" alt="" width="563"><figcaption></figcaption></figure>

If refunding, *enter* the amount you would like to refund then *click* the *red* **Refund** button.

<figure><img src="/files/p5iKdrSUM9AsYpHw1RXn" alt=""><figcaption></figcaption></figure>

**Note:** *If you have already refunded the transaction from the gateway portal, you can check the box before submitting to simply mark the transaction as refunded. The CRM cannot refund a transaction that has already been refunded.*

***

#### Refund Queue <a href="#refunding-voidingatransaction-refundqueue" id="refunding-voidingatransaction-refundqueue"></a>

If a refund attempt fails at any point then it will be added to a refund queue. While in the queue the CRM will attempt to refund the transaction again once per day for 3 days.

<figure><img src="/files/UJTD2JKFmdU4bgsNDD2h" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/Azi0otRFEbUQFYM01zoD" alt="" width="425"><figcaption></figcaption></figure>

If the refund fails after the third attempt, the emails listed in the Notify Emails section of the Account Settings page will receive a notification email.

<figure><img src="/files/HmrFEdMBZVyC7KJSmfRc" alt="" width="563"><figcaption></figcaption></figure>

If this should occur, please feel free to submit a support ticket so our team can investigate the issue.

*You may need to refund the transaction from inside the gateway and use the “Refunded Externally” option in the CRM to only mark the transaction as refunded.*

#### Undo External Refund

<figure><img src="/files/4ZTtove0zzgmuVzhCFDx" alt=""><figcaption></figcaption></figure>

When viewing an order on the Transactions page, you will have the option to "Undo External Refund." This option allows you to reverse the external refund if necessary.

> **Note:** This feature is only available if all the refunds on the order are external. This does not reverse the refund in your gateway.

{% hint style="info" %}
This option only appears when **all** refunds on the order are external.
{% endhint %}

#### Undo External Voids

<figure><img src="/files/J8fAxHAoKviEpunpunzR" alt=""><figcaption></figcaption></figure>

When viewing an order on the Transactions page, you will have the option to "Undo External Void." This option allows you to reverse the external refund if necessary.

> **Note:** This feature is only available if all the voids on the transactions are external. This does not reverse the void in your gateway.


# Cancel an Order

The Cancel Order button can be used to cancel the fulfillment and refund the transaction with a single action. This action will also cancel the subscriptions tied to this order.

To cancel an order, first locate the customer’s order record.

On the customer’s profil&#x65;*,* select the **OrderId** from the **Orders Section**:

<figure><img src="/files/l2R5TzBCQaCAuZ7SLXXV" alt="" width="563"><figcaption></figcaption></figure>

On the *Order Summary* page, select **Cancel Order**:

<figure><img src="/files/mlomBInkwqsug99gJZPv" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/GVP6f9FxFIxkuj8t0Dhg" alt=""><figcaption></figcaption></figure>

* Choose *Cancel Reason*
* Choose the product(s) from the order you want to cancel
* Choose if you would like to apply a full refund
* Choose if you would like to cancel after the NEXT bill cycle
* Enter an optional note


# Cancel or Pause a Subscription

To cancel a subscription product, first locate the customer’s order record.

Open the **Continuity** tab to see each of the Customer's recurring purchases and then click on the hyperlinked product name for subscription purchase you need to cancel or pause.

<figure><img src="/files/vyKSPNuFjmUVdFOGzkmq" alt=""><figcaption></figcaption></figure>

### Cancel Subscription <a href="#cancellingorpauseasubscription-cancelsubscription" id="cancellingorpauseasubscription-cancelsubscription"></a>

Inside the Purchase Details page *click* the red **Cancel Subscription** butto&#x6E;**.**

<figure><img src="/files/ak23lNUIiPjez0lPSYpF" alt=""><figcaption></figcaption></figure>

**Use the Cancellation Window to complete the Cancellation of Subscription.**

<figure><img src="/files/kBl0eZkeKk9bGsZ8suOS" alt=""><figcaption></figcaption></figure>

\
**Reason:** Choose the cancellation reason.

* **Full refund of last billing:** Check the box to provide a full refund.
* **Schedule for:**
  * **NOW** - Customer will be cancelled immediately.
  * **Next Successful Billing** - After the next successful billing cycle their Subscription will automatically cancel.
  * **Prior To Next Scheduled Billing** - Will cancel the subscription instead of processing the transaction.
  * **Specific Date** - Choose the specific date they want to cancel.
    * ***\*Subscription will remain active, but no recurring billings will process if using this option unless "Continue Billing until cancellation" is checked.***
    * **Note:&#x20;*****"Continue billing until cancellation"*****&#x20;This checkbox will always be checked by default.**
* **Agent Note:** Agent can enter any cancellation details in this box. The notes about the cancellation will be logged.

***

### Pause Subscription <a href="#cancellingorpauseasubscription-pausesubscription" id="cancellingorpauseasubscription-pausesubscription"></a>

Inside the Purchase Details page *click* the yellow **Pause Subscription button.**

<figure><img src="/files/tKpi50namwhH8I1xBDwi" alt=""><figcaption></figcaption></figure>

**Use the Pause Window to pause the subscription.**

<figure><img src="/files/QsHYf7nJjRBn4IdBIHam" alt=""><figcaption></figcaption></figure>

* **Schedule for:**
  * NOW - Will pause the subscription immediately
  * Prior to Next Schedule Billing - Will pause the subscription before the next billing occurs
* **Restart Date:** Choose the date that the subscription will reactivate. The subscription will bill on this day.
* **Agent Note:** Agent can enter any cancellation details in this box. The notes about the pause will be logged.


# Quality Assurance

The quality assurance tab is used to locate orders that were sent to QA and need to be approved or denied.\
\
There are 8 ways orders can be sent to QA:

1. QA rate set on campaign
2. Orders flagged by Fraud Service plugins
3. By placing the order on the Order Entry page and selecting ‘External Payment’ rather than entering the customers credit card or ACH info
4. By using the ‘PREPAID’ paySource on Import Order API
5. If the Authorization of an Auth Void Trial is successful, but then the smaller cycle 1 shipping fee declines
6. Orders did not pass address validation from [Smarty ](https://help.checkoutchamp.com/crm/plugins/data-sources/smarty)(Response Code: N)
7. If the order was placed using GooglePay, but one of the upsells did not pass the GooglePay Token
8. Order has no IP Address value and 'Send to QA' option is selected in account-wide Fraud Protection settings (usually this is the result of an [import](https://apidocs.konnektive.com/#05f9224f-913c-4129-95c7-ed078a87e6f0) that came in without an ipAddress value).

***

To approve or deny orders in QA Pending status, navigate to Customer → Quality Assurance and use the filters to pull those orders.

<figure><img src="/files/D588TCf91Zx6VkZeAAz3" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/kciNKtQKIInfSeYXwLDo" alt="" width="563"><figcaption></figcaption></figure>

After clicking the orderId on the right side of the table, you will be presented with this screen to either approve or deny.

<figure><img src="/files/3M7x8Z0Xq9qqXWwb6ElI" alt="" width="563"><figcaption></figcaption></figure>

***

If you are constantly running orders with ‘External Payment’ (Order Entry) or with ‘Prepaid’ as the paySource on Import Order, you can optionally choose to Skip QA for these orders.

<figure><img src="/files/bNP28z3ZPkcefcZdD52n" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/uhVnO6hNv3DiRhBBFdKt" alt="" width="563"><figcaption></figcaption></figure>


# C/S Fulfillment Actions

You can perform all fulfillment actions directly from the customer’s profile.

* [Cancel Fulfillment](#c-sfulfillmentactions-cancelfulfillment)
* [Issue RMA](#c-sfulfillmentactions-issuerma)
* [Reship Fulfillment](#c-sfulfillmentactions-reshipfulfillment)
* [Batch Updates](#c-sfulfillmentactions-batchupdates)

[Navigate to the customer’s profile](/konnektive-crm/customer-service/locating-a-customer-record) then scroll down to their Transactions/Fulfillments section. Click the Fulfillments tab to view the customer’s fulfillment records.

***

## Cancel Fulfillment <a href="#c-sfulfillmentactions-cancelfulfillment" id="c-sfulfillmentactions-cancelfulfillment"></a>

<figure><img src="/files/SlXuqgl2k8svQ2c0m9EZ" alt="" width="563"><figcaption></figcaption></figure>

Choose items to cancel:

<figure><img src="/files/d6FXQMknDsfM5HtOkXwk" alt="" width="449"><figcaption></figcaption></figure>

***

## Issue RMA <a href="#c-sfulfillmentactions-issuerma" id="c-sfulfillmentactions-issuerma"></a>

<figure><img src="/files/F40bSzN3ZG27aOalGc82" alt="" width="563"><figcaption></figcaption></figure>

Choose items to include in the RMA. Also select if a refund should be issued upon return and if a replacement should be sent out.

<figure><img src="/files/wk6QRACroo4QnJd2Zayl" alt="" width="449"><figcaption></figcaption></figure>

***

## Reship Fulfillment <a href="#c-sfulfillmentactions-reshipfulfillment" id="c-sfulfillmentactions-reshipfulfillment"></a>

<figure><img src="/files/qKnDQFMXY8xsbxRnHAHp" alt="" width="563"><figcaption></figcaption></figure>

Choose which items should be reshipped.

<figure><img src="/files/h3wKKZB1UOo8DlcXThDv" alt="" width="449"><figcaption></figcaption></figure>

***

## Batch Updates <a href="#c-sfulfillmentactions-batchupdates" id="c-sfulfillmentactions-batchupdates"></a>

Please see our [Fulfillment Batch Update documentation.](/konnektive-crm/fulfillment/fulfillment-batch-update)


# Resend emails to customers

This article will walk you through how to resend various emails to your customers.<br>

* [Order Confirmation](#resendingemailstocustomers-orderconfirmation)
* [Refund/Void](#resendingemailstocustomers-refund-void)
* [Subscription Cancellation](#resendingemailstocustomers-subscriptioncancellation)
* [Fulfillment Shipped](#resendingemailstocustomers-fulfillmentshipped)

***

### Order Confirmation <a href="#resendingemailstocustomers-orderconfirmation" id="resendingemailstocustomers-orderconfirmation"></a>

There are two ways to resend any “All Orders” or “Initial Orders” emails to your customers:

* Open the customer’s orderId to view the Order Summary page. On the right side of the page, click the Resend Email button

<figure><img src="/files/V2eOlGmM4Kr11HlKHata" alt="" width="563"><figcaption></figcaption></figure>

* To resend order confirmation emails for a batch of orders, navigate to **Reports → Customers → Order Details** and filter to the orders who need their emails resent.
* Above the table headers, click “show/hide batch updates” and choose the “Resend Order Confirmation Emails” option. Then choose the orders (can select all by clicking “Select” on the table header) and submit the update.

<figure><img src="/files/gvbz32bOMQsCxf3N3tL8" alt="" width="563"><figcaption></figcaption></figure>

### Refund/Void <a href="#resendingemailstocustomers-refund-void" id="resendingemailstocustomers-refund-void"></a>

Refund and Void emails can be resent to the customer by using the Action’s button on the customer’s transaction.

<figure><img src="/files/6IsCAoBsNw4mnviLyZBr" alt="" width="563"><figcaption></figcaption></figure>

### Subscription Cancellation <a href="#resendingemailstocustomers-subscriptioncancellation" id="resendingemailstocustomers-subscriptioncancellation"></a>

Cancellation emails for recurring products can be resent from the purchase details page. This can be found by navigating to the customer’s profile and then clicking on the customer’s subscription purchase.

<figure><img src="/files/BZu5oP7BejYZZDQdah4d" alt="" width="563"><figcaption></figcaption></figure>

### Fulfillment Shipped <a href="#resendingemailstocustomers-fulfillmentshipped" id="resendingemailstocustomers-fulfillmentshipped"></a>

To resend “All Fulfillment” and “Initial Fulfillment” emails, navigate to **Fulfillment → Search Fulfillments** and filter to the orders who need their emails resent.

Above the table headers, click “show/hide batch updates” and choose the “Resend Order Confirmation Emails” option. Then choose the orders (can select all by clicking “Select” on the table header) and submit the update.

<figure><img src="/files/2asO3x3Pzf2Iqjqebztc" alt="" width="563"><figcaption></figcaption></figure>


# Rerun a Declined New Sale

**Step 1.**

* *Select* **Customer >** then *click* on **Customer Service.**
* *Type* in the criteria of the *Declined New Sale*.
* *Click* the *red* **Search Orders button.**

<figure><img src="/files/7DF8kNZX5oaBIX5dqtZh" alt="" width="563"><figcaption></figcaption></figure>

* *Click* on the order and it will bring you to the **Customer Details** page.

<figure><img src="/files/qmYfSyS8fMkcvSfvV0P4" alt="" width="475"><figcaption></figcaption></figure>

**Step 2.**

* On the **Customer Details** page on the order section, you would click the *blue* highlighted **order number (orderId).**

<figure><img src="/files/qX44PkhkyVRZGw2pMeSL" alt="" width="563"><figcaption></figcaption></figure>

* Once you click the order that you are looking for, it will take you to the **Order page.** Here you will see the Order page with the information that your order was DECLINED. *Click* the *green* **Complete Order button.**

<figure><img src="/files/bZlO0czIOJAzQw2bnmGK" alt="" width="563"><figcaption></figcaption></figure>

* **Note:** *A Hard Decline will not be able to rerun without contacting the customer. The billing method will not populate.*

**Step 3.**

* The **Order Entry** page appears so the transaction can be rerun.
* The order information will auto populate within **Order Entry** including the product they wanted to purchase.
* Any changes to the customer's information can be made on the **Order Entry** page.

<figure><img src="/files/K2gnzwlhwuhI81aD9qlk" alt="" width="506"><figcaption></figcaption></figure>

* Before completing the complete process, please verify that all the customer details are correct, including the payment method and the product they have chosen.&#x20;

<figure><img src="/files/ESJTKHS7VyzuaRMYKFIA" alt="" width="557"><figcaption></figcaption></figure>

* Once you have done that, scroll all the way down to the end of the page and press the green **Process button**. &#x20;

<figure><img src="/files/eqYHVLDxAaYaXmyUPqDM" alt="" width="307"><figcaption></figcaption></figure>

### Alternative Method: Batch Update – Re-Run Initial Declines <a href="#rerunningadeclinednewsale-alternativemethod-batchupdate-re-runinitialdeclines" id="rerunningadeclinednewsale-alternativemethod-batchupdate-re-runinitialdeclines"></a>

**Step 1.**

* *Select* **Reports >** then *click* on **Customers >** then *click* on **Order Details.**

<figure><img src="/files/2JmITUjWrAitFsHBl1DV" alt="" width="170"><figcaption></figcaption></figure>

* *Choose* the date range for the transactions you would like to rerun.

<figure><img src="/files/qO1MJI5pujwRSFhuFAzR" alt="" width="563"><figcaption></figcaption></figure>

* *Set* the **Order Status** to Declined in the **Filters** section.
* *Set* the **Order Type** to *New Sale*.
* *Click* on the *green* **Go button.**

<figure><img src="/files/JFCHOb1QTMw0YRF6LrJw" alt="" width="563"><figcaption></figcaption></figure>

* Scroll down to the **Order Details** section to and *click* on the *blue* **Show/Hide Batch Updates** option.

<figure><img src="/files/Dv5eDmsBfdTGoz9L3XOo" alt="" width="253"><figcaption></figcaption></figure>

* *Choose* the Merchant you want to re-run against.

<figure><img src="/files/G3lO724yks18OVrUBBOD" alt="" width="563"><figcaption></figcaption></figure>

* *Choose* all orders by clicking **Select**, or individually by checking the box next to each order.

<figure><img src="/files/OKlndCCPJtj1rkWY42Y1" alt="" width="563"><figcaption></figcaption></figure>

* *Click* the *red* **Retry Declined Sales button** once all the criteria have been selected.

<figure><img src="/files/x188JGtg5jQSSvbGNbMx" alt="" width="563"><figcaption></figcaption></figure>

{% file src="/files/7kzBKWieoQJAQau623c7" %}


# Merge Existing Customers

This functionality allows existing customers with the same **email address** or **phone number** to be merged into one customer.

A new order will be automatically associated to an existing customer during order processing if the order’s **emailAddress** or **phoneNumber** value matches to that of an existing customer, AND the **firstName** or **lastName** value also matches.

The new order will always create a new, separate customer if the **disableCustomerDedup** parameter is sent with the value “1” on the Import Lead or Import Order API call.

### &#x20;Instructions <a href="#mergeexistingcustomers-instructions" id="mergeexistingcustomers-instructions"></a>

* To see and use the Merge Customers button, first enable the **Merge Customers** functionality for the user from the **Edit User** page. Create a User

<figure><img src="/files/DQs5L2uStpna6vurq2Bo" alt=""><figcaption></figcaption></figure>

* From the **Customer Details** page, you will see a **Merge** button ONLY if another customer with the same email or phone is found for the current customer.

<figure><img src="/files/tSyQyzTMgnSBt0UZom4p" alt=""><figcaption></figcaption></figure>

* Click the Merge button.
* Select all customers to be merged into the current customer.

<figure><img src="/files/zHjFPPxWeqzofOOPM6GD" alt=""><figcaption></figcaption></figure>

* Update any info as needed that will be the final combined customer info on the current customer. First Name, Last Name, Email Address, Phone Number, Billing Address, Shipping Address, Shopping Cart Account Login and Password, Custom 1-5 values, Do Not Sell Name, SMS Contact, Tax Exempt, and Credit Amount can be updated.
* Click **Merge**.
* Click **Yes, I’m Sure** if you are sure you want to merge the customers.

<figure><img src="/files/LV9N1fXlLOemzH23mQH8" alt=""><figcaption></figcaption></figure>

* All orders, transactions, fulfillments, purchases, memberships, and customer history from the selected customers will be merged into the current customer.
* The page will refresh, and you will be able to see the all the orders on the current page when the merge has been completed.

{% hint style="danger" %}
Only merge customers if you are absolutely sure! This action CANNOT be undone!
{% endhint %}

### &#x20;Related articles <a href="#mergeexistingcustomers-relatedarticles" id="mergeexistingcustomers-relatedarticles"></a>

* [Rerun a Declined New Sale](/konnektive-crm/customer-service/rerunning-a-declined-new-sale)
* [Cancel or Pause a Subscription](/konnektive-crm/customer-service/cancelling-or-pause-a-subscription)
* [Customer Service Tutorial](/konnektive-crm/customer-service/customer-service-tutorial)
* [Locate a Customer Record](/konnektive-crm/customer-service/locating-a-customer-record)


# CRM Setup

* [Product Setup](/konnektive-crm/crm-setup/product-setup)
  * [Product Creation](/konnektive-crm/crm-setup/product-setup/product-creation)
  * [Product Variations](/konnektive-crm/crm-setup/product-setup/product-variations)
    * [Variant Bundles](/konnektive-crm/crm-setup/product-setup/product-variations/variant-bundles)
* [Campaign Setup](/konnektive-crm/crm-setup/campaign-setup)
  * [Creating a Campaign](/konnektive-crm/crm-setup/campaign-setup/creating-a-campaign)
  * [Campaign Categories](/konnektive-crm/crm-setup/campaign-setup/campaign-categories)
  * [Campaign Types](/konnektive-crm/crm-setup/campaign-setup/campaign-types)
  * [Adding a Product to a Campaign](/konnektive-crm/crm-setup/campaign-setup/adding-a-product-to-a-campaign)
    * [Common Offer Setups](/konnektive-crm/crm-setup/campaign-setup/adding-a-product-to-a-campaign/common-offer-setups)
    * [Stagger Fulfillments](/konnektive-crm/crm-setup/campaign-setup/adding-a-product-to-a-campaign/stagger-fulfillments)
    * [Stagger Payments](/konnektive-crm/crm-setup/campaign-setup/adding-a-product-to-a-campaign/stagger-payments)
  * [Landing Page Setup (Form-Code)](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code)
    * [Form Code Integration](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/form-code-integration)
    * [Single Product Lander](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/single-product-lander)
    * [Multiple Product Lander](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/multiple-product-lander)
    * [Shopping Cart Lander](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/shopping-cart-lander)
    * [Configure Google Analytics](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/configure-google-analytics)
    * [Additional Upsell Pages (Form-Code)](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/additional-upsell-pages-form-code)
    * [Wordpress Plugin Setup](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/wordpress-plugin-setup)
      * [Using WooCommerce Catalog with Konnektive Checkout Page](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/wordpress-plugin-setup/using-woocommerce-catalog-with-funnelkonnekt-checkout-page)
    * [Prepaid, Debit Card & Mastercard Redirect (For Devs)](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/prepaid-debit-card-and-mastercard-redirect-for-devs)
    * [Upsell Selection on an Upsell Page (For Devs)](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/upsell-selection-on-an-upsell-page-for-devs)
    * [Adding Extra Products To Checkout Page (Upsells, Hidden Fees, Free Gifts, Order Bumps)](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/adding-extra-products-to-checkout-page-upsells-hidden-fees-free-gifts-order-bumps)
    * [Performing Callbacks after Form Submits (For Dev)](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/performing-callbacks-after-form-submits-for-dev)
  * [Auto-Responder Setup](/konnektive-crm/crm-setup/campaign-setup/auto-responder-setup)
    * [Autoresponder Date Formats](/konnektive-crm/crm-setup/campaign-setup/auto-responder-setup/autoresponder-date-formats)
  * [Shipping Profiles](/konnektive-crm/crm-setup/campaign-setup/shipping-profiles)
  * [Taxes](/konnektive-crm/crm-setup/campaign-setup/taxes)
  * [Campaign Coupons](/konnektive-crm/crm-setup/campaign-setup/campaign-coupons)
  * [Custom Fields](/konnektive-crm/crm-setup/campaign-setup/custom-fields)
  * [Adding C.O.D. to Campaigns](/konnektive-crm/crm-setup/campaign-setup/adding-c.o.d.-to-campaigns)
  * [eSignature](/konnektive-crm/crm-setup/campaign-setup/esignature)
    * [Adding eSignature to Form-Code](/konnektive-crm/crm-setup/campaign-setup/esignature/adding-esignature-to-form-code)
* [Call Center Setup](/konnektive-crm/crm-setup/call-center-setup)
  * [Adding and Editing Call Centers](/konnektive-crm/crm-setup/call-center-setup/adding-and-editing-call-centers)
  * [Adding Call Center Agents](/konnektive-crm/crm-setup/call-center-setup/editing-call-center-agents)
  * [Setting Call Center Commissions](/konnektive-crm/crm-setup/call-center-setup/setting-call-center-commissions)
  * [Batch Update Source Values](/konnektive-crm/crm-setup/affiliate-setup/batch-update-source-values)
  * [Cancellation Reasons, Refund Reasons and Call Dispositions](/konnektive-crm/crm-setup/call-center-setup/cancellation-reasons-refund-reasons-and-call-dispositions)
* [Affiliate Setup](/konnektive-crm/crm-setup/affiliate-setup)
  * [Adding and Editing Affiliates](/konnektive-crm/crm-setup/affiliate-setup/adding-and-editing-affiliates)
  * [Affiliate Tracking Link/String](/konnektive-crm/crm-setup/affiliate-setup/affiliate-tracking-link-string)
  * [Affiliate Pixels](/konnektive-crm/crm-setup/affiliate-setup/affiliate-pixels)
    * [Testing and Troubleshooting CPA Pixels](/konnektive-crm/crm-setup/affiliate-setup/affiliate-pixels/testing-and-troubleshooting-cpa-pixels)
    * [Testing CPC Pixels](/konnektive-crm/crm-setup/affiliate-setup/affiliate-pixels/testing-cpc-pixels)
  * [Affiliate Commissions](/konnektive-crm/crm-setup/affiliate-setup/affiliate-commissions)
  * [Setting up an Affiliate User](/konnektive-crm/crm-setup/affiliate-setup/setting-up-an-affiliate-user)
  * [Batch Update Source Values](/konnektive-crm/crm-setup/affiliate-setup/batch-update-source-values)
  * [Everflow Integration](/konnektive-crm/admin-setup/plugins/affiliate-systems/everflow-integration)
  * [General External Affiliate Software/Network Setup](/konnektive-crm/crm-setup/affiliate-setup/external-affiliate-network-setup-general)
  * [Facebook Pixel Setup (Direct API)](/konnektive-crm/crm-setup/affiliate-setup/facebook-pixel-setup)


# Product Setup

KK Products.mp4

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiAC0G99SjXjSv2GM5PAE%2Fuploads%2FgPt8kG4AopheY2LvPpGx%2FK%20Product%20Setup.mp4?alt=media>" %}

Below are the articles related to adding your products!<br>


# Product Creation

The **Products** page is where categories can be created as well as adding new products to the categories created.

Navigate to **CRM → Products** to view your product list.

<figure><img src="/files/G56nnbGhPrZxnsXWCxlp" alt=""><figcaption></figcaption></figure>

Before adding the first product, **Create a Product Category**. These are used to segment the products. (Ex. Muscle Products, Skin Products, Weight Products, Etc.).

<figure><img src="/files/etmjmZSHjF7LrHabKDPN" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/LHGnDegJHrqc7x4Cjist" alt=""><figcaption></figcaption></figure>

Once this has been created, click the green **+ button** within the category, which will open up the *Product Setup* screen.

<figure><img src="/files/4u2wY81UQk2Av0YNLizN" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/fEuhKJwKu1xlV94bTXDC" alt=""><figcaption></figcaption></figure>

* **Product Name** - The display name the product will be shown as in the CRM.
* **Client Id** - The Client ID that is provided.
* **Product Category** - Is the category you want the product to go in.
* **Product Description** - Description of the product.
* **Fulfillment House** - The Fulfillment House that is responsible for shipping this product.
* **Fulfillment Type** - The available fulfillment types are Standard *(periodically disburse products or products disbursed once*), and No Shipping *(mailing of product not required)*.
* **Fulfillment Delay** - This will delay when the Fulfillment House receives the notification to ship this product.
* **Membership Club** - If you are using our *Custom Club* or a 3rd party membership service then apply that here.
* **Product SKU** - The SKU the fulfillment house has so that they can track what they are shipping out.
* **Qty Per Order** - The quantity of the SKU that will be shipped.
* **Product Cost** - How much the product actually cost. (Not the price customers are paying)
* **Shipping Cost** - The cost to ship out the product.
* **Weight** - The weight of the product.
* **MSRP** - Manufacture suggested retail price.
* **Qty Available** - Sets inventory available for the product. Will diminish as product is purchased and is reflected on Inventory Report
* **Tags** - You can use tags to label products and make them easier to find or reference. Make sure to hit Enter to confirm the Tags, then Update the product.

Once a product is created you can now use it to create your offers within the campaign.\
\
You can also edit your base products by clicking the edit button on your product list.

**Below are some additional options that can be configured after the product is first created and then edited again:**

* **Add an Image** to your product.

{% hint style="info" %}
Image size has to be under 3MB in size as well as under 1000 x 1000 in dimension.
{% endhint %}

* **Rotations** - Use this setting to send different SKUs depending on the recurring cycle a customer is on.
  * Ex. If you need to send Anti Aging on Cycle 1 but want to send Anti Anxiety on Cycle 2.<br>
* **Combinations** - Use this setting to create a bundle of products. Only the SKUs listed in the Combinations section will be sent to the fulfillment house when a product with combinations is purchased.
  * Ex. If you sold a bundle where someone could get Anti Aging and Anti Anxiety together for a discounted price.
  * If a recurring product has Combinations then the combination products may be edited on a subscription.  For example, if a shopper purchases a subscription for product A and product A has products B, C, and D as a Combination, then every billing cycle by default fulfills products B, C, and D.  The subscription can be edited at any time to remove or replace products B, C, and D.  This allows agents or consumers to control what is fulfilled on the next billing for a specific customer.

Combination products ignore the base product SKU

<figure><img src="/files/9vrpCI5eoGbrL8vMwdoe" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/KvSeFldIigli8xpO3eOW" alt=""><figcaption><p>This single product will contain a combination of 6 SKUs in total.</p></figcaption></figure>

{% hint style="info" %}
To use Rotations and Combinations, first create base products for all of your SKUs then return to your Rotation or Combination product to create your rotation/combinations.
{% endhint %}

* **Variants*****-*** Used to easily create the different variant types of a product. See our [Product Variations](/konnektive-crm/crm-setup/product-setup/product-variations) article for more information.

<figure><img src="/files/NHuxp3kBx4ha1sTqTcJj" alt=""><figcaption></figcaption></figure>


# Product Variations

{% hint style="warning" %}
**Product Variations are ONLY supported with Direct API and Order Entry.  Variants are not supported in form code.**
{% endhint %}

Product Variations are the ability to differentiate a single product by identifying properties, such as size, color, style, flavor, or material. Each variation can have a unique SKU, image, and price.

The advantage of variations is that a single product (and campaign product) can be maintained in the CRM but a variation of the product can be purchased and sent to fulfillment.

For example, a store sells T-shirts. Instead of maintaining separate products in the CRM for Small, Medium, and Large, the sizes can be set as variants. Both the product and the variant are specified on an order and the variant SKU is sent to fulfillment.

Navigate to **CRM** → **Products** and edit a product. Scroll towards the bottom of the page to see the Variants section

<figure><img src="/files/onmjtE9vasVFXRzUmXzx" alt="" width="563"><figcaption></figcaption></figure>

**Variant** - Can be Size, Color, Material, Shape, Flavor, etc.

**Options** - Can be small, medium, large, blue, green, red, cotton, wool, circle, square, etc. Options can be separated by comma or a new line.

Press the green “**Create**” button to save your entry and create the product variations. One variation will be created for each combination of variants.

Once the variations are created, press the blue “**Edit Product Variants**” to edit.

<figure><img src="/files/R7GqoTAoSwhfTVUIrmpO" alt="" width="563"><figcaption></figcaption></figure>

The Product Variations page will display all product variations with their respective Id, title, SKU, and price. Press the blue “**Edit**” button to edit a specific variation.

<figure><img src="/files/WIHFZwHNzqhJmXPCGydF" alt="" width="563"><figcaption></figcaption></figure>

The Edit Variant pop-up allows for updates to **Title**, **Product Sku**, **Price**, **Ship Price**, **Compare At Price, Recurring Price, Bill Delay**, **Qty Per Order**, **Weight** and **Image**. Be sure to press the blue “**Update**” button to save changes.

A unique Product SKU should be entered for each variant. SKU is sent to fulfillment.

Price is optional. If entered it will override the campaign product price. This could be used, for example, to set a unique price on a XXL T-shirt.

Recurring Price is also optional.  Use this to set a different price when the product is sold as a subscription.  This will override campaign product price.

<figure><img src="/files/YgRDx2098J5MNjhfMOW3" alt="" width="375"><figcaption></figcaption></figure>

### Orders <a href="#productvariations-orders" id="productvariations-orders"></a>

Use the API to create orders with variants. [Import Order](https://apidocs.konnektive.com/#436cbeab-a41a-4f36-bfb9-7b74fd82a0c0) and [Import Upsell](https://apidocs.konnektive.com/#e480eeb4-f068-4632-b5b6-00a2013e1264) support a Variant Id on each product, in addition to the campaignProductId.

To retrieve the list of product variants for your checkout or upsell page, use the [Query Campaign API](https://apidocs.konnektive.com/?version=latest#d9d7f698-773e-4e65-94f3-744d85f36c51).

### Inventory <a href="#productvariations-inventory" id="productvariations-inventory"></a>

Inventory can be maintained for variants. Go to Fulfillment > Inventory Reports to adjust stock for each variant SKU.

### Recurring Orders <a href="#productvariations-recurringorders" id="productvariations-recurringorders"></a>

Product Variations can be used on recurring orders. A variant can be specified on the initial sale, and that variant will also be on the rebill. Go to the purchase details page to edit the rebill variant at any time. The initial order of a recurring variant can include only 1 variant of the recurring product. If you need to create 2 subscriptions of the same product with different variants, those initial orders must be separate.

Recurring price can be set on each variant to override the cycle 1 campaign product price on recurring orders.  Variant recurring price does not affect prices beyond cycle 1.  Any price beyond cycle 1 is from the campaign product only.

### Variant Bundles <a href="#productvariations-variantbundles" id="productvariations-variantbundles"></a>

See [here](#productvariations-variantbundles) to explore bundling multiple variants as a single product.

**Limitations**

* Product Variations are not enabled for Form Code landers.
* Product Variations can only be used on direct API orders and upsells.

### Adding Variants to Your Page: <a href="#productvariations-addingvariantstoyourpage" id="productvariations-addingvariantstoyourpage"></a>

Please view the [order import API documentation ](https://apidocs.konnektive.com/?version=latest#436cbeab-a41a-4f36-bfb9-7b74fd82a0c0)and the [upsell import API documentation.](https://apidocs.konnektive.com/?version=latest#e480eeb4-f068-4632-b5b6-00a2013e1264)

Variant information can be passed into Konnektive CRM similar to import order.

To use this, specify the campaign product Id that the customer wants to buy noting it as:

`product1_id=x`

If the purchased campaign product has a variant include the following details in your upsell import call:

`product1_id=x`\
`variant1_id=y`

Variant ids can be obtained by going to **CRM → Products**. select ‘Edit’ on a product you know has variants.

<figure><img src="/files/VLPe3j5GkQZgngOhCzdE" alt="" width="563"><figcaption></figcaption></figure>

**Scenario 1 - Single Variant Product**

Let's say you are selling 1 product 1 - Kitten T - Shirt from your landing page.

Assume the campaignProductId for this product is 1.

In this scenario, the product also has a size variantId = 1 - Small, and your customer wants to buy this variant for this product.

On upsell import the page would send in product1\_id=1 variant1\_id=1

variantIds are being mapped to the campaignProductIds to import orders with the variants associated to the products.

**Scenario 2: Multiple Variants same Product**

Let's say there was a second variant for color, with an Id of 2. Lets say that white = 1 and black = 2.

Assume the campaignProductId for this product is 1.

If your customer wants to purchase a t shirt in both colors, on upsell import the page would have to pass in:\
product1\_id=1 (assuming the campaignProductId=1 like before)\
variant1\_id=1(for white variant)\
product2\_id=1(send in the same campaignProductId again, assuming 1 to keep consistent with example)\
variant2\_id=2(for black variant)

**Scenario 3: Multiple Variants Multiple Products:**

Let’s say you are selling multiple products with multiple variants.

Assume the campaignProductId’s are Kitten T - Shirt = 1 and Puppy T- Shirt = 2.

if your customer wishes to import two different products each with their own variant your page would send the data like this\
product1\_id=1\
variant1\_id=1\
product2\_id=x (campaignProductId of the second product, shouldnt be the same as the first)\
variant2\_id=y(variant id of the second product)

### Using Variants in Order Entry <a href="#productvariations-usingvariantsinorderentry" id="productvariations-usingvariantsinorderentry"></a>

Variants may be selected in manual Order Entry

Press the arrow next to Shipping to open up variant selection

<figure><img src="/files/yvFB3nI84PNtVbBWrhm4" alt="" width="556"><figcaption></figcaption></figure>

<figure><img src="/files/DxV2wEDBTZZyTvtspKWh" alt=""><figcaption></figcaption></figure>

**Choose the variants as needed**

If the product bundles variants, you can select as many variants as needed. The product quantity will always be 1. Price will be the product price. See [here](#productvariations-variantbundles) to explore bundling multiple variants as a single product.

If the product does not bundle variants and is a recurring product, you can select one variant only. If you need to create subscriptions for multiple variants of a single product then you need to create multiple orders.

If the product does not bundle variants and is a one-time product, you can select as many variants as needed. Price will be accumulated for each variant.


# Variant Bundles

It is possible to combine multiple variants into a single order product and have each of the variants fulfilled. This is advantageous to allow consumers to choose variants sold as a bundle.

For example, a package of 5 t-shirts is sold for $29.99. The consumer can choose color, size, and quantity of each shirt. This pricing does not lend itself to a traditional product & variant. Instead designate the product as a bundle AND submit the order with a separate product & variant combination for each variant. The variants will be combined into a single product (5-pack) on the order but each chosen shirt will be fulfilled.

First, enable this functionality on the product. The checkbox is available only after variants are created on the product.

<figure><img src="/files/iev6KV3o3q6RHCpmcZpp" alt=""><figcaption></figcaption></figure>

Second, pass regular product and variant parameters passed into the order/import or upsale/import API. Here is an example for a bundle of 3 variants:

**product1\_id = {campaign product Id}**\
**variant1\_id= {variant detail Id for first variant}**\
**product1\_qty = {quantity of first variant}**\
**product2\_id = {campaign product Id}**\
**variant2\_id= {variant detail Id for second variant}**\
**product2\_qty = {quantity of second variant}**\
**product3\_id = {campaign product Id}**\
**variant3\_id= {variant detail Id for third variant}**\
**product3\_qty = {quantity of third variant}**

Full API documentation is [here](https://apidocs.konnektive.com/#436cbeab-a41a-4f36-bfb9-7b74fd82a0c0).

The variants will be automatically combined into a single order line item for the product.

**Notes:**

1. Additional products are allowed on the order. Only the products with the Bundle Variants checkbox will be combined.
2. The product may be recurring. The variants will be fulfilled on each subsequent billing. Variants may be edited manually on the Purchase Details page.
3. The bundled variants must all be of the same base product.
4. The combined order product will have a quantity of 1. You must control the quantity of each variant. For example, if the product is a 5-pack of t-shirts, it is the responsibility of the page to validate that variant quantities add up to 5. The order/import and upsale/import API do no quantity validation.
5. This is available with a direct API integration only. It does not work with Konnektive form code or in manual order entry.
6. Variant IDs are available in the campaign/query API response. Details [here](https://apidocs.konnektive.com/#d9d7f698-773e-4e65-94f3-744d85f36c51).


# Campaign Setup


# Creating a Campaign

A campaign within your CRM is a collection of products being sold. Each campaign has it's own settings, and the price points of the offers/upsells within the campaigns are independent from other campaigns.&#x20;

You might find it useful to create a separate campaign for a new website that has different price points. Another common practice is to create a campaign for each country that you are selling in.

***

To create a campaign, navigate to **CRM → Campaigns** then click on the smaller green “+” button within a category to add a new Campaign.

To add a new category, click on the green **"+ Category" button.**

To add a campaign, click on the small green **"+" button** within the category.

<figure><img src="/files/8QJHJsCS5Mu4ppGvI27N" alt=""><figcaption></figcaption></figure>

You will then set the **Campaign Name** and choose the [**Campaign Type**](/konnektive-crm/crm-setup/campaign-setup/campaign-types).

**Phone** - Processes transactions inside of the **CRM** via **Order Entry**.

**Lander** - Processes transactions through **Web Pages** with support of our [Form Code Integration](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/form-code-integration) or use of our [API calls](/api-documentation/api-documentation).

**Ecommerce** - Processes transactions through Web Pages, typically used for web pages utilizing our Shopping Cart feature through our [Form Code Integration](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/form-code-integration) or if the web page is configured through [Wordpress](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/wordpress-plugin-setup).

{% hint style="danger" %}
The Lander campaign type, in addition to Form-Code,  are both deprecated and no longer supported. It remains available for legacy reasons.
{% endhint %}

Click Submit to create the campaign. Then locate on your campaign list and *click* **Edit**\
\
Once you create the campaign, there are several sections within that you need to configure:

* [Configure Campaign Options](#creatingacampaign-configurecampaignoptions)
* [Add Countries](#creatingacampaign-addcountries)
* [Add Campaign Products](#creatingacampaign-addcampaignproducts)
* [Configure Landing Page forms (Optional)](#creatingacampaign-configurelandingpageforms-optional)
* [Add Affiliates or Call Centers](#creatingacampaign-addaffiliatesorcallcenters)
* [Create Auto-Responders (Email & SMS)](#creatingacampaign-createauto-responders)
* [Sales Tax](#creatingacampaign-salestax)
* [Create Coupons](#creatingacampaign-createcoupons)
* [Create Shipping Profiles](#creatingacampaign-createshippingprofiles)
* [Add Custom Fields](#creatingacampaign-addcustomfields)
* [Add Terms of Service](#creatingacampaign-addtermsofservice)

***

### **Configure Campaign Options** <a href="#creatingacampaign-configurecampaignoptions" id="creatingacampaign-configurecampaignoptions"></a>

On the left is the **General Details**. Here you can apply a multitude of features.

<figure><img src="/files/yALgttHfEUWlv5F1N9lI" alt=""><figcaption></figcaption></figure>

#### **Basic Options** <a href="#creatingacampaign-basicoptions" id="creatingacampaign-basicoptions"></a>

* **List in Order Entry (Phone Campaigns Only)** - The campaign will be listed as an option on the *Order Entry* screen, making it available to sales agents.
* **Quality Assurance** - Konnektive's Quality Assurance system by percentage entered for secondary review. These Cards will be authorized at the time of sale, but not captured until the order is specifically approved through the QA system. Set desired % for QA. Default is 100% .
* **Must Agree to ToS** - This option specifies that the customer must specifically agree to the merchant's terms of service. This is done by checking a box either on a web form or in sales order entry.
* **Require eSignature (Online Campaigns Only)** - This option allows merchants to require a customer electronic signature when checking out from landing page funnels. The system will create a PDF document containing the terms of service, customer eSignature, ipAddress and signature timestamp. This PDF contract can be emailed to the customer on order completion and used to fight chargebacks with card issuers.

#### **Billing Options** <a href="#creatingacampaign-billingoptions" id="creatingacampaign-billingoptions"></a>

* **Preauth Only (Phone Campaigns Only)** - Only a single $1.00 authorization will be applied against the customer's card. This is generally used by call centers who are taking orders for third party merchants.
* **Accept Cash on Delivery Orders** - Orders will be approved for shipment, and payment will be collected on delivery.
* **Retail Orders** - Orders will be approved for shipment according to retail terms set on the campaign. Generally, the retailer is given a certain amount of time to complete payment or the order is placed in a diliquent status.
* **Block Prepaid Cards** - Reject any sales using a prepaid credit or debit card.
* **Block Debit Cards** - Reject any sales using a debit card.
* **Block Mastercard** - Reject any sales using a Mastercard.
* **Block AmEx** - Reject any sales using an American Express.
* **Block Discover** - Reject any sales using a Discover.
* **Block Visa** - Reject any sales using a Visa.
* **Disable External Payments** - This disables the "Prepaid" Order Entry payment option, which records payments taken outside the CRM system such as mailed-in checks.
* **Disable Recycle Billing** - This will exclude this campaign from applying Recycle Billing profiles. Read about Recycle Billing [here](/konnektive-crm/gateway-setup/recycle-billing).

#### **Shipping Options** <a href="#creatingacampaign-shippingoptions" id="creatingacampaign-shippingoptions"></a>

* **Capture on Shipment** - Charges will be authorized at the time of the initial sale only captured once the fulfillment has been updated with a tracking number.
  * Note: This can be set in conjunction with Chargeback Protection (configured on the Campaign Product). In the case both are enabled **Capture on Shipment** will only affect the initial order.
* **Bundle Fulfillment** - This option will bundle fulfillments that are within 96 hours of each other when they are shipped to the same customer. The main purpose of this option is to save money on the number of fulfillments exported to a fulfillment house.
  * Note: Setting this will delay the shipping API so that all products in the order will be bundled together.
* **Offer Shipping Insurance** - If you have a shipping service plugin enabled, you can choose whether to offer it for this campaign.

#### **Other Options** <a href="#creatingacampaign-otheroptions" id="creatingacampaign-otheroptions"></a>

**Chargeback Blacklist** - Use Konnektive's global chargeback blacklist to block any customers who has ever chargebacked a transaction. (Data points used are email, and phone number)

**Maximum Coupons** - The maximum number of coupons allowed per order.

**Reorder Days** - This option restricts customers from purchasing against this campaign again for the amount of days entered. This option can be easily applied to all campaigns with the **Apply to All** button.

**Upsell Window** - By default upsells are accepted up to 2 hours after the initial sale. Enter a different value (in minutes) if needed. If a value is entered then several processes will hold until that window closes, including sending order confirmation emails and sending to plugins.

**Chargeback protection -** This options allows eligible purchases to have their transaction manually captured and chargeback protection applied  protecting revenue from chargebacks.

{% hint style="info" %}
When the Upsell Window closes it puts the Order back in the task queue, the normal delays apply.
{% endhint %}

### **Add Countries** <a href="#creatingacampaign-addcountries" id="creatingacampaign-addcountries"></a>

On the left navigation you will see the **Countries** tab where you have the ability to choose where you want to sell your products. Click on **Countries**, then click the **Drop-Down** to choose a country, then click the **green "+" button** to add it.

<figure><img src="/files/p6icuVZg7xMZU57IIOSc" alt=""><figcaption></figcaption></figure>

### **Add Campaign Products** <a href="#creatingacampaign-addcampaignproducts" id="creatingacampaign-addcampaignproducts"></a>

Please view [this article](/konnektive-crm/crm-setup/campaign-setup/adding-a-product-to-a-campaign) for instructions on how to add products to your campaigns.

### **Configure Landing Page forms (Optional)** <a href="#creatingacampaign-configurelandingpageforms-optional" id="creatingacampaign-configurelandingpageforms-optional"></a>

If you are using Konnektive’s form-code to do your website integration, please follow [this article](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code).

### **Add Affiliates or Call Centers** <a href="#creatingacampaign-addaffiliatesorcallcenters" id="creatingacampaign-addaffiliatesorcallcenters"></a>

Depending on the campaign type you chose, you will either see an Affiliate section or a Call Center section. You also have the ability to add a new affiliates/call centers and set commission for step 1 and step 2 products.

Click **“Add Affiliates”**. Choose the **Affiliate**. Input the Base and Upsale Commission and then click **Submit**.

For more information on setting up affiliates and call centers, please view these articles:\
[Affiliate Setup](/konnektive-crm/crm-setup/affiliate-setup) & [Call Center Setup](/konnektive-crm/crm-setup/call-center-setup)

### **Create Auto-Responders (Email & SMS)** <a href="#creatingacampaign-createauto-responders" id="creatingacampaign-createauto-responders"></a>

Here you have the option to send automatic emails to your customers. For more information on auto-responder setup, please view [this article](/konnektive-crm/crm-setup/campaign-setup/auto-responder-setup).

### **Sales Tax** <a href="#creatingacampaign-salestax" id="creatingacampaign-salestax"></a>

Apply sales tax to specific regions. Click on the green **+ Button**.

<figure><img src="/files/wlctEdfcLCWCiqw2zMz1" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/u17Cd18bG1a7eleUUHrP" alt=""><figcaption></figcaption></figure>

Choose **Country**, **State**, and **Tax Rate**. **Tax Rate** must be entered with decimals (.01 = 1%).

**Include Tax in Final Price** - Include tax in the product prices displayed to customers (such as a VAT).

**Exclude Rebills** - Do not charge tax on rebills

Detailed tax information can be found [here](/konnektive-crm/crm-setup/campaign-setup/taxes)

### **Create Coupons** <a href="#creatingacampaign-createcoupons" id="creatingacampaign-createcoupons"></a>

Please view [this article](/konnektive-crm/crm-setup/campaign-setup/campaign-coupons) for more information on Coupons

### Create Shipping Profiles <a href="#creatingacampaign-createshippingprofiles" id="creatingacampaign-createshippingprofiles"></a>

Please view [this article](/konnektive-crm/crm-setup/campaign-setup/shipping-profiles) for more information on Shipping Profiles

### Add Custom Fields <a href="#creatingacampaign-addcustomfields" id="creatingacampaign-addcustomfields"></a>

Please view [this article](/konnektive-crm/crm-setup/campaign-setup/custom-fields) for more information on Custom Fields

### Add Terms of Service <a href="#creatingacampaign-addtermsofservice" id="creatingacampaign-addtermsofservice"></a>

Here you can add terms of service for the campaign that can be accessed on any form-code landers or shopping carts and can be combined into a customer contract PDF for orders with eSignatures.

<figure><img src="/files/bu8S7HFoSxjqXpRnssnE" alt=""><figcaption></figcaption></figure>


# Campaign Categories

Click on the larger green **+ Category** button to create a *New Category*.

Type the name of the category in the next prompt and press the **'Create Category'** button.

<figure><img src="/files/vD6q75U8QMtxzqtyN5Ls" alt=""><figcaption></figcaption></figure>

## Adding Categories to the Campaign <a href="#campaigncategories-addingcategoriestothecampaign" id="campaigncategories-addingcategoriestothecampaign"></a>

Click the smaller green **+ button** inside a category to add a campaign to that category.

<figure><img src="/files/Wk8q7HPBf4bTN8WIZVRo" alt=""><figcaption></figcaption></figure>

If you already have a campaign created, edit the **Campaign** that the category will be added to. The campaign configuration page will have a new drop-down menu option within the Category dropdown.

<figure><img src="/files/ArRDhFFLmKIeptcDhLdt" alt=""><figcaption></figcaption></figure>

Click on the desired **Category** from the drop-down menu and press update, this will add the Campaign to the Category.

When returned to your campaign list, you will see the campaigns organized into their respective category.

## Editing or Deleting a Campaign Category <a href="#campaigncategories-editingordeletingacampaigncategory" id="campaigncategories-editingordeletingacampaigncategory"></a>

Locate the category, then click the blue **"Edit"** Button.

<figure><img src="/files/PN8tzJHoCbWxCdosLXOr" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/pLQYEKuewoxdiBtfCyZY" alt=""><figcaption></figcaption></figure>

Edit the category, then press **Update**. The campaign category will update and create the *New Category* name.

Choose the “**Delete this category?**” option to remove the category. Products within a deleted category will be moved to a new Miscellaneous category.


# Campaign Types

There are only a few variations between the Lander, E-Commerce, Phone campaign types. This article will explain difference between each campaign type.

* [Lander Campaigns](#campaigntypes-landercampaigns)
* [E-Commerce Campaigns](#campaigntypes-e-commercecampaigns)
* [Phone Campaigns](#campaigntypes-phonecampaigns)

***

### Lander Campaigns <a href="#campaigntypes-landercampaigns" id="campaigntypes-landercampaigns"></a>

Lander type campaigns are for standard styled sales funnels. Where the customer only has a few options to choose from on the funnel, but ultimately they can only make a single decision upon checkout (excluding order bumps). This might be a single product landing page or could also be a multi product landing page, allowing the customer to choose only one of the presented offers.\
\
Within the Lander Campaigns there is a **Landing Page** section, just under the Offers and Upsells section. This is the main difference between the different campaign types.

Using this section is not required, but is known as using the [Konnektive form-code](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code). You can either use Konnektive’s form-code to integrate your pages to Konnektive, or you can pass the data directly to [Konnektive's API](/api-documentation/api-documentation/recommended-api-flow).

<figure><img src="/files/5IvXKUY7n7o9b5CnYSEf" alt=""><figcaption></figcaption></figure>

Also within the Lander campaign types you will find the **Affiliates** section. This will show all the affiliates assigned to this campaign and will allow you to set commission for each affiliate.

<figure><img src="/files/vrEv5v8FHdFPRljWewMu" alt=""><figcaption></figcaption></figure>

### E-Commerce Campaigns <a href="#campaigntypes-e-commercecampaigns" id="campaigntypes-e-commercecampaigns"></a>

E-Commerce type campaigns have more of a shopping cart style. All products are listed in a catalog view allowing the customer to add as many products to their cart, and then proceeds to the cart to checkout.\
\
Within the E-Commerce Campaigns there is a **Shopping Cart** section, just under the Offers and Upsells section. This is the main difference between the different campaign types.

Using this section is not required, but is known as using the [Konnektive form-code](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code). You can either use Konnektive’s form-code to integrate your pages to Konnektive, or you can pass the data directly to [Konnektive's API](/api-documentation/api-documentation/recommended-api-flow).

<figure><img src="/files/H017UfHTb7qR0sDEjl5v" alt=""><figcaption></figcaption></figure>

Also within the E-Commerce campaign types you will find the **Affiliates** section. This will show all the affiliates assigned to this campaign and will allow you to set commission for each affiliate.

<figure><img src="/files/ZduQHl6bl2gHTzp1YZM8" alt=""><figcaption></figcaption></figure>

### Phone Campaigns <a href="#campaigntypes-phonecampaigns" id="campaigntypes-phonecampaigns"></a>

If you would like C/S agents to manually enter orders into Konnektive, you will need to have a phone campaign created. If you already have a Lander or E-Commerce campaign created, you can simply duplicate that campaign to create a new Phone campaign.\
\
To be able to see the campaign under Customers → Order Entry, check the “List in Order Entry” box under the campaign’s General Details.

The Quality Assurance feature may be more desirable for Phone campaigns. This feature will automatically queue your sales as pre-authorizations until you approve them. They will populate under Customer → Quality Assurance for approval or denial.

<figure><img src="/files/EM5PgxB7IJRKCGreuyiB" alt=""><figcaption></figcaption></figure>

You may notice that instead of a landing page creator, you will find a section to add a sales script in that location. Here you can add a main script, any upsell scripts, as well as a rebuttal script. These will always display on the right side of the Order Entry page.

<figure><img src="/files/BeZbdpmNxAGzQrgge4iv" alt=""><figcaption></figcaption></figure>

Finally, just as you would assign affiliates for online campaigns, you will be able to assign call centers to the phone campaign that will be selling for you and set commissions for reporting.

<br>


# Adding a Product to a Campaign

First you will need to make sure you have your base products added and also a [gateway account](https://konnektive.atlassian.net/wiki/spaces/KCKB/pages/759857243/Adding+a+Mid). Once you have products and gateway accounts added you can follow the instructions below.

Go to **CRM → Campaigns** and *click* the *Blue* **Edit Button**:

<figure><img src="/files/PNztvj7BFAY7tel0kpGB" alt=""><figcaption></figcaption></figure>

This will open the **Campaign Editor**. Under **Campaign Products** *select* Options to **Add Offer** or **Add** **Upsell**.

{% embed url="<https://api.media.atlassian.com/file/d3cfdce8-9912-4b70-9ad1-671163f36a95/artifact/video_1280.mp4/binary/cdn?client=275b7238-9394-4b3c-903b-1514a78b0763&collection=contentId-256868373&max-age=2592000&token=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIyNzViNzIzOC05Mzk0LTRiM2MtOTAzYi0xNTE0YTc4YjA3NjMiLCJhY2Nlc3MiOnsidXJuOmZpbGVzdG9yZTpjb2xsZWN0aW9uOmNvbnRlbnRJZC0yNTY4NjgzNzMiOlsicmVhZCJdfSwiZXhwIjoxNzI2NjY5ODAwLCJuYmYiOjE3MjY2NjY5MjB9.FFEX5g0qfNq7zKRB6QbcX4Lc1dcfC7HhfQ_OFvEA4yE>" %}

<figure><img src="/files/jP7QC5p3OtF02cqBUdrs" alt=""><figcaption></figcaption></figure>

This will open the Offer Editor. It contains sections for the **General Details, Billing Schedule, Trial Options, and Order Limits** of the *Campaign*.

<figure><img src="/files/jeeorOPVxD16lplSjMTF" alt=""><figcaption></figcaption></figure>

* **Product Type:** Offer or Upsale
* **Display Name:** The name for the product in the CRM
* **Base Product:** The product you created under the Products Editor
* **Gateway Account:** The gateway you want to process the sales against
* **Dynamic Descriptor:** The descriptor that will show up on customers' billing statements
* **Qty Per Order:** The quantity per order of the campaign product.  This will override the same setting on the base product.

Qty Per Order: is for fulfillment purposes only, this does not affect the price.

***Note:*** The Qty Per Order of the product variant will override this quantity per order.

### Billing Schedule <a href="#addingaproducttoacampaign-billingschedule" id="addingaproducttoacampaign-billingschedule"></a>

<figure><img src="/files/UwpZazRpRlfOPUw0izBp" alt=""><figcaption></figcaption></figure>

* **Billing Type:** One Time, Recurring, or Multi Pay
  * **One Time –** Straight Sale products with no rebill
  * **Recurring –** Customer on a subscription who pay monthly/yearly
  * **Multi-Pay –** Customer pays for a product with multiple payments
* **Final Billing Cycle**: The Cycle where you want to end Recurring Billing
* **Fixed Billing Day):** The day of the month you want to bill purchases under the campaign
* **Stagger Fulfillments:** Check this option if you want bill more frequently than you send Fulfillment. For example if you send 3-month supplies but still bill monthly.
* **Stagger Payments:** Check this option if you want send Fulfillments more frequently than you bill. For example if you send monthly supplies but bill yearly.
* **Use Chargeback Protection:** This setting will preauthorize the full billing amount on the day of billing and hold the transaction in a pending state. After the number of days specified (maximum of 10), the transaction will be captured/settled. There is also an option to delay fulfillment until successful capture.
  * This can be enabled for New Sales and Rebills
  * This can be used in conjunction with Capture on Shipment (configured on the campaign). In the case both are enabled Capture on Shipment will only affect the initial order.
  * Enabling this option will delay shipping integration.
* **Bill on Saturday -** Enabling this setting will move the next bill date to the first Saturday after the cycle bill delay. This was implemented to support the concept that many people are paid on Fridays.
* **Block Prepaid Cards** - Enabling this setting will prevent prepaid cards from being used to purchase this item. This will allow for a more customized approach for blocking prepaid cards. Rather than blocking all prepaid cards from a campaign you can now specify which products can/cannot accept them. This option will not be displayed if the Block Prepaid Cards campaign level option is checked.
* **Bundle Subscriptions:** This option is available for Recurring products only. It allows multiple recurring products purchased at the same time and with the same bill delay to be bundled together for future billings. The bundle will create one order for each billing. Editing the next bill date on a bundle will update all the products in the bundle. The bundle products can be cancelled individually or en masse. Products can be added to the bundle as needed. [More details are here](/konnektive-crm/customer-service/continuity-purchase-profile).
* **Stand Alone Transactions-** Enabling this option will force this item to always be billed as a stand alone transaction. It will never be combined with another item into a combined transaction.
* **Cycle By Cycle:** Define the Price, Ship Price, Shippable Status, Variant, and Bill Delay (if applicable) per cycle.
* **Bill Delay:** Number of days to wait between billing cycles.
* **Variant:** The variant applied to the base product for a given cycle.

Changes that affect the billing schedules will **NOT** affect the customer until the next cycle. For changes to be immediate, you **MUST** batch-update customers to reflect any changes made.

In the example above, this Recurring purchase will bill $39.99 at the time of purchase and will ship the product. This will repeat every 30 days until the customer cancels or declines out.

See Common Offer Setups for more examples

### **Trial Options** <a href="#addingaproducttoacampaign-trialoptions" id="addingaproducttoacampaign-trialoptions"></a>

<figure><img src="/files/B7UtdLcW62tmEt4clV9h" alt="" width="563"><figcaption></figcaption></figure>

#### **Trial Type** <a href="#addingaproducttoacampaign-trialtype" id="addingaproducttoacampaign-trialtype"></a>

**Standard:** Trial period is determined by amount of **days**

**Accelerated:** Accelerated trials bill cycle 2 within a specified number of **minutes** of a sale. This cannot be greater than 24 hours. Enter the duration in minutes of the free trial under Trial Length.

#### **Trial Auth Type** <a href="#addingaproducttoacampaign-trialauthtype" id="addingaproducttoacampaign-trialauthtype"></a>

* **Authorize and Void:** This strategy only allows an order to process if an authorization against the full cycle 2 trial amount is approved. On approval, the shipping is billed, the initial authorization is voided, and the order is completed.
* **Hold Trial Charge:** Like Authorize & Void, this option authorizes the full cycle 2 trial amount. The difference is that the Authorization is not voided, but instead is left in place. On the day of the cycle 2 billing, the authorization is settled. This option has excellent approval percentages (100% often), but is disadvantaged because the charge is visible on the customers card as a pending transaction for the duration of the trial.
* **PreAuthorize:** This option is only used for free trials. It will preauthorize a card for $1.00 and immediately void it.

### **Order Limits** <a href="#addingaproducttoacampaign-orderlimits" id="addingaproducttoacampaign-orderlimits"></a>

<figure><img src="/files/Mkw8ammqBqdxsVm6HjPQ" alt="" width="563"><figcaption></figcaption></figure>

* **Min. Price:** The lowest price a Campaign Product can be sold for.
* **Max. Price:** The highest price a Campaign Product can be sold for.
* **Max. Quantity:** The maximum quantity of products a single order can contain.

Press the **Create Product** button when you are done.

### **Image** <a href="#addingaproducttoacampaign-image" id="addingaproducttoacampaign-image"></a>

<figure><img src="/files/o6dcC7aXb3PyPXU9nNhb" alt="" width="563"><figcaption></figcaption></figure>

After creating the product, you will see an option to upload an image. If you have uploaded an image to the base product, you will see that image instead of the default upload image.

Click on the image window to choose an image to upload. The campaign product image will overwrite the base product image where applicable. Uploading an image to a campaign product will not change the base product image itself.

### **Batch Update** <a href="#addingaproducttoacampaign-batchupdate" id="addingaproducttoacampaign-batchupdate"></a>

<figure><img src="/files/JKaTLaMw9ryzELmX0tNz" alt="" width="563"><figcaption></figcaption></figure>

The Batch Update options allow you to update various products in a campaign at a time.

<figure><img src="/files/TtgJCpk0AW3BpsCaUKqy" alt="" width="332"><figcaption></figcaption></figure>


# Common Offer Setups

Below you will find examples of the most common offer setups-<br>

* [One-Time offer](#commonoffersetups-one-timeoffer)
* [Monthly Recurring offer](#commonoffersetups-monthlyrecurringoffer)
* [14 Day Trial offer (Physical Product)](#commonoffersetups-14daytrialoffer-physicalproduct)
* [7 Day Trial offer (Digital)](#commonoffersetups-7daytrialoffer-digital)

Please click [here](/konnektive-crm/crm-setup/campaign-setup/adding-a-product-to-a-campaign) for instructions on how to add a product to your campaign.

### One-Time offer <a href="#commonoffersetups-one-timeoffer" id="commonoffersetups-one-timeoffer"></a>

<figure><img src="/files/QlJDRsC30ius1iMRo7K9" alt=""><figcaption></figcaption></figure>

This offer will bill (and generate a fulfillment record, if enabled) at the time the customer purchases from your site and will not rebill the customer in the future. If the offer is Shippable, be sure to mark the offer as Shippable as well as the base product used for the offer.\ <br>

### Monthly Recurring offer <a href="#commonoffersetups-monthlyrecurringoffer" id="commonoffersetups-monthlyrecurringoffer"></a>

<figure><img src="/files/muAW2Yypxspru3coBrqp" alt=""><figcaption></figcaption></figure>

Cycle 1 for recurring offers always happen at the time of purchase. When the order is placed and the billing occurs, the system will wait for the amount of time set in the cycle 1 bill delay before it bills for the next cycle.\
\
The last configured cycle will repeat until the customer cancels or declines out, so only a single cycle needs to be configured for monthly recurring offers. If the offer is Shippable, be sure to mark the offer as shippable as well as the base product used for the offer.

### 14 Day Trial offer (Physical Product) <a href="#commonoffersetups-14daytrialoffer-physicalproduct" id="commonoffersetups-14daytrialoffer-physicalproduct"></a>

<figure><img src="/files/tFGm67ocbZ4WLJID6Ksc" alt=""><figcaption></figcaption></figure>

Cycle 1 for recurring offers always happen at the time of purchase. When the order is placed and the billing occurs, the system will wait for the amount of time set in the cycle 1 bill delay before it bills for Cycle 2.\
\
Cycle 2 is set to bill for the product that the customer received on Cycle 1, but does not send a new shipment.

Cycle 3 should be set up to bill and ship the product with a bill delay of 30 days so that it continues to rebill monthly. The last configured cycle will repeat until the customer cancels or declines out.

{% hint style="warning" %}
**Be sure to enable the Trial Options for your trial offers. This will prevent the customers from repurchasing and abusing your offer.**
{% endhint %}

{% hint style="info" %}
By enabling the Trial Options, this will allow you to use an authorization type for the offer.\
\
Here are the authorization types available:

* **Authorize and Void:** This strategy will perform authorization for the full Cycle 2 trial amount. On approval, the cycle 1 charge is billed and the initial authorization is voided.
* **Hold Trial Charge:** Like Authorize & Void, this option authorizes the full cycle 2 trial amount. The difference is that the Authorization is not voided, but instead is left in place. On the day of the cycle 2 billing, the authorization is settled. This option has excellent approval percentages, but is disadvantaged because the charge is visible on the customers card as a pending transaction for the duration of the trial.
* **Validate Card:** This option is only used for free trials. It will preauthorize a card for up to $15.00 and immediately void it if successful. This should **always** be used if Cycle 1 is $0.00 because $0.00 transactions do not go to the gateway, which means the Konnektive will not acquire the token needed to validate the rebills.
  {% endhint %}

### 7 Day Trial offer (Digital) <a href="#commonoffersetups-7daytrialoffer-digital" id="commonoffersetups-7daytrialoffer-digital"></a>

<figure><img src="/files/6VZaGBBHZPqDbbEwOuC6" alt=""><figcaption></figcaption></figure>

Cycle 1 for recurring offers always happen at the time of purchase. When the order is placed and the billing occurs, the system will wait for the amount of time set in the cycle 1 bill delay before it bills for Cycle 2.

Cycle 2 should be set up to bill for the product with a bill delay of 30 days so that it continues to rebill monthly. The last configured cycle will repeat until the customer cancels or declines out.

{% hint style="warning" %}
**Be sure to enable the Trial Options for your trial offers. This will prevent the customers from repurchasing and abusing your offer.**
{% endhint %}

{% hint style="info" %}
If this is a free trial you will need to use the Validate Card trial authorization type. This will preauthorize the card for up to $15.00 and immediately void it if successful. This should **always** be used if Cycle 1 is $0.00 because $0.00 transactions do not go to the gateway, which means the Konnektive will not acquire the token needed to validate the rebills.
{% endhint %}


# Stagger Fulfillments

Use the campaign product **Stagger Fulfillments** option to bill a subscription on a regular interval but deliver on a less frequent interval than the billings.

Check the **Stagger Fulfillments** box

Enter the cycle on which to deliver product

Set the product billing cycles. The last cycle entered should be the cycle on which to start staggering fulfillments. The last cycle should always be shippable. Do not enter a cycle for the non-shippable billings.

<figure><img src="/files/mse80XsDOqDiwX0HFoMV" alt=""><figcaption></figcaption></figure>

There may be more than 1 billing cycle entered. For example, consider the following scenario:

* Cycle 1 - Product is initially purchased and delivered
* Cycle 2 - Product is billed and delivered
* Cycle 3 - Billing only. The billing is same amount as cycle 2.
* Cycle 4 - repeat cycle 2
* Cycle 5 - repeat cycle 3
* Continue repeating cycles 2 and 3 indefinitely

The proper configuration for this is:

* Check the **Stagger Fulfillments** box
* Set the cycle to 2
* Cycle 1 - Set Price, check the Shippable box, and set Bill Delay
* Cycle 2 - Set Price, check the Shippable box, and set Bill Delay
* Do not set any other billing cycles


# Stagger Payments

Use the campaign product **Stagger Payments** option to send fulfillments on a regular interval but bill on a less frequent interval.

Check the **Stagger Payments** box

Enter how many fulfillments per billing

Set one product billing cycle. The cycle must be shippable with a price. The bill delay is the desired fulfillment interval.

&#x20;

<figure><img src="/files/CLxRYbn9Gtv302saUTIv" alt=""><figcaption></figcaption></figure>


# Landing Page Setup (Form-Code)

If you are using Direct API then you do not need to worry about the Landing Page Setup within the campaign.

Single Product Lander - Customer only has 1 offer to purchase on the checkout page (not including upsells)

Multi Product Lander - Customer has multiple offers to choose from (ex. 1 bottle, 3 bottles, 5 bottles) but they can only checkout with 1 item (not including upsells)

Shopping Cart Lander - Customer can add multiple products to their cart and then can checkout with all items

Variants have been added to the Form code. In the event that you add product variants and the product is associated to your campaign, the variants will be available in the form code. Form code will need to be downloaded after adding product variants. This change adds the product variant details to the form-code config file. These details can be accessed and used by your custom code. This change does not add support for product variants in form-code (including them in price totals calculations, etc.)

* Adding Extra Products To Checkout Page (Upsells, Hidden Fees, Free Gifts, Order Bumps)
* Additional Upsell Pages (Form-Code)
* Configure Google Analytics
* Form Code Integration
* Multiple Product Lander
* Performing Callbacks after Form Submits (For Dev)
* Prepaid, Debit Card & Mastercard Redirect (For Devs)
* Shopping Cart Lander
* Single Product Lander
* Upsell Selection on an Upsell Page (For Devs)
* Wordpress Plugin Setup
  * Using WooCommerce Catalog with Konnektive Checkout Page


# Adding Extra Products To Checkout Page (Upsells, Hidden Fees, Free Gifts, Order Bumps)

This article will show you how to offer an additional product to the checkout page to be purchased at the same time as the main offer.

This can be accomplished by including an HTML checkbox input with the attributes class="kformCheckoutUpsell" and value="\[productId]", where \[productId] is the campaign product ID of the campaign product you are offering.. You can also set the quantity on these inputs using the attribute quantity. If the quantity attribute is not present, the quantity will default to 1.<br>

kformCheckoutUpsell offers **process at the same time as the main offer** and will bill on the same transaction if assigned to the same gateway as the main offer and Stand Alone Transaction is not checked on campaign product configuration.&#x20;

**If separate transactions, kformCheckoutUpsell offers might successfully bill despite a decline on the main offer.**

**If you want to bill the hidden charge as a separate transaction and make sure it does not bill if the main offer declines, you might want to add it as an automatically submitted upsell page.**<br>

The javascript to submit kform is:

* ```
  kform.validator.formSubmit();
  ```

There are a number of scenarios in which you may wish to add additional products to the checkout page:

#### Extra Upsell <a href="#addingextraproductstocheckoutpage-upsells-hiddenfees-freegifts-orderbumps-extraupsell" id="addingextraproductstocheckoutpage-upsells-hiddenfees-freegifts-orderbumps-extraupsell"></a>

You have an upsell product that you want to allow the customer to be able to select directly from the checkout page. For example, an optional shipping insurance. In the following example, the upsell is prechecked. You could change this by removing the checked attribute from the element:

* ```
  <input type="checkbox" checked="" value="12" class="kformCheckoutUpsell">
  ```

  This will purchase campaign product 12.
* ```
  <input type="checkbox" value="5" quantity="3" class="kformCheckoutUpsell">
  ```

  This will show the option to purchase 3 of campaign product 5.

#### Hidden Charge <a href="#addingextraproductstocheckoutpage-upsells-hiddenfees-freegifts-orderbumps-hiddencharge" id="addingextraproductstocheckoutpage-upsells-hiddenfees-freegifts-orderbumps-hiddencharge"></a>

You have a hidden charge for an additional product that you would like to pass from the checkout page. This is the same as the checkbox above with the exception that you hide the checkbox from the user by adding the style='display:none' attribute to the checkbox element.

* ```
  <input type="checkbox" style="display:none" checked="" value="[productId]" class="kformCheckoutUpsell">
  ```

#### Free Gift <a href="#addingextraproductstocheckoutpage-upsells-hiddenfees-freegifts-orderbumps-freegift" id="addingextraproductstocheckoutpage-upsells-hiddenfees-freegifts-orderbumps-freegift"></a>

You need to send a free gift along with a product purchase. This is the same as a hidden charge, the only difference being that you would need to ensure that the price for the campaign product is set at zero.

* ```
  <input type="checkbox" style="display:none" onclick="kform.updateCart()" checked="" value="[productId]" class="kformCheckoutUpsell">
  ```

  **You might also consider adding free gifts using combinations and rotations in base product configuration.**

#### Multi-Product Landers <a href="#addingextraproductstocheckoutpage-upsells-hiddenfees-freegifts-orderbumps-multi-productlanders" id="addingextraproductstocheckoutpage-upsells-hiddenfees-freegifts-orderbumps-multi-productlanders"></a>

On Multi-product landers, you may wish for free gifts or hidden charges to be dependent upon the primary offer selected. This can be accomplished via javascript by manipulating the upsell checkboxes.


# Additional Upsell Pages (Form-Code)

Step 1: Locating the php code

When integrating more than 4 upsell pages, you want to keep using the same methods of integration as used in the first 4.

The integration is the same, but in order for it to pull the right product information you must make a few changes to the php code.

Step 2: Making the changes

The pageType does not need to be changed. So long as it is an upsellPage the number does not matter; however, it can only go up to 4.

The productId is what needs to be changed. Where it says "$productId = $ksdk->page->productId;", you will want to have manually set the Id.

The last step is adding a line, to ensure the redirect is to the appropriate next page. By setting $ksdk->redirectsTo = "next page"; you are telling the form to go to that page after being submitted.

Example:


# Configure Google Analytics

Google has made users aware of the coming end to Universal Analytics for some time, but the date is fast approaching. As of July 1, 2023, Google's Universal Analytics will stop processing data. It is imperative users migrate to Google Analytics 4 prior to July 1, 2023 as Universal Analytics will stop processing.

This is a change in how your Google Analytics operates and changes your Google Analytics ID. Please follow Google's instructions on how to successfully transition to GA4, here:

[Make the switch to Google Analytics 4](https://support.google.com/analytics/answer/10759417?sjid=5195701527558849427-NA)

<br>

Step 1. Make sure you are signed in to google, using a gmail account. Then navigate to <https://analytics.google.com/>

Step 2. Sign up for Google Analytics by clicking the button on the screen.

<br>

Step 3. Create a new account by filling in all the fields. Click "Get Tracking ID" and then accept the Terms of Service.

<br>

Step 4. Copy the Tracking ID and move to [crm.konnektive.com](http://crm.konnektive.com).

<br>

Step 5. Go to your Campaigns\
-Click edit on the campaign you are configuring.

<br>

Step 6. Edit or Create a Landing Page

<br>

Step 7. Enable Google Analytics and Add your Tracking ID. Once the Tracking ID is added, click Update to save the ID.

<br>

NOTE: Some properties will take up to 2 hours before the Real-Time section can be used.


# Form Code Integration

Under CRM | Campaigns, Edit a Campaign of Type: Lander:

<br>

Under the Landing Page section, click Create Page:

<br>

Use the dialog to create a lander:

\- Lander Type - Single Product: One offer with Upsales - Multi Product: Multiple Offers - Base Directory: The URL where your lander will be hosted. (example <https://nowhere.com/awesomelander/>)

Now under the Landing Page section, choose Edit:

A basic lander requires two pages: Checkout and ThankYou.

With the Checkout Tab selected, click the green Create Page button:

<br>

Do the same with the Thank You tab:

<br>

After you create all the pages you want to use, click the Green Download Code button to download the lander package:

<br>

Unzip the package and place its contents in the deployment folder of your site.

With the files in place, open the config.php file located in the resources folder. You are going to edit the block of code at the very top of the file:

```
<?php

KformConfig::setConfig(array(
    "isWordpress"=>false,
    "apiLoginId"=>"",
    "apiPassword"=>"",
    "authString"=>"f193e98f598bb4e808e973d5b84e7df9",
    "autoUpdate_allowedIps"=>array("80.248.30.132","44.219.22.112","52.206.5.84"),
    "campaignId"=>1,
    "resourceDir"=>"resources/"));
```

Fill in these values with an Api user you have created under Admin | Users:

* apiLoginId: User Name of Api User
* apiPassword: Password of Api User

***

#### Adding pages after form code is deployed <a href="#formcodeintegration-addingpagesafterformcodeisdeployed" id="formcodeintegration-addingpagesafterformcodeisdeployed"></a>

Sometimes it is necessary to add a page to a Lander you already have. To add a Upsale page, for example, edit the Lander, select the Upsell 1 tab and click the green Create Page button:

**Notice:** After adding any pages you need to redownload the lander package. Replace the config.php file on your server with the new config.php in the redownloaded package (making sure to re-enter your api credentials), and then upload any new pages in the package to your server.


# Multiple Product Lander

Multiple Product Landers are great when you want to give your customer a choice between several different products or packages on your checkout page. For instance, you may want to offer 1-month, 3-month and 6-month supplies of a product, and allow the customer to choose which they prefer.

The setup is essentially the exact same as the the setup for the single-product lander, with one notable difference.

1\) Set the Lander Type as Multi Product

<br>

2\) Checkout page shows Product Options

-Your checkout page will show all your campaign offers in a product selection area. This can be customized by your designer to fit your site's look and feel.

For more details about setting up this type of landing page. Please refer to the single-product lander tutorial.


# Performing Callbacks after Form Submits (For Dev)

Occasionally, you will want custom landing page behavior to be triggered after checkout or after an upsell, but before the next page attempts to load.

This can be accomplished by assigning a callback function to a global JavaScript variable named: 'kform\_formSubmitCallback'. The signature of this callback is: 'function(response, success)', where response is the API response or error message, and success is either true for a successful transaction or false otherwise.

For example, placing the following code on your upsell page will automatically redirect the customer to the next page, even if the transaction declined, once they close the error dialog:

```
window.addEventListener('load',function()
{
    kform_formSubmitCallback = function(response, success)
    {
        if (!success)
            document.location.href = <?php echo $ksdk->redirectsTo; ?>;
    }
}
```

Additionally, you can prevent the page from automatically redirecting to the next page after a successful transaction by returning false from this callback:

```
kform_formSubmitCallback = function(response, success)
{
    return !success;
}
```

Returning anything other than false results in the Konnektive SDK continuing with normal behavior after the callback.

(i.e. Automatically redirecting on transaction success, and doing nothing after a transaction decline or error.)


# Prepaid, Debit Card & Mastercard Redirect (For Devs)

* [Prepaid](broken://pages/c7rlMR50A6tAoXI2rlnW)
* [Debit](broken://pages/c7rlMR50A6tAoXI2rlnW)
* [Mastercard](broken://pages/c7rlMR50A6tAoXI2rlnW)

***

#### **Prepaid** <a href="#prepaid-debitcard-and-mastercardredirect-fordevs-prepaid" id="prepaid-debitcard-and-mastercardredirect-fordevs-prepaid"></a>

Go to CRM | Campaigns and edit a Campaign. Under the Billing Options section enable Block Prepaid Cards:

Edit your landing page config.php file and add the prepaidRedirectUrl directive:

```
<?php

KformConfig::setConfig(array(
    "isWordpress"=>false,
    "apiLoginId"=>"",
    "apiPassword"=>"",
    "authString"=>"f193e98f598bb4e808e973d5b84e7df9",
    "autoUpdate_allowedIps"=>array("80.248.30.132"),
    "campaignId"=>1,
    "prepaidRedirectUrl"=>'https://mylander.com/checkout.php',
    "resourceDir"=>"resources/"));
```

***

#### **Debit** <a href="#prepaid-debitcard-and-mastercardredirect-fordevs-debit" id="prepaid-debitcard-and-mastercardredirect-fordevs-debit"></a>

Go to CRM | Campaigns and edit a Campaign. Under the Billing Options section enable Block Debit Cards:

Note: This setting will override any MID settings.

Edit your landing page config.php file and add the debitRedirectUrl directive:

```
<?php

KformConfig::setConfig(array(
    "isWordpress"=>false,
    "apiLoginId"=>"",
    "apiPassword"=>"",
    "authString"=>"f193e98f598bb4e808e973d5b84e7df9",
    "autoUpdate_allowedIps"=>array("80.248.30.132"),
    "campaignId"=>1,
    "debitRedirectUrl"=>'https://mylander.com/checkout.php',
    "resourceDir"=>"resources/"));
```

***

#### **Mastercard** <a href="#prepaid-debitcard-and-mastercardredirect-fordevs-mastercard" id="prepaid-debitcard-and-mastercardredirect-fordevs-mastercard"></a>

Go to CRM | Campaigns and edit a Campaign. Under the Billing Options section enable Block MasterCard:

Note: This setting will override any MID settings.

Edit your landing page config.php file and add the mastercardRedirectUrl directive:

```
<?php

KformConfig::setConfig(array(
    "isWordpress"=>false,
    "apiLoginId"=>"",
    "apiPassword"=>"",
    "authString"=>"f193e98f598bb4e808e973d5b84e7df9",
    "autoUpdate_allowedIps"=>array("80.248.30.132"),
    "campaignId"=>1,
  "mastercardRedirectUrl"=>'https://mylander.com/checkout.php',
    "resourceDir"=>"resources/"));
```


# Shopping Cart Lander

The Konnektive Shopping Cart is a full E-commerce solution to help you manage large product listings and take orders from your customers.

1\) Create an E-Commerce Campaign -Go to CRM|Campaigns from the menu on the left and click on the '+' button to create a campaign

-Select E-Commerce from the dialog

2\) Creating the Page

-After setting up your campaign countries and offers, click on the 'Create Cart' button in the Shopping Cart section.

-Enter the base directory for your site. The base directory is the url where your cart will be hosted. The cart files must reside in the same directory.

3\) Customize your Pages

-Now click on the "Edit Pages" button to customize your Shopping Cart. This will load the customization screen.

-This screen features a tabbed system to allow you to navigate between each page in the shopping cart. It is required that a catalog page, a checkout page and a thank you page are setup for a fully functional cart.

-To setup each page click on the tab, and then click the link that says "Click To Create Page". This will display a dialog box that will ask you to enter the file name. Each page must have it's own file name.

-When the page is created, you will see a number of options load up on the left hand side of the screen and a preview load up on the right-hand side.

-Enabling or disabling options on the left-hand side of the screen will cause the preview to update to display those form fields. You have a number of options from which to choose between the pages you can create.

4\) Add a Catalog Page

-The Catalog Page allows your customers to navigate your product offers and select which products, they would like to add to their cart. The catalog page updates automatically when you change campaign price points, add coupons, add products or update images and descriptions.

<br>

5\) Add Upsell Products (optional)

-Konnektive provides one-click upsell pages, that you can use to push additional product to your customer before they reach their order summary. You have the option to require that the customer re-enters their card information or you can simply provide a button that will authorize the charge.

6\) Add a Thank You Page

-A thank you page is required to provide the customer with their order summary. The Lander will give you a basic layout that can be used for this page, but it is always best to have a designer customize this to the look and feel of your website.

-A notable option is the reorder URL. This option, if not left blank, will allow visiting customers to return to the initial lead or checkout page and submit additional orders. This is something that you would want to make sure that you use for straight-sale campaigns, and ensure that you disable for trial offers.

7\) Download and Install

-Once you have configured your pages you are ready to install them on your domain. First, you will need to click on the "Download Code" button at the top right of the screen.

-This will download a zip file to your computer that contains the web site files necessary to install your landing page.

-You will need to put these files onto your web server at your domain (We recommend FTP). Be sure to put these in the same directory that you used when setting up the landing page configuration.

-Next go into the resources directory and open the file called config.php. In this file you will need to type in the loginId (username) and password (password) of an API User with access to your CRM. Please see our user creation tutorials if you do not know how to setup an API User.

Once this is done, your shopping cart is fully installed and will be ready to take sales. However, it is static at this point and will not respond to changes in the CRM campaign and landing page configuration files. In order to make your page reflect pricing changes, new product images, and new product descriptions, you will need to enable the auto-update feature.

8\) Enable Auto-Update

-Enabling auto-update allows the CRM to periodically make api requests to your landing page and update critical configuration data. Storing the data on your server this way,means that your cart loads extremely fast (It does not need to make an api request each time a visitor lands on the page to confirm its configuration).

-You must give your web server software write access to the config.php file, in order for the auto-update to work.

-In cPanel, this can be accomplished with the file manager. A cPanel tutorial is available here: <https://www.siteground.com/tutorials/cpanel/file_permissions.htm>.

-This can also be accomplished over ssh using the chown and chmod commands. If you are updating your web server files using the command line, we are going to assume you are familiar with this process.

-After you have ensured that your web server has write access to the config.php file, You will need to enable auto-update on the page.

-Check this box, and then click update. You'll can check the log of update attempts, as well, by clicking on the "view update log" link.


# Single Product Lander

Single product landers are landing pages where only a single product is sold. These types of landers are great for converting on highly-targeted campaigns.

Go to CRM | Campaigns and click the Green Plus Sign:

\
Create New Campaign:

* Campaign Name: Display name for Campaign
* Campaign Type: Select 'Lander'

After setting up an Offer for your Campaign, click on the 'Create Page' button in the Lander Page section:

Create a New Landing Page:

* Lander Type: Select 'Single Product'
* 885pxBase Directory: The full URL to where your lander will be deployed.

Under Landing Page select the blue Edit Pages button:

<br>

Select the Checkout tab and then Create Page:

Create New Checkout Page:

* Filename: The name of the php file to be executed on your server
* Offer: The Offer you created for the Campaign.

Select the Thank You tab and click Create Page:

Create New Thank You Page:

* Filename: The name of the php file to be executed on your server

NOTE: Other pages can optionally be created for your funnel by selecting their tab on the Edit Landing Page screen:

* Presell: The opening page of your funnel.
* Lead Page: Lead Pages direct a customer to an initial page with a small number of form fields. This gives you a higher success rate of collecting contact and lead information from customers, even if they ultimately decide not to purchase your product. This is also a first chance to present your product to your customer without them having to worry about a credit card field just down the page.
* Upsell 1-4: Konnektive provides one-click upsell pages, that you can use to push additional product to your customer before they reach their order summary. You have the option to require that the customer re-enters their card information or you can simply provide a button that will authorize the charge.
* Profile: Shows the Customer Profile information.

Once you have designed your Landing Pages, Select the green Download Code button:

<br>

Unzip the landing package and upload the files to the web server associated with your domain (We recommend SFTP). Be sure to put these in the same directory that you used when setting up the landing page configuration.

Next go into the resources directory and open the file called config.php. At the top of this file you will need to complete the apiloginId (username) and apiPassword (password) with the credentials of an API User with access to your CRM:

```
<?php

KformConfig::setConfig(array(
    "isWordpress"=>false,
    "apiLoginId"=>"",
    "apiPassword"=>"",
    "authString"=>"f193e98f598bb4e808e973d5b84e7df9",
    "autoUpdate_allowedIps"=>array("80.248.30.132"),
    "campaignId"=>1,
    "resourceDir"=>"resources/"));
```

Once this is done, your landing page is fully installed and will be ready to take sales. However, it is static at this point and will not respond to changes in the CRM campaign and landing page configuration files. In order to make your page reflect pricing changes, new product images, and new product descriptions, you will need to enable the auto-update feature.

<br>

Enable Auto-Update(Optional):

![](https://content.screencast.com/users/PackyF/folders/Jing/media/2e0f7203-fa78-41c9-bf95-f245c2110533/2019-09-16_1557.png)

Enabling auto-update allows the CRM to periodically make API requests to your landing page and update critical configuration data. Storing the data on your server this way means that your landing page faster (It does not need to make an API request each time a vistor lands on the page to confirm its configuration).

You must give your web server software write access to the config.php file, in order for the auto-update to work.

In cPanel, this can be accomplished with the file manager. A cPanel tutorial for this is available [here](https://www.siteground.com/tutorials/cpanel/file_permissions.htm)

For Linux users, this can be accomplished over SSH using the chown and chmod commands.


# Upsell Selection on an Upsell Page (For Devs)

You may have an upsell page displaying multiple products instead of one product.

Include the following javascript on the upsell page:

```
    function selectProduct(i)
      {
       document.getElementById('productIdInput').value = i;
       kform.validator.formSubmit();
      }
```

Inside of the form tag include:

```
    <input id="productIdInput" name="productId" value="" type="hidden">
```

Wrap the button in div:

```
    <div onclick="selectProduct(35)"></div>
```

35 in this example is the campaign product ID number.


# Wordpress Plugin Setup

Configuring Your Wordpress Site to Redirect to HTTPS

**Note:** If your site is already configured to redirect to HTTPS feel free to ignore this section though you should still install the WordPress Force HTTPS plugin on your site.

In order for the Konnektive Plugin to work correctly, your site needs to be using HTTPS vs HTTP. You can easily change this configuration by obtaining an SSL certificate and applying it to your domain. We reccomend that you have your domain name and SSL certificate ready before you create your Wordpress Site though you can always make those changes once the site is created. Once you've obtained the SSL certificate and your WP site is directing to HTTPS, download and activate the WordPress Force HTTPS plugin to ensure all your pages are being routed to HTTPS.

**Disclaimer:** Do **NOT** download/activate the WordPress Force HTTPS plugin before applying the SSL certificate to your domain. You will be unable to connect to your website if there is not a SSL certificate in place first!

### Creating the Konnektive Wordpress Plugin <a href="#wordpresspluginsetup-creatingthekonnektivewordpressplugin" id="wordpresspluginsetup-creatingthekonnektivewordpressplugin"></a>

First, you will need to have an e-commerce or lander type campaign with a form-code lander or shopping cart.

* [Shopping Cart Lander](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/shopping-cart-lander)
* [Form Code Integration](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/form-code-integration)

After creating a lander or shopping cart inside the campaign, click the blue edit button to configure pages.

Check the box, stating, 'Enable Wordpress Plugin?' and click 'Update'.

Create the pages you need for your funnel if you haven't already done so. Remember to click 'Update Page' after any edits to that page. When you are finished, click 'Update' in the top box again and 'Download Code'.

Unzip the downloaded code, place the Konnektive folder inside of the /wp-content/plugins/ folder on your server.

**The Konnektive plugin will automatically create itself after you add the Konnektive folder to your server.**

Next, login into the wordpress site as the administrator (/wp-admin/). Click plugins, and ensure that the Konnektive E-Commerce plugin is activated.

Click The Konnektive underneath settings. Enter API username, password, and campaignId. Click 'Update Settings'.

The plugin will create the pages you set up in the CRM, and you will be able to see them in the Pages section on your wp-admin site.

**Note: Please use/build-on the Konnektive-created wordpress pages for your funnel. The plugin will be tied to those specific wordpress pages.**

If you edit them on the site, you will see the wordpress shortcode for that Konnektive page.

The Konnektive wordpress shortcodes are:

* presell page: \[konnektive\_cart\_presell]
* catalog page: \[konnektive\_cart\_catalog]
* product details: \[konnektive\_cart\_product\_details]
* lead page: \[konnektive\_cart\_lead]
* checkout page: \[konnektive\_cart\_checkout]
* upsell page 1: \[konnektive\_cart\_upsell1]
* upsell page 2: \[konnektive\_cart\_upsell2]
* upsell page 3: \[konnektive\_cart\_upsell3]
* upsell page 4: \[konnektive\_cart\_upsell4]
* thankyou page: \[konnektive\_cart\_thankyou]
* Konnektive cart widget: \[konnektive\_cart\_widget]
* signup page: \[konnektive\_cart\_signup]
* profile page: \[konnektive\_cart\_profile]
* category links: \[konnektive\_category\_links]

You can edit the Konnektive content by going to the pages subfolder

inside the Konnektive folder.

Then open the page file that you wish to edit and make any changes.

### Configuring Konnektive Wordpress Plugin Permalinks <a href="#wordpresspluginsetup-configuringkonnektivewordpresspluginpermalinks" id="wordpresspluginsetup-configuringkonnektivewordpresspluginpermalinks"></a>

If any of the Konnektive pages return a 404 error, log into your Wordpress site as the administrator (/wp-admin/). From there, navigate to **Settings**, then select **Permalinks**.

Change the common settings to **Plain** to get these pages to load correctly. Once this is done be sure to hit **Save Changes**

### Updating the Konnektive Wordpress Plugin <a href="#wordpresspluginsetup-updatingthekonnektivewordpressplugin" id="wordpresspluginsetup-updatingthekonnektivewordpressplugin"></a>

The Konnektive Wordpress plugin does not work with auto-update. To update, after making changes to your campaign on the CRM, go to the Konnektive plugin on the wordpress administrative site (/wp-admin/) and click 'Update Settings'.

**Note:** This will recreate any wordpress pages present in your lander-builder (ex. profile page) on the CRM that have been deleted on your wordpress site.

[Using WooCommerce Catalog with Konnektive Checkout Page](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/wordpress-plugin-setup/using-woocommerce-catalog-with-funnelkonnekt-checkout-page)


# Using WooCommerce Catalog with Konnektive Checkout Page

{% hint style="warning" %}
If you are using form-code to connect your lander to Konnektive, please follow [this](/konnektive-crm/crm-setup/campaign-setup/landing-page-setup-form-code/wordpress-plugin-setup) article.
{% endhint %}

***

To make a WooCommerce catalog page work with a Konnektive shopping cart, you will add your Konnektive checkout page link(s) to the add to cart buttons inside WooCommerce.\
\
The links will need to have the productId parameter in the query string equal to the desired Konnektive campaign product ID.

Examples:

a link

```html
<a href="https://yourwebsite.com/checkout/?productId=12">Add to Cart</a>
```

a button img

{% code overflow="wrap" %}

```html
<img onclick="window.location='https://yourwebsite.com/checkout/?productId=12'" src="https://www.elshop.org/wp-content/plugins/Konnektive/resources/images/add-to-cart.png">
```

{% endcode %}

The link will take you to the checkout page with that product added to the shopping cart with quantity 1.

<figure><img src="/files/O7QqIj8pZ2LCWn4b3sOn" alt=""><figcaption></figcaption></figure>

**This method is intended to be used with a separate checkout page than your WooCommerce checkout page.**

### Direct API -  <a href="#direct-api" id="direct-api"></a>

You’ll need to add this script to the page parse the input and cache the products into the product array-

{% code overflow="wrap" lineNumbers="true" %}

```javascript
const urlParams = new URLSearchParams(location.search); if 
(urlParams.has("products")){ const urlProducts = 
urlParams.get("products").split(";"); for(const product of urlProducts){ const 
pos = product.indexOf("."); const splitChar = pos > 0 && pos < 
product.indexOf(":") ? "." : ":"; const productData = 
product.split(splitChar); myCart[productData[0]] = productData[1]; } 
sessionStorage.setItem("myCart",JSON.stringify(myCart)); }
```

{% endcode %}

When making the Import Order API call, parse myCart into product{i}\_id, product{i}\_qty, and variant{i}\_id (if applicable). Increment {i} for each product, starting with 1.


# Auto-Responder Setup

Auto-Repsonders are your automated transactional emails that are configured within Konnektive and send out to your customers via your [SMTP server](/konnektive-crm/admin-setup/plugins/smtp-maintenance). This includes your Order Confirmations, Fulfillment Confirmations, Refund Confirmations, etc.

Follow the sections below to add your auto-responders to your campaigns.

***

### Add SMTP Server <a href="#auto-respondersetup-addsmtpserver" id="auto-respondersetup-addsmtpserver"></a>

To setup an auto responder, first make sure you have an [SMTP server](/konnektive-crm/admin-setup/plugins/smtp-maintenance) added to your account. (Admin > Plugin > SMTP Maintenance)

<figure><img src="/files/1Dk1UWfWRRqiflKIH82Q" alt=""><figcaption></figcaption></figure>

Once added, you can then test the SMTP to make sure it is working properly by clicking on the envelope and entering in your email in the dialogue box.

**NOTE:** The most common error is authentication failed which is typically a credential issue. Please recheck to make sure your credentials are entered correctly.

### Create Autoresponder within Campaign <a href="#auto-respondersetup-createautoresponderwithincampaign" id="auto-respondersetup-createautoresponderwithincampaign"></a>

Go into the campaign in which you would like to connect this SMTP account to.

Go to CRM > Campaigns > Then click edit on the campaign you wish to set the SMTP account on.

<figure><img src="/files/LaVeRBYfe0g61BhHmpyx" alt=""><figcaption></figcaption></figure>

Scroll down to the Email section and click on the *green* + button to create an Auto-Responder.

<figure><img src="/files/jbiNbefRJEZfyc35sxko" alt=""><figcaption></figcaption></figure>

This will bring you to a dialogue box in which you can choose the SMTP you would like to use as well as the event name, the products, email subject, and which billing cycle you would like it to fire on. Some events have additional options as well.

<figure><img src="/files/kWnPhpXh83PRwtNaHsew" alt=""><figcaption></figcaption></figure>

**Event Name**

1. All Orders - Every complete order will trigger this auto responder.
2. All Fulfillments - Every shipped order will trigger this auto responder.
3. Cancellation - Customers who cancel a subscription will trigger this auto responder.
4. Paused - Customers who pause a subscription will trigger this auto responder.
5. Initial Order - This autoresponder will trigger for one-time orders and the first cycle of a recurring order.
6. Initial Fulfillment - This autoresponder will trigger for shippable products on one-time orders and the first cycle of a recurring order.
7. Recurring Order - Only recurring orders (rebills) will trigger this auto responder.  The first cycle of a recurring order will not trigger this autoresponder.
8. Trial Completion - An email will be sent when a customer's trial has completed.
9. RMA - This autoresponder will trigger when an RMA is issued for a customer.
10. Pre-Billing - Customers will receive this autoresponder prior to their rebill.
11. Recurring Order Declined - An email will be sent when a recurring order declines.
12. Refund - Triggered when a customer gets a refund.
13. Void - Triggered when a customer gets a void.
14. Express Consent - This is event is for offers that must abide by the Express Consent rules.
15. Tracking Number Assigned - Will trigger once the fulfillment record has a tracking number assigned.
16. Rerun Initial Success - Will send if an initial order declined but is reran successfully.
17. Partial Orders - Only partial orders will trigger an auto responder.
18. Initial Decline - Only orders that decline on the initial sale will trigger this auto responder.
19. Delivered - Will trigger once the fulfillment record is delivered.
20. Repeat Customer - Triggers when same customer makes another order (after 24 hours of their first order).
21. Card Updated - Triggers a confirmation to the customer when their card has been updated.
22. Password Reset - Will trigger when a user request a password reset for a membership.&#x20;

<details>

<summary>Additional Event Triggers</summary>

**Recycle Failed email only**: Create a Recurring Order Declined autoresponder and set billing cycle = 999.

**Pause ending email only**: Create a Pre Billing autoresponder and set billing cycle = 999.  You can still set the number of days.  That will send only when the pause is ending.

**Chargeback Protection only**: Create an All Orders or Recurring Orders autoresponder and set billing cycle = 999. This will send an email after the CB Protection delay has expired and the capture attempt was successful.

</details>

* Billing Cycle: Set a cycle # so the email send on that cycle only. Leave blank to send on all cycles.
* Product: Choose a specific product which will trigger the autoresponder, or set to All Products to send a single email containing all products the customer purchased.&#x20;
* Attach Signed Customer Contract PDF: Will attach the PDF of your terms and the customers info. See here for more info.
* Send for Express Consent only: Will only send the email to customers where Express Consent is required.
* Email Subject Line: What the customer will see the email titled as in their inbox.

<details>

<summary>Apply Autoresponder to Products by Tag</summary>

Once an autoresponder is created, you may set it up to apply to products by Tag. \
\
Tags are not case-sensitive, but should otherwise be matched exactly to the tag value that exists on the product(s) you wish to target. \
\
Type in the tag value and press enter. Multiple tags can be applied at once by separating them with commas, but be careful not to add any extra spaces.

The reserved tag values `ar_onetime` and `ar_recurring` can be used to have an autoresponder apply to all campaign products of the respective billing type - One-Time or Recurring. These reserved tags do not need to exist on any product to function. This can be useful if you wish to send a different Order Confirmation for newly-created subscriptions than is sent for straight sales.&#x20;

</details>

Click submit to generate the autoresponder, then click the blue **Edit** button to go into the autoresponder to edit it for customization.

<figure><img src="/files/3e45IKWjj8ykgyjl18NC" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/FsNVn0Gf2PD3foQRBBVI" alt="" width="451"><figcaption></figcaption></figure>

### Editing your email template

Use the tool bar and editor to make edits to the template. You can also use the Advanced builder to create your autoresponders which can be saved and used across your campaigns.

<figure><img src="/files/bHQwaQt7ao0DtLh7Squw" alt=""><figcaption></figcaption></figure>

\
\
Each event also has it’s own list of tokens that you can use to dynamically populate the order information in your Auto Responder.

<figure><img src="/files/D1E3N72ZbK2yfXk0JOKG" alt=""><figcaption></figcaption></figure>

<details>

<summary>Additional Token Notes</summary>

* Tokens can be used within the Email Subject
* It is possible to create a hyperlink where portions of the link are dynamically filled in by tokens. For example, on the Rebill Declined autoresponder you can provide link that would send the customer directly to the Update Card page within your Customer Portal.
* **\[orderSummary]** : This token is a dynamic table showing all of the products the customer purchased (are that are applicable to the autoresponder's product settings). The default font size for this token is 10pt font and is not affected by font size changes.&#x20;
  * **\[orderSummary\_ship] :** This is a variation of the normal \[orderSummary] token. It will display the same information, but with the product quantities from the fulfillment. This can be useful when selling bundles of a product as a single line item. (A 2-pack product, for example.)
* **\[trackingUrl]** : This token is a dynamic hyperlink that will redirect the customer to the carrier's website to view the status of their tracking number. The URL is largely based on the Ship Carrier applied to the fulfillment record, however this is also influenced by Konnektive's [Shipping Validation](/konnektive-crm/fulfillment/shipping-validation).

</details>

After you make your edits you can click **Send Test** to send a test email to yourself. Click Save to save your changes. Saving in the Advanced builder will add this email to your autoresponder templates.


# Autoresponder Date Formats

The default date format on email autoresponders is mm/dd/yyyy. To use an alternate date format, set the token name followed by a pipe and the desired format. Enclose it all in brackets. (i.e. `[orderDate|m/d/Y]`).

Use the following key and examples to customize date tokens. Formatting is **case sensitive**.

Most special characters, such as colon, hyphen, and forward slash are allowed.

#### Date Format Key <a href="#autoresponderdateformats-dateformatkey" id="autoresponderdateformats-dateformatkey"></a>

| Description                                     | Examples          | Character       |
| ----------------------------------------------- | ----------------- | --------------- |
| ---                                             | ---               | **Days**        |
| Numeric day of the month with leading zeroes    | 01, 31            | d               |
| Numeric day of the month without leading zeroes | 1, 31             | j               |
| Suffix corresponding to the day                 | st, nd, rd, th    | S               |
| Day of the week                                 | Monday, Sunday    | l (lowercase L) |
| ---                                             | ---               | **Months**      |
| Numeric month with leading zeroes               | 01, 12            | m               |
| Numeric month without leading zeroes            | 1, 12             | n               |
| Shorthand for a month                           | Jan, Dec          | M               |
| Full month                                      | January, December | F               |
| ---                                             | ---               | **Years**       |
| Shorthand for a year                            | 99, 03            | y               |
| Full year                                       | 1999, 2003        | Y               |
| ---                                             | ---               | **Time**        |
| Lowercase am or pm                              | am, pm            | a               |
| Uppercase AM or PM                              | AM, PM            | A               |
| Hour (12 Hour format)                           | 1, 12             | g               |
| Minute                                          | 00, 59            | i               |
| Second                                          | 00, 59            | s               |
| Timezone                                        | EST, MDT, +05     | T               |
|                                                 |                   |                 |

&#x20;

&#x20;

The examples below are common date and time formats. You are not restricted to the provided examples.

#### Examples <a href="#autoresponderdateformats-examples" id="autoresponderdateformats-examples"></a>

| Desired Format           | Token Format | Example                       |
| ------------------------ | ------------ | ----------------------------- |
| mm/dd/yyyy (default)     | m/d/Y        | 01/15/2025                    |
| mm/dd/yyyy 00:00 AM      | m/d/Y g:i A  | 01/15/2025 10:30 AM           |
| Weekday, Month dth, yyyy | l, F jS, Y   | Wednesday, January 15th, 2025 |
| Mmm. d yyyy              | M. d Y       | Jan. 15 2025                  |
| dd-mm-yy                 | d-m-y        | 15-01-25                      |


# Shipping Profiles

hipping profiles can be used for various shipping activities. You can set up different shipping methods, apply a ship price to an entire order, upcharge shipping for specific reasons, and more.

This article will show how to set up a Shipping Profile within a campaign.

### Create Shipping Profiles <a href="#shippingprofiles-createshippingprofiles" id="shippingprofiles-createshippingprofiles"></a>

Navigate to CRM -> Campaigns and edit the campaign you’d like to add a shipping profile to. Click on "**Shipping"** and then click **“Create Profile”**.

<figure><img src="/files/VKJ3nrbhlldSVVwxicWw" alt=""><figcaption></figcaption></figure>

**Choose the following:**

* **Profile Name** - The title you want it to be.
* **Ship RefCode** - Reference code specific for your fulfillment provider.
* **Ship Carrier** - Default, UPS, USPS, FedEx, Canada Post, DHL, and Custom.
* **Ship Method** - Example of this is 2 Day Air. Options will change based off ship carrier. If Carrier is Custom, then Ship Method must be manually entered.
* **Freight TaxCode (Optional)** - Enter this code if you are using [Avalara Tax](/konnektive-crm/admin-setup/plugins/tax-services/avalara-tax) and are planning to charge freight tax.

Click **Create**

For additional options, Click **Edit**

<figure><img src="/files/EIGlC2Gi8bfmSSKU8M0m" alt=""><figcaption></figcaption></figure>

On the left side you will see a few options:

* **Default Shipping** - This profile will always be used by default unless another is specifically selected.
* **Highest Ship Price Only** - For multi-product orders, only the item with the greatest shipping price will be billed.
* **Upcharge Pricing** - Prices set in Profile Rules will be added to the current ship total of the product. If unchecked, price points will override the shipping price set on the campaign product level.
* **Entire Order** - Shipping Price will be set for the order as a whole instead of on a product by product basis.
* **Apply Pricing to Recurring Orders** - Apply the shipping price to every order, including rebills.
* **Do Not Apply To Upsells** - Use the product ship price instead of the profile price for upsells.
* **Free Shipping** - Order shipping will be free if the base price of the order (not including shipping/taxes) is greater than the specified price point.
  * **Include Coupons** - Use this option to evaluate free shipping after discounts are applied to the order.

If you choose one of these options, click on **"Update"** to save the setting.

**Profile Pricing:**

To the right you will see Profile Pricing.

<figure><img src="/files/HgsO4NMO8R6gonLlSfFh" alt=""><figcaption></figcaption></figure>

Here you will have the option to set shipping prices based off region and what product it applies to.

**Shipping for a Specific Product:**

You have the option to set shipping rules based on specific products. Ensure the profile is not set to apply to the “entire order”. Then add a new rule. Under “Apply To”, choose “Specific Product”. Under “Product”, choose the specific product to which the rule should apply.

<figure><img src="/files/sKb8IGZaf6YzbotoJiZR" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
*If you choose “Entire Order” you can not choose a specific product for the rule to apply to.*\
\
*This also means that if you already have Profile Pricing rules created but want to change the rules to “Entire Order” - You will need to remove all existing Profile Pricing rules, enable “Entire Order”, and then you can create new Profile Pricing rules.*
{% endhint %}


# Campaign Coupons

Coupons are used to give discounts on orders. This document explains all the coupon options available to you.

* [Create Coupons](#campaigncoupons-createcoupons)
* [Edit Coupons](#campaigncoupons-editcoupons)
* [Range Profiles](#campaigncoupons-rangeprofiles)
* [Coupon API](#campaigncoupons-couponapi)
* [Order and Upsale API](#campaigncoupons-orderandupsaleapi)

### Create Coupons <a href="#campaigncoupons-createcoupons" id="campaigncoupons-createcoupons"></a>

Navigate to CRM>Campaigns and edit the campaign that needs a coupon. Scroll down to the Coupons section. *Click* **“Create Coupon”**.

<figure><img src="/files/2bvqKsUBik7dJHXSwxSI" alt=""><figcaption></figcaption></figure>

**Enter the following:**

* **Coupon Code -** The code the consumer will enter to apply the discount
* **Apply To -** Choose if the coupon will apply to the product or to shipping
* **Country -** Choose a country or zone that the coupon will apply to
* **Discount Type -** Choose if the coupon is a flat amount deduction or a percentage deduction
* **Products -** Choose one or more products on this campaign that will receive the discount. Whole Order coupons apply to all products on the order.
* **Apply To Products By Tag -** Apply coupons to products by tag instead of specific products.
* **Apply To First Product Only -** Apply a product or product tag coupon to the first matching product on the order only. This is ignored on Whole Order coupons.
* **Apply To All Campaigns -** Apply coupon to all campaigns. This applies to Whole Order and product tag coupons only.
  * This coupon will be removed from all campaigns if deleted.
* **Single Use Coupon Per Customer -** Restrict a coupon to a single use by a particular consumer on this campaign.
* **One-Time Coupon -** Restrict a coupon to a single use across all consumers on this campaign.
* **Default Coupon -** Assign a coupon to be automatically applied to all orders on this campaign.
* **Recurring Coupon -** Choose if the coupon applied on an initial order will also be automatically applied to all subsequent rebills.
* **Use Range Profiles -** Set variable discount based on amount or quantity ordered.
* **Discount -** The amount or percentage that the coupon will deduct from the order
* **Start Date -** The date on which the coupon begins. Optional.
* **End Date -** The date after which the coupon expires. Optional.

*Click* **”Create Coupon”**

<figure><img src="/files/mLrVpobpscq2i1pd10Mf" alt=""><figcaption></figcaption></figure>

### Edit Coupons <a href="#campaigncoupons-editcoupons" id="campaigncoupons-editcoupons"></a>

Navigate to CRM>Campaigns and edit a campaign that contains coupons. Scroll down to the Coupons section. *Click* **“Edit”** on the appropriate coupon.

<figure><img src="/files/KHQl5ma4e8VSsExevP1m" alt=""><figcaption></figcaption></figure>

Most of the options are the same as when creating a coupon. Edit as needed. There is one new option:

* **Use Range Profiles -** set a variable discount based on quantity or amount ordered. See below for additional details.

*Click* **"Update"** to save the settings.

### Range Profiles <a href="#campaigncoupons-rangeprofiles" id="campaigncoupons-rangeprofiles"></a>

<figure><img src="/files/HVPBYF7JZL58LaB5IXGk" alt=""><figcaption></figcaption></figure>

Range Profiles allow you to set a variable discount based on quantity or amount ordered. Multiple ranges may be entered. There are 4 **Profile Type** options:

1. **Price**
   1. Enter start and end order amount and the discount given within that range. The Discount column is based on coupon Discount Type (flat price or percentage). For example, if a consumer orders between $100 and $200 of coupon products, give a 10% discount (start=100, end=200, discount=10).
2. **Quantity**
   1. Enter start and end quantity and the discount given within that range. The Discount column is based on coupon Discount Type (flat price or percentage). For example, if a consumer orders 3 or more coupon products, give a $10 discount (start=3, end=999, discount=10).
3. **Buy X Get Y (Price)**
   1. Enter start and end order amount (X), the discount given within that range, the product to discount, and the quantity to discount (Y). The Discount column is based on coupon Discount Type (flat price or percentage). The Product column must be a specific product. The Quantity column is the quantity to discount. For example, a “Buy $100 in shoes Get a pair of socks 50% off” coupon would be entered as start=100, end=9999, discount=50%, product=Socks, quantity=1. The consumer MUST put the shoes and socks into the shopping cart. The discounted product is NOT added to the cart automatically.
   2. When using “Same Product” the discount is given on the lowest-priced coupon product on the order.
   3. A Buy X Get Y (Price) coupon cannot be used with a Whole Order coupon. You must specify coupon products.
   4. A Buy X Get Y (Price) coupon cannot be used with the “Same Product” option. You must specify a product to discount (“get”).
   5. To give away free product, set Discount=100%
4. **Buy X Get Y (Quantity)**
   1. Enter start and end quantity (X), the discount given within that range, the product to discount, and the quantity to discount (Y). The Discount column is based on coupon Discount Type (flat price or percentage). The Product column can be Same Product or a specific product. The Quantity column is the quantity to discount. For example, a “Buy 1 shoe Get 1 shoe 50% off” coupon would be entered as start=1, end=999, discount=50%, product=Same Product, quantity=1. The consumer MUST put 2 products into the shopping cart. The 1 discounted product is NOT added to the cart automatically.
   2. When using “Same Product” the discount is given on the lowest-priced coupon product on the order.
   3. A Buy X Get Y (Quantity) coupon cannot be used with a Whole Order coupon. You must specify coupon products.
   4. To give away free product, set Discount=100%

### Coupon API <a href="#campaigncoupons-couponapi" id="campaigncoupons-couponapi"></a>

Coupons can be added, edited, deleted, and fetched via API. Grant an API user access to the Coupons access level. Then follow instructions [here](https://apidocs.konnektive.com/#52c68e1c-0b6d-4a90-ac42-3b3c9a766459).

### Order and Upsale API <a href="#campaigncoupons-orderandupsaleapi" id="campaigncoupons-orderandupsaleapi"></a>

If using a Direct API integration, coupons are passed on orders and upsells using the couponCode parameter. Multiple coupon codes may be included separated by commas. Discounts will be calculated upon import. Follow instructions [here](https://apidocs.konnektive.com/#436cbeab-a41a-4f36-bfb9-7b74fd82a0c0) and [here](https://apidocs.konnektive.com/#e480eeb4-f068-4632-b5b6-00a2013e1264).


# Custom Fields

Custom Fields are used to acquire information from your customer, which isn’t on a standard order form.

{% hint style="info" %}
Availability is controlled by a security option.
{% endhint %}

* [Adding Custom Fields](#customfields-addingcustomfield)
  * [Duplicating Custom Fields](#customfields-duplicatingcustomfields)
* [Using Custom Fields in Order Entry](#customfields-usingcustomfieldsinorderentry)
* [Using Custom Fields with Konnektive](#customfields-usingcustomfieldswithcheckoutchamp)
* [Using Custom Fields with Direct API](#customfields-usingcustomfieldswithdirectapi)
  * [(EXAMPLES) \*Case sensitive](#customfields-examples-casesensitive)
* [Editing Customer Records](#customfields-editingcustomerrecords)

***

### Adding Custom Fields <a href="#customfields-addingcustomfield" id="customfields-addingcustomfield"></a>

Navigate to CRM -> Campaigns and edit the campaign that you want a coupon on. Click on the **Custom Fields** section. Click on the **Green + Button** to create a new custom field.

<figure><img src="/files/yQAM7dp8Azqg4fuhUJgP" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/GV9D3s1ZF9xuPf26kE2A" alt="" width="407"><figcaption></figcaption></figure>

You can choose from four different data types:

* **Text** - Allow the customer to type in a value. Set Max Length of characters the customer can enter.
* **Checkbox** - Allow the customer to check a box to indicate an affirmative choice.
* **Drop-Down** - Provide the customer a list of options to choose from. Separate options with semi-colons.
* **Multi-line Text** - Allow the customer to type in a value, while also allowing for line breaks. Set Max Length of characters the customer can enter.

Apply To lets you choose between creating a new customer custom field or an order custom field.&#x20;

At the bottom of the window there is a toggle for "**Apply To All Campaigns**". This allows the customer to have the custom field be created under all campaigns.&#x20;

Fill out the window the click **Create Field** to create the custom field.

#### Duplicating Custom Fields <a href="#customfields-duplicatingcustomfields" id="customfields-duplicatingcustomfields"></a>

Once you have custom fields setup for one campaign. You may want to use them again in another campaign. Click on the **Duplicate** button while you are in the campaign you want to duplicate to, then select the campaign you want to duplicate from.

<figure><img src="/files/A0RapZ1QOmx8kcaiIsEy" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/EBVr7gBdiu3ipUIk8knD" alt=""><figcaption></figcaption></figure>

### Using Customer Custom Fields in Order Entry <a href="#customfields-usingcustomfieldsinorderentry" id="customfields-usingcustomfieldsinorderentry"></a>

Now that you have configured custom fields for your campaign. Your agents will be able to enter those fields on the Order Entry page. Custom fields will be visible below the product selection area.

<figure><img src="/files/1ko2ACqTSctMBCnXrwO8" alt=""><figcaption></figcaption></figure>

### Using Custom Fields with Direct API <a href="#customfields-usingcustomfieldswithdirectapi" id="customfields-usingcustomfieldswithdirectapi"></a>

Custom Fields can be viewed and edited in the API as well. Please see API documentation on the following pages for more information:

* [Import Lead](https://apidocs.konnektive.com/#05f9224f-913c-4129-95c7-ed078a87e6f0)
* [Import Order](https://apidocs.konnektive.com/#436cbeab-a41a-4f36-bfb9-7b74fd82a0c0)
* [Query Customer](https://apidocs.konnektive.com/#dd99c63c-2a6d-4fe0-9657-acfe49d90ac9)
* [Update Customer](https://apidocs.konnektive.com/#8aad55ac-e27d-4000-98aa-1724bc53055b)

Please follow the steps below to properly pass in the custom field(s):

1. Take the custom field name from custom field section of the campaign and replace all spaces with underscores&#x20;
2. Prefix the field name with the string "custom\_"
3. Add the resulting string to the parameter list

#### Examples (**Case Sensitive)** <a href="#customfields-examples-casesensitive" id="customfields-examples-casesensitive"></a>

"Pets Name" -> `custom_Pets_Name`\
"Drivers License Number" -> `custom_Drivers_License_Number`\
"hobbies" -> `custom_hobbies`<br>

### Editing Customer Records <a href="#customfields-editingcustomerrecords" id="customfields-editingcustomerrecords"></a>

You can edit custom fields tied to a specific customer on the main customer details page. To view the custom fields select the Custom Fields tab.

<figure><img src="/files/A1eIHNGaBXZ7NDujjQvS" alt=""><figcaption></figcaption></figure>

You can edit these fields by clicking the **Update** Button at the bottom of the tab area.

### Editing Order Records <a href="#customfields-editingcustomerrecords" id="customfields-editingcustomerrecords"></a>

You can edit custom fields tied to a specific order on the customer support order details page. If order custom fields are set for the order campaign they will appear&#x20;

<figure><img src="/files/uLrN2ocxU6naKUU91CAC" alt=""><figcaption></figcaption></figure>

You can edit these fields by clicking the **Update** Button at the bottom of the tab area.


# eSignature

You can require a customer electronic signature when checking out from landing page funnels (lander and e-commerce campaigns). The system will create a PDF document containing the terms of service, customer eSignature, ipAddress and signature timestamp. This PDF contract can be automatically emailed to the customer on order completion using an auto-responder or retrieved from the CRM and used to fight chargebacks with card issuers.

### Require eSignature <a href="#esignature-requireesignature" id="esignature-requireesignature"></a>

Campaigns with the Require eSignature option checked will require an eSignature for terms of service.

![](https://wiki.konnektive.com/media/wiki/images/182/2538346d72dd45bea2f6ece52b923cd5/esig13.png)

If this option is checked, orders without a valid signature will receive the error "A valid signature is required."

![](https://wiki.konnektive.com/media/wiki/images/182/18d038199a804b71b40d390e64adfc97/esig16.png)

### Setting Campaign Terms of Service <a href="#esignature-settingcampaigntermsofservice" id="esignature-settingcampaigntermsofservice"></a>

You can set the campaign terms of service in the Terms of Service panel towards the bottom of the edit campaign page.

![](https://wiki.konnektive.com/media/wiki/images/182/e6ad6266208943d3a1c72ccf2cbc9414/esig14.png)![](https://wiki.konnektive.com/media/wiki/images/182/866f0c81b3f84bd18018080b90e778d3/esig15.png)

### Capturing Customer's Signature <a href="#esignature-capturingcustomerssignature" id="esignature-capturingcustomerssignature"></a>

#### Konnektive Form-Code <a href="#esignature-konnektiveform-code" id="esignature-konnektiveform-code"></a>

[Adding eSignature to Konnektive Form-Code](https://konnektive.atlassian.net/wiki/spaces/KCKB/pages/631537747/Adding+eSignature+to+Form-Code)

#### Direct API <a href="#esignature-directapi" id="esignature-directapi"></a>

The [Import Order API](https://api.konnektive.com/docs/order_import/) takes a data URL signature parameter.

![](https://wiki.konnektive.com/media/wiki/images/182/7bd5f043be5f4b308db767fbe0cc13c0/esig11.png)

### Customer Contract PDF <a href="#esignature-customercontractpdf" id="esignature-customercontractpdf"></a>

Terms of service will be combined in a pdf with the eSignature and stored as a file on the customer details page.

![](https://wiki.konnektive.com/media/wiki/images/182/9abbffa704c647c6a3ecf20413ad3a88/esig10.png)

### Accessing the Customer Contract PDF <a href="#esignature-accessingthecustomercontractpdf" id="esignature-accessingthecustomercontractpdf"></a>

#### Inside the CRM <a href="#esignature-insidethecrm" id="esignature-insidethecrm"></a>

1\) Go to the Customer Details Page.

2\) Click the Files tab.

3\) Click the download icon.

![](https://wiki.konnektive.com/media/wiki/images/182/5fd7fe080e474496876683f2d2be0e46/esig9.png)

#### Download From Order Details <a href="#esignature-downloadfromorderdetails" id="esignature-downloadfromorderdetails"></a>

1\) Go to the customer's Order Page.

2\) Look at the Details area.

3\) Click the Download Contract button.

![](https://wiki.konnektive.com/media/wiki/images/182/bfa88e8f82c84e0bbae16a3968a1686f/orders-download-contract.png)

#### Customer Contract API <a href="#esignature-customercontractapi" id="esignature-customercontractapi"></a>

The [Query Customer Contracts API](https://api.konnektive.com/docs/customer_contract/) returns the base64-encoded customer contract pdf file(s) based on order ID or customer ID.

### Attaching Customer Contracts to Auto-Responders <a href="#esignature-attachingcustomercontractstoauto-responders" id="esignature-attachingcustomercontractstoauto-responders"></a>

You can send the customer contract as a file attachment named agreement.pdf for Initial Order, Recurring Order, All Orders, and Pre-Billing auto-responders.

Check the Attach Signed Customer Contract PDF checkbox and click Update.

![](https://wiki.konnektive.com/media/wiki/images/182/753ff05ef5874246807c8bb9c09b796c/esig12.png)


# Adding eSignature to Form-Code

1. From the desired lander or e-commerce campaign click the edit icon to edit the landing page or shopping cart.

2\. Click the checkout page tab.

3\. Under the Form Fields section, check eSignature and choose the eSignature Type (Drawn or Typed) then click Update Page.

4\. In the Landing Page panel at the top of the page, click Update and then click Download Code.

5\. Unzip the lander package and place its contents in the deployment folder of your site or replace the resources folder if you have an existing integration.

6\. On the downloaded checkout page you will see the esignature code that you will need to add to your checkout page.

```
<!-- place this code inside the form to get signature inputs -->
<?php $ksdk->echoSignatureCode(); ?>
```

You will can also add your terms of service to your page using this code:&#x20;

```
<!-- place this code on the page to get campaign terms of service -->
<?php echo $ksdk->termsOfService; ?>
```

7\. eSignature Styling

* The assets folder contains fonts for typed signatures.
* kform.css contains eSignature code styling
  * **#kform\_sigPad** styles the drawing pad canvas.
  * **#signatureTypedInput** styles the typed signature.
  * **#kform\_sigDisplay** styles the div where a typed signature displays. **Do not remove the padding.**

8\. Run a test order.

Drawn Signature

Typed Signature

You will see the customer contract PDF file in the Files tab on the Customer Details page.

#### Drawn <a href="#addingesignaturetoform-code-drawn" id="addingesignaturetoform-code-drawn"></a>

This script will automatically be added to a lander or shopping cart for the signature pad along with the regular Konnektive javascript:

```
<script type='text/javascript' src='resources/js/signature/signature_pad.js'></script>
```

This code will automatically be added to your form for a typed signature:

```
<button type="button" id="kform_clearSig">Clear</button>
<br><br>
<canvas id="kform_sigPad"></canvas>
<input type="hidden" name="signature" id="signature" value=''>
```

#### Typed <a href="#addingesignaturetoform-code-typed" id="addingesignaturetoform-code-typed"></a>

This script will automatically be added to a lander or shopping cart to capture a typed signature along with the regular Konnektive javascript:

```
<script type='text/javascript' src='resources/js/signature/html2canvas.min.js'></script>
```

This code will automatically be added to your form for a typed signature:

```
<p class="kform_signtureText">Your signature below confirms that you have agreed to the terms and conditions.</p><br>
<div id="kform_sigDisplay"></div>
<input type="hidden" name="signature" id="signature" value=''>
```

The typed signature will display in the kform\_sigDisplay div and will be captured using html2canvas.

<br>


# Adding C.O.D. to Campaigns

Cash On Delivery option can be enabled within the campaign. When using Cash On Delivery, no payment will process at the time of sale. Instead the order is approved without payment and will send to the fulfillment house plugins automatically. The customer will provide cash to the delivery person upon delivery.

{% hint style="info" %}
**paySource=COD can only be used for straight sale offers**
{% endhint %}

**Adding the Cash Delivery Option to a Campaign.**

Select **CRM → Campaigns** from the Navigation Side Bar Menu and edit the desired campaign.

In the General Details section under Billing Options, toggle **Accept Cash on Delivery Orders** then click the blue **Save** Button.

<figure><img src="/files/fNdVyYWxpheuuNajfMjM" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Orders will be approved for shipment and a payment will be collected upon delivery.**
{% endhint %}

Products in a campaign with C.O.D. enabled still requires a Gateway account to be applied. Please review [this](/konnektive-crm/crm-setup/campaign-setup/adding-a-product-to-a-campaign) article to learn how to add a product to a campaign.

{% hint style="info" %}
**By selecting a merchant for the product it still allows the customer the option to pay with Credit Card at check out.**
{% endhint %}

**Related Links:**

* [**COD Fulfillment Article**](/konnektive-crm/fulfillment/cash-on-delivery-setup)
* [**COD Order Entry Article**](/konnektive-crm/fulfillment/cash-on-delivery-setup/c.o.d.-order-entry-option)

<br>


# Taxes

{% hint style="info" %}
Konnektive offers a basic suite of tax features but is not a full tax engine. Investigate our integrations with [Avalara ](/konnektive-crm/admin-setup/plugins/tax-services/avalara-tax)or [TaxJar ](/konnektive-crm/admin-setup/plugins/tax-services/tax-jar)for complex tax situations.
{% endhint %}

{% hint style="info" %}
Tax is calculated on all products. It is not possible to upload any tax exemptions. However a tax rate of zero can be set by product tag.
{% endhint %}

* [Tax Profiles](#taxes-taxprofiles)
* [VAT (Value-Added Tax)](#taxes-vat-value-addedtax)
* [API](#taxes-api)
* [Reports](#taxes-reports)
* [Notifications](#taxes-notifications)

***

### Tax Profiles <a href="#taxes-taxprofiles" id="taxes-taxprofiles"></a>

To create a tax profile for a campaign, navigate to CRM → Campaigns, edit a campaign, and select the Tax Profiles section.

<figure><img src="/files/MgY2IVCsP6ArBoViDCNd" alt=""><figcaption></figcaption></figure>

Choose **Country** (or Zone), **State** (Always ALL when a Zone is selected), and **Tax Rate**.

Optionally enter a **Postal Code.** Postal Code is ignored when a Zone is selected.

Optionally enter **Product Tags**. Product tags are case-insensitive. Separate multiple tags with a comma.

**Tax Rate** must be entered with decimals (.01 = 1%).

Check the **Apply to Shipping** option to tax shipping.

Check the **Exclude Rebills** option to exclude the tax calculation on rebills.

Check the **Override Tax Service** option to allow this tax to take precedence over any tax plugin service set on the campaign or the campaign products.&#x20;

Region/Country is determined on an order by the shipping address. Non-shippable products will use the billing address if a shipping address is not provided.

### VAT (Value-Added Tax) <a href="#taxes-vat-value-addedtax" id="taxes-vat-value-addedtax"></a>

A tax may be embedded into product prices. Use the **Include Tax in Final Price (VAT or GST)** option on Tax Profiles.

When selecting this option some VAT details are displayed on the Tax Profile. Choose each rate to see details. You must still enter the desired tax rate. The VAT details are informational only.

<figure><img src="/files/f2nSLUWLxat3k1TnJ5Zb" alt="" width="375"><figcaption></figcaption></figure>

VAT is calculated on all product prices. It is also calculated on shipping if **Apply to Shipping** is enabled. Different VAT rates may be used on different Product Tags in the same geographic area.

The **Add Tax to Price** option controls how VAT is calculated compared to product prices. Choose for VAT to add to campaign product prices for customer display OR to show the customer the campaign product price and subtract VAT for reporting only.

* If **Add Tax to Price** is enabled then set campaign product prices to be exclusive of VAT. VAT will be calculated and added to prices on pages and autoresponders for customer display. This makes the display price dynamic based on VAT.
* if **Add Tax to Price** is disabled then set campaign product prices to be inclusive of VAT. Pages and autoresponders will display those prices but the resulting order saved will have VAT separated from price. This option can be used, for example, so show all EU consumers the same price regardless of country.

The Campaign Query API includes all campaign Tax Profiles with **isVat** and **addVatToPrice** indicators. Determine the VAT region and use the rates to calculate taxes as needed. This is for display only. When the order is submitted the taxes will be calculated again on our servers. The response from Import Order API or Import Upsell API will include a **vatSubtotal** amount if VAT was used. Each line item will include a **vatPrice** amount. Use these values to properly display a receipt.

VAT is calculated on the discounted product price. For example, if a campaign product is priced at 100 EUR with a 20% VAT and a 10%-off coupon:

* if **Add Tax to Price** is enabled, the final price of the product is 108 EUR (100 x (1 - .10) x (1 + .20)). The breakout saved on the order is 100 EUR price, 10 EUR discount, 8 EUR sales tax
* if **Add Tax to Price** is disabled, the final price of the product is 100 EUR. The breakout saved on the order is 75 EUR price, 10 EUR discount, 15 EUR sales tax.

VAT should be displayed to consumers inclusive with price. This is automatically handled on campaign email and sms autoresponders. It is not handled this way for non-consumer-facing activities. VAT looks the same as sales tax when displayed in CRM. If VAT is sent to gateways or fulfillment houses then it is sent same as sales tax.

The Order Query API response includes a **vatPrice** amount for each product that was priced with VAT and a **currentVatPrice** amount for each subscription product that will be priced with VAT at the next billing.

### API <a href="#taxes-api" id="taxes-api"></a>

There are several tax options available on API endpoints

<https://apidocs.konnektive.com>

**Query Order**

This API returns salesTax on both the order and item levels. The response also includes a **vatPrice** amount for each product that was priced with VAT and a **currentVatPrice** amount for each subscription product that will be priced with VAT at the next billing. The VAT values are returned only if VAT was used on the order.

**Query Transaction**

This API returns salesTax on the item level. It does not include anything unique for VAT.

**Query Campaign**

This API returns all the campaign Tax Profiles

**Import Order** **Import Upsell**

Taxes are automatically calculated from the campaign Tax Profiles, products, and shipping address when an order is submitted. It is not possible to pass a specific tax profile. The API does include a **salesTax** parameter than can be passed to override the campaign Tax Profiles. This should be the total tax on the order. If product prices are passed they should be exclusive of VAT taxes, if the goal is to use CRM tax reporting.

**Order Sales Tax**

This API returns the total calculated tax based on campaign, products, and shipping address. Pass the parameter **getVatPrices=1** to also return product prices inclusive of VAT.

### Reports <a href="#taxes-reports" id="taxes-reports"></a>

**CRM > Reports > Customers > Order Summary**

The Sales Total, Upsell Total, and Net Revenue columns include taxes. A Sales Tax column is included on the report.

**CRM > Reports > Customers > Revenue Summary**

Tax is excluded from this report. Revenue, AOV, and Profit do not include taxes. A Sales Tax column is not included on the report.

**CRM > Reports > Payments > Transaction Summary**

The Sales Amt, Rebill Amt, Gross Revenue, and Net Revenue columns include taxes. A Sales Tax column is included on the report.

**CRM > Reports > Payments > Sales Tax**

Tax can be accumulated by Country, Postal Code, and Currency. Country can be further segmented by State. The report provides a total tax for each grouping.

**Others**

All other reports include tax in the report totals (Affiliates, Projected Billing, Retention, etc).

### Notifications <a href="#taxes-notifications" id="taxes-notifications"></a>

A tax summary email is sent on the first of each month to all emails listed under Account > Notifications > Summary Emails. The email summarizes the previous month tax by Country and includes an attachment by State.


# Surcharges

{% hint style="info" %}
CheckoutChamp offers basic surcharge calculations. Investigate our integration with [InterPayments](/konnektive-crm/admin-setup/plugins/tax-services/interpayments) for advanced credit card surcharge situations.
{% endhint %}

{% hint style="info" %}
Surcharge is calculated on all products. There is no option to make a surcharge specific to a product or group of products.
{% endhint %}

* [Surcharges](/konnektive-crm/crm-setup/campaign-setup/surcharges)
* [API](#taxes-api)
* [Reports](#taxes-reports)

***

### Surcharges <a href="#taxes-taxprofiles" id="taxes-taxprofiles"></a>

Surcharges are calculated on Sale and Authorize transactions. Surcharges are calculated on all payment types, subject to the Pay Source condition below. This means surcharge is calculated on cards, PayPal, alternate payment methods, Apple Pay, Google Pay, and all others, unless specifically restricted.

To create a surcharge for a campaign, navigate to CRM → Campaigns, edit a campaign, and select the Surcharge section.

<figure><img src="/files/ee3A4pwPncU9LNih4yu2" alt="" width="305"><figcaption></figcaption></figure>

Give the surcharge a **Name**. This name is how the surcharge is shown to customers.

Choose **Country** (or Zone), **State** (Always ALL when a Zone is selected)

Optionally enter a **Pay Source.** This is to apply the surcharge to credit card, ACH, prepaid, or COD orders only.

Choose to calculate as a **Flat Price** or **Percent**.

* Flat Price is per transaction, not per order. If a Flat Price surcharge applies to upsales then it is calculated on each upsell. If an order has 3 products and each product is a separate transaction, then a Flat Price surcharge is added to each transaction.

Choose to calculate surcharge on shipping, tax, upsells, and rebills.

Region/Country is determined on an order by the shipping address. Non-shippable products will use the billing address if a shipping address is not provided.

### API <a href="#taxes-api" id="taxes-api"></a>

Surcharge can be calculated and returned on the **Order Sales Tax API** endpoint

<https://apidocs.konnektive.com/#64fd1132-fd0e-4dd9-b985-6cd6f1ecdae9>

This API returns the total calculated tax based on campaign, products, and shipping address. Pass the parameter **getSurchargePrice=1** to also return the calculated surcharge. The surcharge will be returned even when no tax is calculated.

The **Query Campaign API** endpoint returns surcharge configuration

<https://apidocs.konnektive.com/#d9d7f698-773e-4e65-94f3-744d85f36c51>

### Reports <a href="#taxes-reports" id="taxes-reports"></a>

**CRM > Reports > Customers > Order Summary**

The Sales Total, Upsell Total, and Net Revenue columns include surcharge. A Surcharge column is included on the report.

**CRM > Reports > Payments > Transaction Summary**

The Sales Amt, Rebill Amt, Gross Revenue, and Net Revenue columns include surcharge. A Surcharge column is included on the report.

**Others**

All other reports include surcharge in the report totals (Revenue Summary, Affiliates, Projected Billing, Retention, etc.).


# Call Center Setup


# Adding and Editing Call Centers

Select **CRM** -> **Call Centers** on the navigation side bar.

To add a **Call Center**, click the green **+ button**.

<figure><img src="/files/Dlh8XqEyYhLYLrf512U3" alt=""><figcaption></figcaption></figure>

Enter a Call Center name and click the **Create Call Center** button.

<figure><img src="/files/73RmkVyDK6CubQLPnYgo" alt=""><figcaption></figcaption></figure>

There are additional options when you edit a Call Center. To edit a Call Center, click the blue **Edit button**.

<figure><img src="/files/XRoTlPkPRv3ko98O8mA5" alt=""><figcaption></figcaption></figure>

In the Call Center edit screen, you can **Assign Campaigns, Add Agents and Teams, and Assign DNIS or ANI**.

To associate a campaign with a call center, look at the **Campaigns** area and click on the green **+ Button**. Select a campaign from the dropdown and click **"Add Campaign".** Campaigns can be removed after creation.

<figure><img src="/files/vma1BJ9MbfuiWCqTJdHT" alt=""><figcaption></figcaption></figure>

To add an agent to a call center, navigate to the **Agents** tab and click on the green **+ Button**. Select a user, role, team, and commission rate and click "**Add Agent".** These values can be edited after creation.

<figure><img src="/files/oQU5LNxd7ENBsYoqqy5X" alt=""><figcaption></figcaption></figure>

To add a team to a call center, navigate to the **Teams** tab and click on the green **+ Button**. Enter a team name and click "**Create Team".** The team name can be edited after creation.

<figure><img src="/files/LdIoreudlhJVtP09tLpJ" alt=""><figcaption></figcaption></figure>

Within the call center you can assign **DNIS or ANI**. To add a source, navigate to the **Media Sources** tab and click on the green **+ Button**.  Enter a range of *DNIS or ANI* for call tracking. You can assign your media sources to your toll free number. Add a title, assign a media type and campaign, and enter a media market. These values can be edited after creation.

<figure><img src="/files/Pfbk44z5L2FwvaCv0V0c" alt=""><figcaption></figcaption></figure>

All of the **Telephone Agents** and **Team Leaders** will be activated by uploading a CSV file in a simple format or by adding them one by one.


# Adding Call Center Agents

To edit Call Center Agents, *select* **CRM** and then *click* **Call Center**. Select the appropriate *Call Center* and then *click* on **'Edit'**.

Agents can be added by clicking on the **'Add Agent'** icon.

Agents *can* be edited once added.

The agent's name, the role of the agent, the agent's team, and the agent's commission can all be modified.

A Team can be created by clicking on **'Create Team'**. Enter the Team's name and then *click* **"Create Team"**. The Team name can be edited after creation.


# Setting Call Center Commissions

To set the *Commission* for an Agent, first assign their Call Center to a phone campaign. This can be done by editing your call center.

* Click on **CRM -> Call Centers** in the navigation Side Bar. Then click on the blue **Edit button**.
* Click on the green **+ button** in the **Campaigns** area to add a campaign.&#x20;
* Once you add a campaign, you can then Add or Edit Agents and apply their commission rate. Click on the green **+ button** in the **Agents** tab to add agents, or click on the respective agent's **Edit** **button**.

See [Adding and Editing Call Centers](/konnektive-crm/crm-setup/call-center-setup/adding-and-editing-call-centers) for more information.

### **Alternative** <a href="#settingcallcentercommissions-alternative" id="settingcallcentercommissions-alternative"></a>

* You can set Base and Upsell permissions per campaign. To accomplish this, navigate to **CRM → Campaigns** then click on the blue **Edit button** of the campaign you added in the Call Center in the previous step.

<figure><img src="/files/OHtPXUwLZhfvwJKkkFla" alt=""><figcaption></figcaption></figure>

* Click on the **Call Center** tab and then click on the green **+ button** or the blue **Edit button**.

<figure><img src="/files/vgN9KIU9B290W5tXmJoi" alt=""><figcaption></figcaption></figure>

* The fields to add both **Base Commission and Upsell Commission** rates will be displayed. Set commission $ amount or percentage. Click on **"Add to Campaign"** or **"Update"** to save the changes.

<figure><img src="/files/aj577d3M14cXV8dlJUUR" alt=""><figcaption></figcaption></figure>


# Batch Update Call Center Source Values

* Select **Reports ->** **Customers ->** **Order Details**
* Use the **Filters** section to find the orders that need to be updated.
* Click the green **Search button.**

<figure><img src="/files/na8Q2CTMVfGmUjOR5Q9g" alt=""><figcaption></figcaption></figure>

* Just above the data table, click **show/hide batch updates** and then click on the **"Update Source Values"** **radio button**.
* Select the **source** and fill out any **source values**, then select the orders you want to update and click the **Update Batch**.

{% hint style="info" %}
You can click on the **Select** column in the results to select all results that were returned on that page.
{% endhint %}

<figure><img src="/files/Uln3BiBzere0wpJJAmRZ" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
A confirmation dialog box will appear twice. Click on the **Yes, I'm Sure button** to continue for each. This will permanently alter the selected records and cannot be undone. If you want to alter the records again, you will have to perform another batch update.
{% endhint %}

Once the batch update is complete, the updated **Source Values** will be shown across all reports.


# Cancellation Reasons, Refund Reasons, and Call Dispositions

You can configure specific Cancellation reasons, Refund reasons, and call dispositions under **CRM -> Call Centers.**


# Affiliate Setup


# Adding and Editing Affiliates

You have the ability to add affiliates to your CRM to track how well your traffic sources are performing. You can also add the affiliate pixels to your CRM, eliminating the need to have a developer add the pixels to your funnel directly.

***

### Adding an Affiliate <a href="#addingandeditingaffiliates-addinganaffiliate" id="addingandeditingaffiliates-addinganaffiliate"></a>

Select **'CRM'** and then **'Affiliates'** from the *navigation menu* to get to the Affiliates Page.

<figure><img src="/files/hSLay9hQdyprbbaeBr7t" alt=""><figcaption></figcaption></figure>

From the Affiliates Page, you can see all of your existing affiliates and their details, including:

* Aff Id (affId - used in the tracking string AND as the affId parameter in [Import Lead](https://api.konnektive.com/docs/leads_import/) and [Import Order](https://api.konnektive.com/docs/order_import/) to link orders to the affiliate)
* The affiliate's name
* The names of the campaigns to which they are allowed to send traffic
* Their campaign count

You can also search for affiliates by campaign or with the search bar

To add an affiliate, click the green **+ button** in the right corner of the Affiliates panel

<figure><img src="/files/YClEVdjpyahMTPHN2fXl" alt=""><figcaption></figcaption></figure>

Give your affiliate a ***Source Title*** (their name in the CRM) and *click* **'Create'**.

<figure><img src="/files/Y0tILxlu2UdlqtLaa3Gx" alt=""><figcaption></figcaption></figure>

### Editing an Affiliate  <a href="#addingandeditingaffiliates-editinganaffiliate" id="addingandeditingaffiliates-editinganaffiliate"></a>

On the Affiliates Page, click the blue edit button next to the affiliate you wish to edit.

<figure><img src="/files/1Jdf4edwLXlyGbTVmrCe" alt=""><figcaption></figcaption></figure>

From the **Edit Affiliate Page**, you can:

* Edit the Source Title and Aff ID
* Add and edit passed values
* Add to or remove the affiliate from campaigns
* See Sub Affs (publisher values) and disable them
* Add affiliate pixels

By default, order pixels will fire immediately upon the initial order and will not be fired on orders using prepaid cards.&#x20;

<figure><img src="/files/sbvWIyxkruDqqMbm7BjD" alt=""><figcaption></figcaption></figure>

* **Fire Pixels On Prepaid Cards** - Allow affiliate pixels to be fired for prepaid card sales.
* **Fire Pixels On QA Approval** - Prevent pixels from firing for this affiliate on pending orders until the order has been approved in Quality Assurance. This option should only be enabled if the affiliate uses POSTBACK pixels.
* **Hide Revenue from Affiliate** - Hide revenue columns from this affiliate on the Affiliate Report.\
  The Affiliate Report also contains links to other reports. Control affiliate access to these other reports using user security.\
  **Note: This option will only take effect if "Show Revenue to Affiliates" is enabled on the Account page.**
* **Fire on Rerun of Initial Decline** - If checked, this will fire pixels when an initially-declined order is rerun successfully. This option should only be enabled if the affiliate uses POSTBACK pixels.
* **Fire When Sent to Fulfillment House** - If checked, this will fire pixels when an order is sent to the fulfillment house. Pixels will not fire for system fulfillment or digital products. This option should only be enabled if the affiliate uses POSTBACK pixels.

Make the necessary changes and then click **'Update'**.

### Passed Values <a href="#addingandeditingaffiliates-passedvalues" id="addingandeditingaffiliates-passedvalues"></a>

When setting up an affiliate, you need to clarify with your affiliate on which values they plan to send. An affiliate profile will have values c1, c2, and c3 by default upon creation. After talking with your affiliate, you will configure the values and then provide the affiliate with the tracking string shown at the top of the Passed Values section. It will be helpful to the affiliate to also provide definitions of each value (ex. Which is the publisher?, Which is the clickId?) - or - they will tell you what values they plan to send, and you can configure the passed values based on that.

Click the green **+ button** at the top right to add a passed value (you can have up to 5 per affiliate) or the blue edit button beside the value that you wish to edit.

<figure><img src="/files/hMnDJlxpSTZFHTynYaVT" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/coLqweptA4tBTDPPl3Np" alt=""><figcaption></figcaption></figure>

These are values that the affiliate will send with traffic via the tracking string attached to the end of your website URL.\
\
The numbered values correspond to the sourceValue1-5 parameters for [Import Lead](https://api.konnektive.com/docs/leads_import/) and [Import Order](https://api.konnektive.com/docs/order_import/) API calls.\
\
You can change the value names and mark one as the publisher and one as the sub affiliate.

{% hint style="danger" %}
**You cannot use "SOURCEID" as a value**
{% endhint %}

{% hint style="info" %}
The affiliate link must include their affId for the traffic / orders to be linked to them.
{% endhint %}

***

### Affiliate Campaigns <a href="#addingandeditingaffiliates-affiliatecampaigns" id="addingandeditingaffiliates-affiliatecampaigns"></a>

Select the **Campaigns tab** to see all the campaigns the affiliate is currently in.

{% hint style="info" %}
Affiliates will only be granted credit for the sales against the campaigns they are assigned to.
{% endhint %}

Click the green **+ button**, select the campaign, and click **'Add Campaign'** to add the affiliate to a campaign.

<figure><img src="/files/kqgfVlQtd2HF4YZHVqF8" alt=""><figcaption></figcaption></figure>

Enable the **All Campaigns** option if you want to assign the affiliate to all campaigns.\
When a new campaign is created, affiliates with this option enabled will be automatically assigned to it.

<figure><img src="/files/dDABSiIwxZ6ZlKMd7Gql" alt=""><figcaption></figcaption></figure>

Later, if you no longer want the affiliate to be assigned to all campaigns, disable the **All Campaigns** option and choose to either keep the existing campaigns or delete all campaign assignments.

<figure><img src="/files/OXS8XGAAvzpwpOgnbXVR" alt=""><figcaption></figcaption></figure>

Click the red **delete** button next to the campaign to remove the affiliate from that campaign.

<figure><img src="/files/hWNRfsLtBUxbXbA9Sr04" alt=""><figcaption></figcaption></figure>

***

### Publishers <a href="#addingandeditingaffiliates-publishers" id="addingandeditingaffiliates-publishers"></a>

The Publishers tab shows all **publisher values** received for this affiliate.

<figure><img src="/files/vqBaqipDEaWPSYegV90J" alt=""><figcaption></figcaption></figure>

You can disable publishers if you think they are sending bad traffic. Orders attached to disabled publishers will not be processed and instead will be declined with the message "Affiliate (Publisher) blacklisted."

<figure><img src="/files/79IOkTqG1uliURf4Zt33" alt=""><figcaption></figcaption></figure>

Disabled publishers can be re-enabled.

***

### Pixels <a href="#addingandeditingaffiliates-pixels" id="addingandeditingaffiliates-pixels"></a>

The pixels tab shows all pixels set up for the affiliate.

Please view [this article](/konnektive-crm/crm-setup/affiliate-setup/affiliate-pixels) for directions on how to add a pixel.


# Affiliate Tracking Link/String

To find your affiliate’s tracking string, navigate to **CRM → Affiliates** then click the blue **Edit** button.

<figure><img src="/files/V3uV4YEwLOKBi330Qmmg" alt=""><figcaption></figcaption></figure>

When your Affiliate sends traffic they will use an **Affiliate Tracking Link**, which will link the Affiliate to the Traffic / Order.

* The **Tracking Link** is the URL for your landing page with the **Tracking String** appended to the end.
  * The **Tracking String** is located in the the Passed Values section on the affiliate's profile. The Tracking String contains the **affId** and **Passed Values**.

Up to five **Passed Values** can be added inside of each affiliate profile and they can be configured to be in any order that you would like. You can also determine which values represent the Publisher and the Sub Affiliate to view reporting by these values.

<figure><img src="/files/qpgzt7oeCDnrn0tApFff" alt=""><figcaption><p>If you are using DirectAPI to connect your funnel to CheckoutChamp, the # column represents the corresponding sourceValue1-5 parameter that you should use for the value on the <a href="https://apidocs.konnektive.com/#05f9224f-913c-4129-95c7-ed078a87e6f0">Import Lead</a> and <a href="https://apidocs.konnektive.com/#436cbeab-a41a-4f36-bfb9-7b74fd82a0c0">Import Order</a> API requests.</p></figcaption></figure>

In the example above, the affiliate has the following passed values: **c1, c2, c3, SubAffId, testValue**

A full url example would look like this:

<https://yourcheckouturl.com/checkout?\\&affId=**\\[affId-assigned-by-system]**\\&c1=**\\[c1-value]**\\&c2=**\\[c2-value]**\\&c3=**\\[c3-value]**\\&SubAffId=**\\[SubAffId-value]**\\&testValue=**\\[testValue-value>]\*\*

***

#### Form-Code <a href="#affiliatetrackinglink-string-konnektiveform-code" id="affiliatetrackinglink-string-konnektiveform-code"></a>

If you are using **Form-Code**, after setting up your landing page or shopping cart and adding the affiliate to the campaign, you will see a sample tracking link in the affiliates panel on the **Edit Campaign page**.

Make sure that your affiliate uses their tracking link and **Form-Code** will take care of the rest.

{% hint style="danger" %}
Form-Code is deprecated and no longer supported. It remains available for legacy reasons.
{% endhint %}

***

#### Direct API <a href="#affiliatetrackinglink-string-directapi" id="affiliatetrackinglink-string-directapi"></a>

Send the affiliate tracking string as part of the requestUri parameter (url encoded) in your first [Import Click](https://api.konnektive.com/docs/click_import/) call for each new session.

{% hint style="warning" %}
The passed values inside the URL string are case sensitive and much match exactly how they display inside the affiliate profile
{% endhint %}

{% hint style="info" %}
This API will return a sessionId. Send the returned sessionId value as the sessionId parameter on the subsequent [Import Lead](https://api.konnektive.com/docs/leads_import/), [Import Order](https://api.konnektive.com/docs/order_import/), Import Upsell, and [Confirm Paypal](https://apidocs.konnektive.com/?version=latest#00424b1e-8550-4757-83f0-a0d550225ee0) API calls to fill the Outcome column of the Conversion Details Report and also to provide Conv% on the Affiliate Report. See [here](/api-documentation/api-documentation/recommended-api-flow) for our recommended API flow.
{% endhint %}

<figure><img src="/files/mMkNDg6RNreiVZNmHRBM" alt=""><figcaption></figcaption></figure>

You can also pass the affiliate values directly to the [Import Lead](https://api.konnektive.com/docs/leads_import/) or [Import Order](https://api.konnektive.com/docs/order_import/) call.

The numbers of the passed/source values must match how they are numbered in the passed values panel on the **Affiliate Edit page**.

The following API fields are used for passing the affiliate information:

* affId - the Konnektive affId (Find affId on the Affiliates Page or on the **Affiliate Edit Page**)
* sourceValue1 - passed value #1
* sourceValue2 - passed value #2
* sourceValue3 - passed value #3
* sourceValue4 - passed value #4
* sourceValue5 - passed value #5

<figure><img src="/files/kWGp5jhId05OTLlLu6Ny" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/FtIzRxFVH01oxhqisICy" alt=""><figcaption></figcaption></figure>


# Affiliate Pixels

filiate Pixels are used to send the conversion data to the affiliate so they know which sales they are responsible for.

After [setting up your campaign](/konnektive-crm/crm-setup/campaign-setup), then [creating an affiliate profile](/konnektive-crm/crm-setup/affiliate-setup/adding-and-editing-affiliates) and adding the affiliate to the campaign(s), you can then add affiliate pixels to the campaigns that the affiliate is assigned to.

***

### Add Pixels <a href="#affiliatepixels-addpixel" id="affiliatepixels-addpixel"></a>

Navigate to **CRM → Affiliates** to view your affiliate profiles, then **edit** the profile you’d like to add the pixel to.

<figure><img src="/files/jGGmL2nrN9yuyyc4vqAn" alt=""><figcaption></figcaption></figure>

Next, go to the **Pixels** tab inside the profile and click the green **+ button**.

{% hint style="info" %}
Pixels are campaign-specific, so you must add the affiliate to a campaign before a pixel can be created. Use the **Campaigns** tab to assign the affiliate to the appropriate campaigns.
{% endhint %}

<figure><img src="/files/FNMKKzl2G3NNOa4ISjHL" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/opw9BDRjWHIpEsf6GJxp" alt=""><figcaption></figcaption></figure>

**Campaign -** The campaign associated with this pixel. Setting this to "All Campaigns" will allow the pixel to be fired for orders on any campaign the affiliate is assigned to.

**Test Link -** This is a link **provided by the affiliate** to test the pixel which will redirect to your website with generated test passed values. (optional but recommended)

**Commission Type -** Cost Per Acquisition (CPA), Cost Per Click (CPC), or Cost Per Lead (CPL).

**Campaign Product -** CPA Pixels only. The available options are:

* All Offers - Fire the pixel for any campaign product with the Offer type. The pixel will fire at the time of the initial sale, and subsequent upsell data will not be included in the export.
* All Upsells - Fire the pixel for any campaign product with the Upsale type. The pixel will fire when the upsell is completed. Export data will not include the initial sale.
* All Completed Offers - The pixel will wait until the end of the [campaign upsell window](/konnektive-crm/crm-setup/campaign-setup/creating-a-campaign#creatingacampaign-otheroptions) and send a single export that includes the data for the complete order - both offer and upsales included. This means that it will NOT fire in real time.
* Specific Products - Fires in real time for sales that contain a specific Campaign Product.&#x20;

**Pixel Rule -** CPL Pixels only.&#x20;

* **Do Not Fire for Sales -** Delays firing pixels by a minimum of 20 minutes to allow the lead to turn into a sale.
* **Fire for All Partials -** Fires pixels immediately when the lead is saved.

**Pixel Type -** Postback, Image (form-code only), or Iframe (form-code only)

You will see an input that matches the above choice. Add the affiliate-provided pixel here.

**Postback Url / Image Tag / Iframe -** Place the pixel into this field

{% hint style="info" %}
**Note:** *Only Postback pixels can be used with direct API integrations. All types can be used with Konnektive form-code integrations.*
{% endhint %}

{% hint style="info" %}
Only Postback pixels can be used with the Cost Per Lead (CPL) commission type.
{% endhint %}

{% hint style="warning" %}
Pixels will **NOT** fire on prepaid cards by default
{% endhint %}

{% hint style="success" %}
***Do not forget to replace the placeholders (ex.TRANSACTION\_ID) with one of the special tokens that Konnektive has available!***

**Available Tokens:**

* **\[orderId]** – represents the orderId (often TRANSACTION\_ID)
* **\[orderTotal]** – represents the total order amount
* **\[productTotal]** – represents the individual product/item total amount
* **\[txnTotal] -** represents the total amount for all products on a particular new sale or upsell transaction
* **\[productId]** – represents the base productId on the order
* **\[basePrice]** – represents the price of the order, not including taxes
* **\[taxTotal]** – represents the total taxed amount on the order
* **\[c1]**, **\[c2]**, **\[c3]**, **\[c4]**, **\[c5]** – represents the passed values (sourceValues1-5)
  * *c1, c2, and c3 are default passed values in an affiliate profile. You may add up to 5 total passed values, and you may rename the values as you would like. If you rename the values, the token inside the pixel content must exactly match the new value names.*
* **\[emailAddress]** – represents the customer’s email address
* **\[phoneNumber]** - represents the customer’s phone number
* **\[commissionAmount]** - The step1\_commission or step2\_commission of an order, depending on if the order is an offer or an upsell, respectively.
* **\[couponCode]** - The couponCode used in the order.
* **\[insuranceCharged]** - If using a plugin like InsureShip, this token will show how much the customer was charged for shipping insurance.
* **\[profileName]** - Name of the shipping profile used with the order.
  {% endhint %}

{% hint style="warning" %}
If you need to fire **both an image pixel and an iframe pixel** on the main offer (step 1), add the HTML for both pixels into a single pixel configuration.

It is not currently possible to fire a postback and image pixel simultaneously. In most cases however, you can ask your affiliate network to provide a postback pixel replacement for an image pixel.
{% endhint %}

After you add your pixels, you will be able to see them listed under the Pixels the table.

<figure><img src="/files/Fo37YkHjBQevJB5YRslT" alt=""><figcaption></figcaption></figure>

***

### Test a Pixel <a href="#affiliatepixels-testapixel" id="affiliatepixels-testapixel"></a>

Open the Affiliate Test Link in a new window or tab and place a test order using the Konnektive test card (0000000000000000 with CVV 100 and any current or future expiration date).

Once you submit the order, find that completed order in the CRM and view the **Order Summary page** and click **"View Details"** in the Details panel next to the Pixels label.

<figure><img src="/files/vnYBMJqb2xwbYQAl2nih" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/IcRoiElepG1E5Ybq1gqg" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/EOYTPAg5xiUPLKw8bBYR" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
The Konnektive test card will fire pixels, but orders placed with the test card will not display in the Affiliate Report.
{% endhint %}

{% hint style="info" %}
The Pixels detail button will ONLY display here if Konnektive fired a pixel.

If you are having issues with seeing the pixels fire, please view our [Troubleshooting CPA Pixels](/konnektive-crm/crm-setup/affiliate-setup/affiliate-pixels/testing-and-troubleshooting-cpa-pixels) article.
{% endhint %}


# Testing and Troubleshooting CPA Pixels

This article will walk you through how to test/troubleshoot your CPA affiliate pixels.

* [Check Affiliate Profile Setup](#testingandtroubleshootingcpapixels-checkaffiliateprofilesetup)
* [Configure APIs on the funnel](#testingandtroubleshootingcpapixels-configureapisonthefunnel)
* [Place a Test](#testingandtroubleshootingcpapixels-placeatest)
* [Check Results](#testingandtroubleshootingcpapixels-checkresults)
* [If the pixel did not fire](#testingandtroubleshootingcpapixels-ifthepixeldidnotfirepixel-didnt-fire)
* [Pixel Flowchart](#testingandtroubleshootingcpapixels-pixelflowchart)

{% hint style="info" %}
What you’ll need:

* Campaign Name or Id
* Affiliate Name or Id
  {% endhint %}

***

### Check Affiliate Profile Setup <a href="#testingandtroubleshootingcpapixels-checkaffiliateprofilesetup" id="testingandtroubleshootingcpapixels-checkaffiliateprofilesetup"></a>

Navigate to **CRM → Affiliates** and edit the affiliate profile to view the campaigns and pixels that have been assigned.

* The affiliate must be added to the campaign that their traffic is running to.
* There should be a CPA pixel added into the pixels section for that campaign.

If the affiliate is not [assigned to a campaign](/konnektive-crm/crm-setup/affiliate-setup/adding-and-editing-affiliates) or you do not have a [CPA pixel set up](/konnektive-crm/crm-setup/affiliate-setup/affiliate-pixels), do this now.

In the **Pixels** tab -

* Do you have a pixel for the appropriate campaign? If you do not, do this now.
  * Is it a Main Offer Pixel (only fires after Import Order) or Upsell Pixel (only fires after Import Upsell)? *Note: An affiliate can only have one pixel for the main checkout and one for each upsell per campaign*
  * Is the pixel set up for a Specific Product? *Note: This will fire only if the campaign product ID is purchased as an upsell*
* Run a quick eye test
  * Commission Type: CPA
  * Pixel Type: Must be Postback for Direct API integrations
  * Content: No typos and correct use of tokens

<figure><img src="/files/K0autzySTH5i09HXMzwD" alt=""><figcaption></figcaption></figure>

Please see [this article](/konnektive-crm/crm-setup/affiliate-setup/affiliate-pixels) for more information on adding your pixel.

{% hint style="success" %}
Confirm that:

* Affiliate is assigned to the appropriate campaign
* Pixel is created properly (including campaign)
* Pixel content is accurate
  {% endhint %}

***

### Configure APIs on the funnel <a href="#testingandtroubleshootingcpapixels-configureapisonthefunnel" id="testingandtroubleshootingcpapixels-configureapisonthefunnel"></a>

#### **Add Import Click API**

If you have not already, have your developer implement the [Import Click API ](https://apidocs.konnektive.com/#834b3843-dd86-40b5-82f0-85a3384fbcfd)call on your funnel and follow our [Suggested API Flow](/api-documentation/api-documentation/recommended-api-flow) documentation. This will store the passed values to the session allowing you to track clicks coming from the affiliate. If the customer completes the sale, those passedValues are used to fire any pixels and can also be used within your pixel content.

{% hint style="warning" %}
To store the passed values to a session before a sale is made, the Import Click call must pass the requestUri **(containing the affId and passedValues)** as well as the **campaignId** that the pixel is configured for.
{% endhint %}

{% hint style="success" %}
The very first Import Click call for a session will return a sessionId. Be sure this sessionId is being passed on the subsequent API calls for that customer’s order session.
{% endhint %}

\
**Add affId and sourceValue1-5 to Import Lead/Import Order API**

If you would like, you can also pass the affId and sourceValues on the Import Lead and/or Import Order API request.

***

### Place a Test <a href="#testingandtroubleshootingcpapixels-placeatest" id="testingandtroubleshootingcpapixels-placeatest"></a>

Run a test using the **Affiliate Test Link.**

* Open the affiliate’s test link in a new window or tab
* Check if the generated affiliate values are present in the URL string

Place an order using the Konnektive test card (0000000000000000 with cvv 100 and any current/future expiration date)

***

### Check Results <a href="#testingandtroubleshootingcpapixels-checkresults" id="testingandtroubleshootingcpapixels-checkresults"></a>

**Navigate to Reports → Customers → Order Details to find your test order**

* Check the **Source** and **Campaign** columns to immediately see if right campaign and affiliate were linked to order. If the source or campaign are incorrect, please [go to this section](#testingandtroubleshootingcpapixels-ifthepixeldidnotfirepixel-didnt-fire).

<figure><img src="/files/Tpx2P6TwEjnBJlPagYgY" alt=""><figcaption></figcaption></figure>

**Click the customer’s name to go to their Customer Profile page**

* Check the source values (under **Other Info**)
  * Does the campaign and source values line up with the passed values set for the affiliate and those that you saw created for the tracking string by the test link? If not, please [go to this section](#testingandtroubleshootingcpapixels-ifthepixeldidnotfirepixel-didnt-fire).

<figure><img src="/files/ONdiSdOuW6ehTlOKMt9w" alt=""><figcaption></figcaption></figure>

**Click on the customer’s orderId to go to the Order Details page**

* Click **View Details** next to the **Pixels** label inside the **Details** panel.
  * What is the response?
  * If testing an upsell pixel, check the **campaign product IDs**.
  * Ask the affiliate what they are seeing on their end and what that response means.
  * Sometimes the affiliate does not allow duplicate pixel tests. In this scenario you will need to ask the affiliate for a new test link.
* If checking a non-test card order, is the credit card marked as prepaid?
  * No CPA pixels will fire for orders placed using a prepaid card.

<figure><img src="/files/DIrWyQtNb8hPxXh7GePO" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Confirm that:

* The pixel fired
* The pixel content what you/the affiliate expected
  {% endhint %}

***

### If the pixel did not fire <a href="#testingandtroubleshootingcpapixels-ifthepixeldidnotfirepixel-didnt-fire" id="testingandtroubleshootingcpapixels-ifthepixeldidnotfirepixel-didnt-fire"></a>

If the affiliate info or campaign is not correct then the pixel will not fire. Look at the API logs **(Admin → Logs → API tab)** to confirm which affiliateId, campaignId, and productId were sent in your Import Lead and/or Import Order call.

<figure><img src="/files/cKoSBc6bOuwkf91aLKzM" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/DfkmvuI6bk4dZORE0fTv" alt=""><figcaption></figcaption></figure>

If any of these do not match how a pixel is setup, then a pixel will not fire.

**After you determine the issue and deploy a fix, place a new test and check the results again.**

***

### Pixel Flowchart <a href="#testingandtroubleshootingcpapixels-pixelflowchart" id="testingandtroubleshootingcpapixels-pixelflowchart"></a>

{% file src="/files/abgKPS5FZrBEXyqUmb5D" %}


# Testing CPC Pixels

This article will walk you through how to test your CPC pixel.

* [Check Pixel Setup](#testingcpcpixels-checkpixelsetup)
* [Implement Import Click API on Funnel](#testingcpcpixels-implementimportclickapionfunnel)
* [Place a Test](#testingcpcpixels-placeatest)

***

### Check Pixel Setup <a href="#testingcpcpixels-checkpixelsetup" id="testingcpcpixels-checkpixelsetup"></a>

Before placing your first test, please ensure your pixel is setup properly by referring to [this article](/konnektive-crm/crm-setup/affiliate-setup/affiliate-pixels). The affiliate must be added to the campaign that the traffic is running to and there should be a CPC pixel added into the Pixels section of the affiliate profile.

<figure><img src="/files/GAk9WGF64FW5h7V76LSn" alt=""><figcaption></figcaption></figure>

Make sure the Pixel Content is correct, including proper use of the available pixel tokens.

### Implement Import Click API on Funnel <a href="#testingcpcpixels-implementimportclickapionfunnel" id="testingcpcpixels-implementimportclickapionfunnel"></a>

If you have not already, have your developer implement the [Import Click API ](https://apidocs.konnektive.com/?version=latest#834b3843-dd86-40b5-82f0-85a3384fbcfd)call on your funnel and follow our [Suggested API Flow](/api-documentation/api-documentation/recommended-api-flow) documentation.

The very first Import Click call made in the session will fire the CPC pixel.

{% hint style="warning" %}
To make the CPC pixel fire, the Import Click call must pass the requestUri **(containing the affId and passedValues)** as well as the **campaignId** that the pixel is configured for.
{% endhint %}

Here is an example of an Import Click call which fired a CPC pixel:

<figure><img src="/files/ArTY78H9agnhkvyvcILf" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Pass the returned sessionId on all subsequent API calls for this customer’s session.
{% endhint %}

### Place a Test <a href="#testingcpcpixels-placeatest" id="testingcpcpixels-placeatest"></a>

Now that you have the CPC pixel added and Import Click is implemented on your pages - To test you can simply click on the test link for that affiliate. Once the page loads, check with your affiliate to see if they saw the pixel fire.


# Affiliate Commissions

If you have not yet created an affiliate, please see our [Adding and Editing Affiliates](/konnektive-crm/crm-setup/affiliate-setup/adding-and-editing-affiliates) article.

From inside the **Campaign Edit Page** of an e-commerce campaign, click the **Affiliate tab** and then click the green **+ button**.

<figure><img src="/files/sWoZMcRdJfG67S2H6rIn" alt=""><figcaption></figcaption></figure>

Select which **Affiliate** you want to add to the campaign and set commission. Choose to pay commission as a flat amount per sale or a percent of the product price. Then click **"Add to Campaign"**.

<figure><img src="/files/jGZi6cKtBAeREIGk3bLT" alt=""><figcaption></figcaption></figure>

After an **Affiliate** has been added to the **Campaign**, the Affiliate will display in the table inside of the **Affiliate Panel**. To edit their commission, click the blue **Edit Button**.

<figure><img src="/files/lAeqjXY7pSpQXCtQizzR" alt=""><figcaption></figcaption></figure>

Choose to pay commission as a flat amount per sale or a percent of the product price. Then edit the commission values and click '**Update**'.

<figure><img src="/files/sa3qazZozzIdZWwhGmMC" alt=""><figcaption></figcaption></figure>

* **CPC Comm.** : This is the commission paid for each Cost Per Click pixel that fires
* **Step 1 Comm.** : This is the commission paid for each Cost Per Acquisition pixel that fires after the checkout page is submitted
* **Step 2 Comm.** : This is the commission paid for each Cost Per Acquisition pixel that fires for an upsell purchase

The affiliate panel will display a sample affiliate tracking link with placeholder passed values with which you can test tracking the affiliate.

<figure><img src="/files/G0sRsnTUhUjnWIjZyF6T" alt=""><figcaption></figcaption></figure>

\
You can run a test using the **Konnektive Test Card** (0000000000000000 and cvv 100 with any current or future expiration date), and it will show the test order linked to the Affiliate in the [Order Details Report](/konnektive-crm/reports/order-details) and on the Customer Details and Order Details pages. Test card data will not display in the [Affiliate Report](/konnektive-crm/reports/affiliate-report).


# Setting up an Affiliate User

{% hint style="info" %}
For general information on creating a user, see [this article](/konnektive-crm/admin-setup/create-a-user).
{% endhint %}

Affiliate Users can be added under **Admin -> Users**\
\
When you create the user, you will need to select the affiliate access level type. Upon doing so, you will also need to choose an affiliate profile to tie this user to.

<figure><img src="/files/eymkD02XdJLO00oUunKC" alt=""><figcaption></figcaption></figure>

Once this is done, the affiliate will be able to log in and only see stats that relate to their affiliate profile.

{% hint style="warning" %}
A username can only be used once throughout all of Konnektive's databases. If the username you are trying to use is already taken, you will need to make it unique in some fashion.
{% endhint %}


# Batch Update Affiliate Source Values

*You may find yourself in an situation where the incorrect source values were passed in on an order. This article shows you how you can update the source values on a batch of orders.*

* Select **Reports ->** then click on **Customers ->** then click on **Order Details.**
* Use the **Filters** section to find the orders that need to be updated.
* Click the green **Search button.**

<figure><img src="/files/clOQYYcM0wSFFUwyrD8E" alt=""><figcaption></figcaption></figure>

* Just above the data table, click **Show/Hide batch updates** and then click on **'Update Source Values'**. Select one or more sources and fill out any **source values**, then click **Update Batch**.

<figure><img src="/files/8dIH64d9QVt5OsFkurGV" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
You can click on the **Select** column in the results to select all results that were returned on that page.
{% endhint %}

{% hint style="warning" %}
A confirmation dialog box will appear twice. Click on the **Yes, I'm Sure button** to continue for each. This will permanently alter the selected records and cannot be undone. If you want to alter the records again, you will have to perform another batch update.
{% endhint %}

Once the batch update is complete, the updated **Source Values** will be shown across all reports.


# General External Affiliate Software/Network Setup

If you are using an external affiliate network/software such as Everflow, Cake, Voluum or Tune to manage your affiliates, you will typically want to use the CRM’s affiliate system to facilitate the tracking of clicks, leads and sales into that software. Placing the conversion pixels/postbacks within the affiliate profile makes it much easier for you to manage your affiliates within your CRM.

The sections below will walk you through setting up and testing an external affiliate network/software.

* [CRM Setup](#crm-setup)
* [Website Setup](#website-setup)
  * [Konnektive Form-Code](#checkoutchamp-funnel-builder)
  * [Direct API](#direct-api)
* [Testing](#testing)
* [Reporting](#reporting)
* [Publishers](#publishers)
* [Additional Specific Software Documentation](#additional-specific-software-documentation)

***

## CRM Setup

Start by creating an [affiliate profile](/konnektive-crm/crm-setup/affiliate-setup/adding-and-editing-affiliates) named as the affiliate software you are using.\
\
Next, edit that new affiliate profile and [set one of the Passed Values](/konnektive-crm/crm-setup/affiliate-setup/affiliate-tracking-link-string) to be the publisher value (and another to be the sub affiliate value if needed for internal tracking). You can add up to 5 passed values allowing you to use the other 3 for other tracking values, such as transactionId, clickId, cid, etc.

Once the passed values configured, take the tracking string you see above the Passed Values section and use this to create the links for your affiliates.

{% hint style="success" %}
**Example:**

Landing Page: `https://www.yourdomain.com/`

\+

Tracking String: `?affId=6F422330&c1=[c1]&c2=[c2]&c3=[c3]`

\=

`https://www.yourdomain.com/?affId=6F422330&c1=[c1]&c2=[c2]&c3=[c3]`

&#x20;

A properly configured Tracking URL will look like this:

`https://www.yourdomain.com/?affId=6F422330&c1=46354&c2=75956&c3=e7bb884496bb444cbfd94541c683dZ90`

Notice how all of the hard bracket values after the equal signs are replaced with real values.
{% endhint %}

The last step of the CRM setup is to [create the conversion pixel/postback](/konnektive-crm/crm-setup/affiliate-setup/affiliate-pixels). This will send the sale data over to the affiliate software so they can track the sales on their end.

***

## Website Setup

Follow the relevant instructions below depending on if you are using the Funnel Builder or Direct API:

### Konnektive Form-Code

As long as the affId and passed values are inside the URL, these will be stored to the click and also the lead or sale that occurs.

### Direct API

Send the tracking link into the requestUri on the first [Import Click](https://apidocs.konnektive.com/#834b3843-dd86-40b5-82f0-85a3384fbcfd) call that is made. This API call should be made once the customer lands on that first page of the funnel. The response from this API request will return a sessionId. Pass this sessionId on all subsequent API calls for the customer so they are all connected to the same session containing the affiliate parameters. Please view our [Suggested API Flow](/api-documentation/api-documentation/recommended-api-flow) article for more information on using the API

You can also parse the affId and passed values and send them into the Import Lead or Import Order API request.

{% hint style="warning" %}
If your affiliate software requires a transactionId, clickId, cid, etc. to be sent back to them on the conversion pixel/postback, then they will likely need you to place a script on the page that the customers will be landing on. This script would be reaching out to the affiliate software to acquire the needed ID, and including that ID on the conversion pixel/postback helps the affiliate software link the sale to a click.

For either the Direct API or the Konnektive Form-Code, this script should occur before the Import Click API is called, this way you can include the ID within the requestUri - which is the parameter the CRM will read that value from.
{% endhint %}

***

## Testing

As long as you follow the instructions above and the instructions inside the pixel article, you should be able to see the pixel details on your test orders in the CRM and also the conversions on the affiliate software side. If you are having any difficulties getting pixels to fire, you can follow our [Troubleshooting CPA Pixels](/konnektive-crm/crm-setup/affiliate-setup/affiliate-pixels/testing-and-troubleshooting-cpa-pixels) article to see what might be missing from the configuration.

***

## Reporting

When viewing the Affiliate Report, the sales will will be displayed under each affiliate profile that you have created.\
\
You can click the green arrow next to each source to expand and see all of the publisher values who contributed to the data being displayed. Each publisher can then be expanded once more to view the sub affiliate values that have been passed in within the date range.

<figure><img src="/files/U8qzRVtRiz5wSnsGFfmj" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/6twFkS1SKeQM1ER7nPYt" alt=""><figcaption></figcaption></figure>

On the Order Details and Transaction Details report, you can filter by a publisherId and/or subAffiliateId after you select the main affiliate profile on the “Affiliate” filter.

<figure><img src="/files/HaaQab06cxpdxuDqz4po" alt=""><figcaption></figcaption></figure>

***

## Publishers

The Publishers tab on the affiliate profile shows all **publisher** values received for this affiliate.

<figure><img src="/files/kFiMf08vuO2yktOiKp8A" alt=""><figcaption></figcaption></figure>

You can disable publishers if you think they are sending bad traffic. Orders attached to disabled publishers will not be processed and instead will be declined with the message "Affiliate PUB-VAL blacklisted." with PUB-VAL in this example being the publisher value.

<figure><img src="/files/qvt7HQdwAGni00bshcKr" alt=""><figcaption></figcaption></figure>

Disabled Publishers can be re-enabled.

***

### Additional Specific Software Documentation <a href="#additional-specific-software-documentation" id="additional-specific-software-documentation"></a>

[Everflow Integration](/konnektive-crm/admin-setup/plugins/affiliate-systems/everflow-integration)

[Everflow](/konnektive-crm/admin-setup/plugins/affiliate-systems/everflow-integration/everflow)


# Facebook Pixel Setup

**Creating a Facebook pixel**

Go to your [Pixels](https://www.facebook.com/login.php?next=https%3A%2F%2Fwww.facebook.com%2Fads%2Fmanager%2Fpixel%2Ffacebook_pixel) tab in Events Manager. Click Create a Pixel.

Click Create in the box that appears to finish creating your pixel. Add the Facebook pixel to your website Once you've created your pixel, you're ready to put the Facebook pixel code on your website. For instructions on how to do so, choose the statement below that best describes how you make updates to your website's code:

#### **Someone else makes changes to my website** <a href="#facebookpixelsetup-someoneelsemakeschangestomywebsite" id="facebookpixelsetup-someoneelsemakeschangestomywebsite"></a>

If someone else updates the code in your website, follow these steps to email them instructions to set up the Facebook pixel on your site.

1. Go to the Pixels tab in Events Manager.
2. Click **Set up Pixel**.
3. Click **Email Instructions to a Developer**.
4. Enter the recipient’s email address.
5. Click **Send** at the bottom of the page.

#### **I update my website's code** <a href="#facebookpixelsetup-iupdatemywebsitescode" id="facebookpixelsetup-iupdatemywebsitescode"></a>

1. Go to the Pixels tab in Events Manager.
2. Click **Set up Pixel**.
3. Click **Manually Install Pixel Code Yourself**.
4. Go to your website's code and find the header of your website.
5. Copy the entire code and paste it in the header of your website. Paste the code at the bottom of the header section, just above the closing head tag.
6. Optional: Click to toggle on Automatic Advanced Matching.
7. Click **Send Test Traffic** after placing the code on your website to make sure your pixel's working properly. If your status says "Active", your base code has been installed correctly. This can take several minutes to update.

After you've created your pixel, you can follow the onscreen instructions to set up events on your website.

#### **My site uses a tag manager or is hosted on a popular website platform** <a href="#facebookpixelsetup-mysiteusesatagmanagerorishostedonapopularwebsiteplatform" id="facebookpixelsetup-mysiteusesatagmanagerorishostedonapopularwebsiteplatform"></a>

You can use a partner integration to set up your pixel without having to edit your website's code.

1. Go to the **Partner Integrations** tab in **Events Manager**.
2. Select your platform or tag manager.
3. Click **Connect Account**.
4. Follow the onscreen instructions to connect your pixel to your website.

If you don't see your platform, then check out one of the other 2 ways of setting up your pixel.

## **Event Setup** <a href="#facebookpixelsetup-eventsetup" id="facebookpixelsetup-eventsetup"></a>

After you add the pixel base code to your website you can set up events to measure the actions you care about, like making a purchase. You can do this by [manually installing the code](https://www.facebook.com/business/help/153210695223635?helpref=faq_content) or by using the point-and-click [Event Setup Tool](https://www.facebook.com/business/help/2142172942565580?helpref=faq_content). Then, check to make sure that your pixel is working correctly using the Facebook Pixel Helper plugin or the Test Events tool in Events Manager.

## **Pixel Implementation** <a href="#facebookpixelsetup-pixelimplementation" id="facebookpixelsetup-pixelimplementation"></a>

Now that you have fully created your facebook pixel, you now need to implement the facebook pixel code to your lander page.


# Fulfillment


# Add and Editing Fulfillment House

**Adding a New Fulfillment House**

To add a **Fulfillment House** *select* **'Admin'** and then **'Plugins'** from the **navigation menu**.

* Once on the [Plugins Page](https://crm.konnektive.com/admin/plugins/), *select* the **Fulfillment House Listing tab**.
* Inside the **Fulfillment House Listing tab**, you will be able see all of our **Fulfillment Company Integrations**.
* Choose your **Fulfillment Company** and then *click* **'Activate'**.

<figure><img src="/files/e3N31LM9BpdRwDPcW3EW" alt=""><figcaption></figcaption></figure>

Give the **Fulfillment House** **Account** a *Title* to be used as an *Identifier* within **Konnektive** and complete the unique fields for that company.

Next *click* '**Create**'.

<figure><img src="/files/VEnVZ0IgQUVma6YQKtaP" alt=""><figcaption></figcaption></figure>

Some fulfillment plugins may have different checkbox options, such as **OmitPhoneEmail**.

By selecting 'OmitPhoneEmail', Konnektive will not send your customer's email address and phone number to the fulfillment house. This can be used to stop the fulfillment house from sending fulfillment confirmation emails when you want your Konnektive autoresponders to send instead. However, when this checkbox is selected, your fulfillment house will not receive your customer's information and will not be able to contact them regarding their delivery.

<figure><img src="/files/ERgZIBigbbRuBjFoIEaa" alt=""><figcaption></figcaption></figure>

<br>

**Editing a New Fulfillment House**

After the **Fulfillment House** has been *added*, it will now display in the '**Enabled Fulfillment Houses**' section of the **Fulfillment House Listing Tab** . By selecting one the the fulfillment houses icons you will see the following options:

* **Go to Fulfillment Co. Website:** *This will take you to the associated fulfillment house's website.*
* **Add Another Account:** *Add another account for this fulfillment company*
* **Assign to All Products:** *Assign all base products to this fulfillment house*
* **Edit:** To edit your Fulfillment House Account Configuration, click on the *blue* 'Edit' button.
* **Delete**

<figure><img src="/files/W8FsJevyuNIiVv6raeum" alt=""><figcaption></figcaption></figure>

<br>

<br>

<br>


# Bundle Fulfillment

Bundle Fulfillment is an option in the campaign setup. This option will bundle Fulfillments that are within 96 hours of each other if the orders are from the same customer and shipped to the same address. The main purpose of this option is to save money on number of fulfillments exported to a fulfillment house.

This is very useful for Campaigns with multiple steps and recurring subscriptions which are staggered to bill on slightly different days.

**Exceptions to Bundle Fulfillment:**

* The original order will not be held back more than 96 hours.
* Reship orders will not be bundled.

### Setup for Bundle Fulfillment: <a href="#bundlefulfillment-setupforbundlefulfillment" id="bundlefulfillment-setupforbundlefulfillment"></a>

Go to CRM | Campaigns and select the Campaign you wish to apply bundle fulfillment to.

<figure><img src="/files/U8ISre4GHrPoY7jIDIbg" alt=""><figcaption></figcaption></figure>

Enable Bundle Fulfillment:

First, enable the Bundle fulfilments. Once enabled, a box will show to set the hours. Bundle fulfilments are set to a default of 96 hours until changed. When finished you can save your changes.

{% hint style="danger" %}
Max is 96 hours
{% endhint %}

<figure><img src="/files/Igz7Hln9juuSXj654gQd" alt=""><figcaption></figcaption></figure>

**Notice:** Bundle Fulfillment is tracked by Campaign so you must turn this option on for all the Campaigns that will use this option.


# COD Fulfillment

The COD Order can be located on the Customers Profile, after the COD option is selected and the order is processed.

Select **Customer**> **Fulfillment** from the *Navigation Side Bar Menu*.

This will open up the **Fulfillment** Page.

<figure><img src="/files/ZCIErBeS85SslcLOEHlB" alt=""><figcaption></figcaption></figure>

Scroll down to the *Fulfillments* section and *click* on the **Order #**.

<figure><img src="/files/LNfDqpGGaskxJgmZESks" alt=""><figcaption></figcaption></figure>

This Opens up the *Customers Order Details* page.

<figure><img src="/files/wvrI4sDP1zsIt4T67pzp" alt=""><figcaption></figcaption></figure>

To view the *COD Transaction Details* Scroll down to the **Transactions** section.

* **Type**: COD
* **Payment**: COD
* **Result**: COD Pending
* **Response**: Payment marked as COD

<figure><img src="/files/TLKFsvEoniISUsQxbuRd" alt=""><figcaption></figcaption></figure>

Under the **Transactions** section there is the **Fulfillments** section which list the customers orders.

**Notice:&#x20;*****The COD order is placed on Hold in our system until it is sent to Fulfillment. When Fulfillment gets the order the "Status" will change from "Hold to Pending".***

<figure><img src="/files/FYNVHepjJkwmVdmdE5LW" alt=""><figcaption></figcaption></figure>

In the Fulfillments section on the right side there will be a *red* **Actions Button**.

<figure><img src="/files/MXbqBXwrKCRFSoyOp40p" alt=""><figcaption></figcaption></figure>

When the order is shipped out to the customer there will be *"three"* Actions to select from.

<figure><img src="/files/y9wGBLpnd0lVZrKUYKfL" alt=""><figcaption></figcaption></figure>

#### **Click on the "*****Actions*****" Button and select from the following:** <a href="#codfulfillment-clickonthe-actions-buttonandselectfromthefollowing" id="codfulfillment-clickonthe-actions-buttonandselectfromthefollowing"></a>

**Mark COD Paid - Completes the transaction after the customers package is Delivered and COD is received.**

* A pop up box will appear, enter in the **Delivery Confirmation #** received from *Fulfillment*.
* Enter in the *Date*.
* *Click* on the **Mark Delivered** Button to submit this Action.

**Notice: This changes the status of the order to "Complete" and the transaction response to "Success".**

<figure><img src="/files/1FxPARLZnTKJEQhWSMDX" alt=""><figcaption></figcaption></figure>

**Mark COD Undelivered - A pop up box will appear, under status there is a drop down with three options:**

* **Scheduled for Reattempt -** Customer was not available the Shipping Company will make another attempt to deliver the package to the customer. - Order will remain COD Pending. Transaction will soft decline. Fulfillment will remain in pending status.
* **Scheduled for Pickup -** Customer requested to pick up package from shipping facility. - Order will remain COD Pending. Transaction will soft decline. Fulfillment will remain in pending status.
* **Declined -** Customer declined the order. Order will change to Declined status. Transaction will hard decline. Fulfillment will cancel.

<figure><img src="/files/jUZQynTCknsjpPiF6pkg" alt=""><figcaption></figcaption></figure>

#### **Blacklist** <a href="#codfulfillment-blacklist" id="codfulfillment-blacklist"></a>

You can blacklist for COD orders only by checking the **Blacklist for Cash on Delivery (COD) Only** box when you blacklist a customer or create a blacklist entry.

<figure><img src="/files/zci0rRIN1wZlcapphNp7" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/LrSf7pq2579WfRWpIoTn" alt=""><figcaption></figcaption></figure>

<br>


# Edit Fulfillment Items

To enable this functionality, the CRM account must be set to **Allow Fulfillment Product Updates**.

This can be set by going to CRM | Account and enabling the setting in the Additional Options section.

<figure><img src="/files/P5RAiqe4mmQyk82hCKVR" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/tiTE8j4YT1OT5wL4PBwp" alt=""><figcaption></figcaption></figure>

Once this has been enabled, when an order has been placed for a product which is Marked Shippable on the campaign and is fulfilled to a valid fulfillment house, a new option Edit will display on the Fulfillment actions menu on the customer’s order:

<figure><img src="/files/w4p2Kz8jAjmt8UbFL2p3" alt=""><figcaption></figcaption></figure>

When Edit is selected, the purchased product quantity can be modified and/or products can be added to the fulfilment.

<figure><img src="/files/zw25P9RPbudsLR597RKq" alt=""><figcaption></figcaption></figure>

By selecting *Add Product*, all campaign products will be listed in the drop down menu and the specific product can be selected and the quantity can be specified. To remove a product from the order, set the Product Qty field = 0.

Editing the quantity in the fulfillment edit window will place the true quantity you want shipped out. This quantity value ignores base product quantity value.

If you have any further questions, please reach out to your account manager!


# Fulfillment Batch Update

&#x20;Inside the CRM, go to **Customer** >**Fulfillment**:

<figure><img src="/files/0gcBLYelyxwXzMkMF4jY" alt=""><figcaption></figcaption></figure>

Choose your filters for your search.

**Notice:** If you are trying to reship failed fulfillment, you will filter to orders in Failed status.

* **Date Range**
  * **Date Created** - The date the fulfillment was created
  * **Date Shipped** - The date the fulfillment was shipped
  * **Date Delivered** - The date the fulfillment was delivered
  * **Date Returned** - The date the fulfillment was returned
* **Order Id**: The Order Id for the fulfillment
* **Fulfillment Status**
  * **Hold**: Every order starts in this status. If you see it in a hold status longer than the fulfillment delay please contact Konnektive support.
  * **Pending**: The fulfillment house has received the order
  * **Pending Shipment**: A tracking number has been assigned to the package and is ready to be picked up by the carrier.
  * **Shipped**: Fulfillment has shipped the order
  * **Delivered**: The order was delivered to the customer
  * **Cancelled**: The fulfillment was cancelled
  * **RMA Pendin**g: Awaiting returned merchandise
  * **Returned**: Merchandise was received
  * **Failed**: The fulfillment failed and needs to be reshipped
  * **Freeze**: The fulfillment house is out of stock but once they have more quantity they will ship
* **Phone Numbe**r: The number used on the order
* **RMA**: Returned merchandise tracking number
* **Company**: The fulfillment company that shipped the order
* **Campaign**: The campaign the order came through
* **Email Address**: The email used on the order
* **Tracking Number**: The tracking number associated with the order
* **First Name**: The first name used on the order
* **Last Name**: The last name used on the order
* **Company Name**: The company name used on the order
* **Address**: The address that was used on this order
* **City**: The city used on the order
* **State**: The state used on the order
* **Country**: The county that was used for the order
* **Postal Code**: The postal code used on the order
* **Card Last 4**: The last 4 digits of the card used on the order

Your results will populate below, and from there clicking **Show/Hide Batch Updates:**

<figure><img src="/files/2arAYUYdZ0oOxWPM3BO6" alt=""><figcaption></figcaption></figure>

**You can choose all orders by clicking Select in the table header, or individually checking the box that corresponds to the order you need to update.**

**Batch Update:**

* **Status**: To update the status of the fulfillment
  * **Hold**: Every order starts in this status. If you see it in a hold status longer than the fulfillment delay please contact Konnektive Support.
  * **Pending**: The fulfillment house has received the order
  * **Shipped**: Fulfillment has shipped the order
  * **Delivered**: The order was delivered to the customer
  * **Cancelled**: The fulfillment was cancelled
  * **RMA Pending**: Awaiting returned merchandise
  * **Returned**: Merchandised was received
  * **Failed** - The fulfillment failed and needs to be reshipped
  * **Freeze** - The fulfillment house is out of stock but once they have more quantity they will ship
* **Fulfillment Company**: If you wanted to change the fulfillment company its shipped through
* **Date Shipped**: If you wanted to change the shipped date on a customer's fulfillment
* **Date Delivered**: If you wanted to change the date the order was delivered on
* **Date Returned**: If you wanted to change the the date the product was returned
* **Reship Fulfillment**: If you wanted to reship a single or multiple fulfillment at once

Once you have finished selecting your options, click **Update Batch**.


# Fulfillment Inventory

* Navigate to **Fulfillment → Inventory Report** (Or **Reports → Fulfillment → Inventory**)

<figure><img src="/files/Dq1jGPAH2LiYc54IxB24" alt=""><figcaption></figcaption></figure>

* To add a new **stock** into your into your inventory charts *click* the *green* **+ New Stock button:**

<figure><img src="/files/V2DVK5wG71azi9Qj6fL3" alt=""><figcaption></figcaption></figure>

* A dialog box will pop up where you can input the correct information about your **fulfillment house, product SKU, and stock quantity.** Once you have entered the correct information *click* the **Create** button:

<figure><img src="/files/1igpDgh7iIoFIYLOY7rc" alt=""><figcaption></figcaption></figure>

* **Fulfillment House** : Name of the Fulfillment House with the stock
* **Product Sku** : Stock Keeping Unit
* **Stock** : Number of Items in Stock

You also have the ability to add Available Quantity inside your base products (**CRM → Products → Edit Product**)

<figure><img src="/files/YcC13SooTAuq9zXCM7IH" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
The CRM also has a task built out to automatically updateStockQuantities from our largest fulfillment providers. These include:\
\
Shiphero\
3PL\
[Fulfillment.com](http://Fulfillment.com)\
Rapid Fulfillment\
The Fulfillment Lab\
\
(ShipStation does not have this ability on their side)
{% endhint %}


# Fulfillment Status Types

\
The information below highlights the Fulfillment Statuses for any fulfillment created in Konnektive.&#x20;

**Hold** - Order has been placed but has not been sent to the fulfillment house yet.\
**Pending** - Orders that have been successfully sent to the fulfillment house.\
**Pending Shipment\*** - A tracking number for the package has been synced from the fulfillment house and is ready to be picked up by the carrier\
**Shipped** - Orders that have been shipped.\
**Delivered** - Orders that have been delivered.\
**Cancelled** - Orders that have been canceled.\
**RMA Pending** - Fulfillment is waiting to receive the returned merchandise.\
**Returned** - The order was successfully returned to fulfillment.\
**Failed** - The order failed to reach the fulfillment house.

**Recycled**: Auto attempt to resend a Failed fulfillment one time. When the fulfillment fails it will automatically be placed in the Recycled status for that sole reattempt. If failed again record will return to a Failed status.&#x20;

\*With the CarrierAPI enabled - Rather than marking a Fulfillment as Shipped once a tracking number has been assigned, we are reaching out to USPS, UPS, and FedEx carrier services to get real time tracking information for each of your fulfillment. Until we receive information from one of the above carriers that a package has shipped, the fulfillment will remain in **Pending Shipment**.

In addition, once we know that a fulfillment has been delivered to your customer, we will mark that fulfillment as Delivered in Konnektive and updating the delivered date to when we received that information form the postal carrier.\ <br>

{% hint style="info" %}
The “Tracking Number Assigned” autoresponder will send once we receive the tracking number from the fulfillment house (**Pending Shipment** status).

The “All Fulfillments” autoresponder will send once we see the order reaches **Shipped** status.
{% endhint %}

***

{% hint style="info" %}
Manually changing the fulfillment status does not push orders faster. Please allow the tasks to run their course.
{% endhint %}

<br>

<br>


# Fulfillment Summary Report

The Fulfillment Summary Report shows a visual representation of fulfillment data based on how may items that has been purchased within a range of parameters specified by the user.

<figure><img src="/files/8jQUQgBKn9UKhHVZdwPS" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/2GISnzBim9RrMJuY6Yfr" alt=""><figcaption></figcaption></figure>

#### Fulfillment Summary Parameters <a href="#fulfillmentsummaryreport-fulfillmentsummaryparameters" id="fulfillmentsummaryreport-fulfillmentsummaryparameters"></a>

The fulfillment Summary report can return data based on predefined parameters like the date range which can be showed differe nt ways

The date range can filter data based on the date the fulfillment was created, the date the item was shipped, date the item was returned or the date the item was orders. From there you can specify how much data you want to return, the quick date selectors are 1 day, 1 week, 2 weeks, 1 month, 3 months, 6 months and 1 year worth of data or you can specify a specific start date and end date.

**Refine By Order:**

The refine by order section is where you want to give parameters based on what type of data you want to see. The Parameters are Campaign, Campaign Category, Product, Company, and Fulfillment status.

#### Fulfillment Summary Table <a href="#fulfillmentsummaryreport-fulfillmentsummarytable" id="fulfillmentsummaryreport-fulfillmentsummarytable"></a>

<br>

<figure><img src="/files/5zKvZ8zM2JdeEMx9xzpe" alt=""><figcaption></figcaption></figure>

The Fulfillment Summary Table shows data based on the fulfillment status and how much revenue was generated from that product based on the parameters that was defined from the date range and refine by order section. This section will also show if the item was bundled with another item. You might have notice there are 2 tabs to choose from, by product and by campaign. The by product section is chosen by default and breaks down the data based on each individual product and their ID and the by Campaign section shows the table based on each campaign that was created also the by campaign tab has a drop down that shows how which products belong to that campaign.

#### Fulfillment Summary Chart <a href="#fulfillmentsummaryreport-fulfillmentsummarychart" id="fulfillmentsummaryreport-fulfillmentsummarychart"></a>

<figure><img src="/files/CPAqHC42mHdiieKbMDOj" alt=""><figcaption><p><br><strong>Fulfillment Summary Details</strong></p></figcaption></figure>

The fulfillment summary chart shows a visual of how much revenue generate from each item based on that items SKU number, each time you change the parameters from the date range or refine order section the chart updates.

* **ID** : Id of product or campaign
* **SKU** : SKU of product
* **Quantity** : Total product quantity per product/campaign
* **Hold** : Number of fulfillments on hold per product/campaign
* **Pending** : Number of fulfillments in pending per product/campaign
* **Pending Shipment**: A tracking number has been assigned to the package and is ready to be picked up by the carrier
* **Shipped** : Number of fulfillments shipped per product/campaign
* **Delivered** : Number of fulfillments delivered per product/campaign
* **Cancelled** : Number of fulfillments cancelled per product/campaign
* **RMA Pending** : Number of fulfillments in RMA Pending status per product/campaign
* **Returned** : Number of fulfillments in Returned status per product/campaign
* **Failed** : Number of fulfillments in Failed status per product/campaign
* **Sub Total** : Sum of the Base cost of offer for all fulfillments in row
* **Shipping** : Sum of Shipping cost of offer for all fulfillments in row
* **Sales Tax** : Sum of Sales tax applied to offer for all fullfillments in row
* **Gross Rev.** : Sum of Total amount paid for offer for all fullfillments in row
* **Refunds** : Sum of Refunds issued against product/campaign for all fulfillments in row
* **Ship Cost** : Sum of All Shipping costs for all fulfillments in row
* **Net Rev.** : Sum of (Total transactions for all fulfillments in row less shipping costs and refunds)
* **Bundled** : Number of bundles per product/campaign


# Shipping Validation

Konnektive has shipping validation built for USPS, UPS, and FedEx.\
\
When the order is in Pending Shipment status, this means we received the tracking number from the fulfillment house/software and we are running the tracking number against USPS, UPS, and FedEx to see if the order has been shipped and also to see if it has been delivered. When the CRM sees the order has been shipped and/or delivered, the status on the fulfillment record will reflect.<br>

If you feel that you do not want this functionality for any reason, you have the ability to disable the shipping validation within the fulfillment plugin.

<figure><img src="/files/bnEuGyBbdBbRLCIjOfUb" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
If this is turned off, orders will go immediately to Shipped status once we receive the tracking number.
{% endhint %}

{% hint style="info" %}
If this is turned off while current orders are in Pending Shipment status, those orders will be marked as Shipped when the task runs next.

UPS Mail Innovation

When we receive a USPS tracking number with UPS carrier code tied to it we will send that tracking number to the UPS carrier service to get an update.

Typically that happens the 2nd time a fulfillment hits the carrier API because the first time it'll most likely not have the UPS carrier code tied to it.
{% endhint %}


# Testing Fulfillment through Order Entry

After you have added your fulfillment house and assigned to your products, you can test it through Order Entry. Please refer to our Adding and Editing Fulfillment Houses article.<br>

**Step 1**: Go to the [Campaigns Page](https://crm.konnektive.com/crm/campaigns/) and add/edit a phone campaign that is designated for testing. Be sure the "List in Order Entry" option is enabled.\
\ <br>

<figure><img src="/files/vUpBcHJLGqM7a0NGls2a" alt=""><figcaption></figcaption></figure>

**Step 2**: Add or edit a campaign product and set a base product that is assigned to the new fulfillment house. Set the Gateway to one of your working gateways or create a new DUMMY GATEWAY to apply to the offer (DUMMY GATEWAY will never actually process the transaction).\
\ <br>

<figure><img src="/files/QVWz6u6OLMM2gRnNqaL8" alt=""><figcaption></figcaption></figure>

**Step 3**: Go to [Order Entry](https://crm.konnektive.com/customer/sales) and place an order on your test campaign by buying the campaign product that is assigned to the new fulfillment house.

\
\
Generally you will want to communicate with your fulfillment house that you are beginning testing. You may also want to set the shipping address as "123 NO SHIP" or something similar so the fulfillment house will notice it is a fake shipping address.

<figure><img src="/files/wfArLeeB3c0rqUqsXOC9" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
**Konnektive generated test card orders will NEVER reach the fulfillment house. Instead, you will need to test using a live card. If the offer set to the DUMMY GATEWAY then no money will actually transact.**
{% endhint %}

\
**Step 4**: You will see the fulfillment record in HOLD status. This means the order is in queue to be sent to the fulfillment house, in which the task runs once per hour.

<br>

**Step 5**: Once you see the order is in PENDING status, this means that it has successfully been sent to the fulfillment house. Please check your fulfillment portal to confirm.

If the order did not successfully send to the fulfillment house, it will display as FAILED. You can click the details button next to the failed fulfillment record to see why it failed.


# Upload Returned Orders

You can upload returned orders on the Fulfillment>Search Fulfillments page with the Import Returns button:

<figure><img src="/files/3viXPR8Pl2rrnqc3v1Kb" alt=""><figcaption></figcaption></figure>

The upload will require you to provide a CSV file in the same format as the file downloaded from the Fulfillments page. You can accomplish this by downloading the file using the “Export CSV” button, changing the status column to “RETURNED” and/or "CANCELLED" for the appropriate fulfillments, and then uploading the modified file. Fulfillments "CANCELLED" in this way will automatically cancel their corresponding continuity purchases as well.

Alternatively, you can construct your own CSV file, using the following fields:

* orderId – The order id displayed in Konnektive
* status – should be “RETURNED” or "CANCELLED"
* rmaNumber – The RMA number associated with the order (optional)


# Upload Tracking Numbers

You can upload your tracking numbers within the Customer → Fulfillment page by using the **Import Tracking** button:

<figure><img src="/files/JjLqnnZQb1yPe01sl5J3" alt=""><figcaption></figcaption></figure>

The upload will require you to import a CSV file. This can be in the same format as the file downloaded from the Fulfillment Search page. You can accomplish this by downloading the file using the **Export CSV** button, adding the tracking numbers to the designated column (Z), and then uploading the modified file after removing any rows above the column headers.\
\
Fulfillment records must be in a **HOLD** status prior to importing the file containing the tracking numbers.

Alternatively, you can construct your own CSV file, using the following fields:

* **orderId**: The orderId displayed in Konnektive
* **clientFulfillmentId**: clientFulfillmentId assigned to the order by Konnektive (Needs the column header at least, but the data can be left empty if not on hand)
* **trackingNumber**: The tracking number for the order
* **carrier**: The shipping service provider
* **method**: The shipping method used by the carrier

Sample file which can be used to build your CSV:


# Cash on Delivery setup

**The COD Order can be located on the Customers Profile Order Details page, after the COD option is selected and the order is processed.**

Select **Customer**> **Fulfillment** from the *Navigation Side Bar Menu*.

This will open up the **Fulfillment** Page.

<figure><img src="/files/5rC6idZtLegNL58Rkeyx" alt=""><figcaption></figcaption></figure>

Scroll down to the *Fulfillments* section and *click* on the **Order #**.

<figure><img src="/files/77kgh256sMBEI1i7xMaA" alt=""><figcaption></figcaption></figure>

This Opens up the *Customer Order Details* page.

<figure><img src="/files/5lY0Am5rGBoSyJkpsG3h" alt=""><figcaption></figcaption></figure>

To view the *COD Transaction Details* Scroll down to the **Transactions** section.

* Type: COD
* Payment: COD
* Result: COD Pending
* Response: Payment marked as COD

<figure><img src="/files/2bf2osJhFqxmPDngIawn" alt=""><figcaption></figcaption></figure>

Under the **Transactions** section there is the **Fulfillments** section which list the customers orders.

**Notice:&#x20;*****The COD order is placed on Hold in our system until it is sent to Fulfillment. When Fulfillment gets the order the "Status" will change from "Hold to Pending".***

<figure><img src="/files/Rre5HCepRwqtUCsRH1u3" alt=""><figcaption></figcaption></figure>

In the Fulfillments section on the right side there will be a *red* **Actions Button**.

<figure><img src="/files/JVyCyvYMbT3CzbBZdEwy" alt=""><figcaption></figcaption></figure>

When the order is shipped out to the customer there will be *"three"* Actions to select from.

<figure><img src="/files/5Y0MYrRAKIRBJ1c221Gk" alt=""><figcaption></figcaption></figure>

#### **Click on the "*****Actions*****" Button and select from the following:** <a href="#cashondeliverysetup-clickonthe-actions-buttonandselectfromthefollowing" id="cashondeliverysetup-clickonthe-actions-buttonandselectfromthefollowing"></a>

**Mark COD Paid - Completes the transaction after the customers package is Delivered and COD is received.**

* A pop up box will appear, enter in the **Delivery Confirmation #** received from *Fulfillment*.
* Enter in the *Date*.
* *Click* on the **Mark Delivered** Button to submit this Action.

**Notice: This changes the status of the order to "Complete" and the transaction response to "Success".**

**Mark COD Undelivered - A pop up box will appear, under status there is a drop down with three options:**

* **Scheduled for Reattempt -** Customer was not available the Shipping Company will make another attempt to deliver the package to the customer. - Order will remain COD Pending. Transaction will soft decline. Fulfillment will remain in pending status.
* **Scheduled for Pickup -** Customer requested to pick up package from shipping facility. - Order will remain COD Pending. Transaction will soft decline. Fulfillment will remain in pending status.
* **Declined -** Customer declined the order. Order will change to Declined status. Transaction will hard decline. Fulfillment will cancel.

#### **Blacklist** <a href="#cashondeliverysetup-blacklist" id="cashondeliverysetup-blacklist"></a>

You can blacklist for COD orders only by checking the **Blacklist for Cash on Delivery (COD) Only** box when you blacklist a customer or create a blacklist entry.


# C.O.D. Order Entry Option

**C.O.D option Customer Service/Order Entry**

* *Select* **Customer** > then go to **Order Entry**.
* On the Order Entry page *Select* the *Campaign* from the drop-down menu.

<figure><img src="/files/srYrXtR3jwekhV5rF9Az" alt=""><figcaption></figcaption></figure>

* Select Cash On Delivery option in the Payment Information section. Continue filling out the Customers info and then Process Order.

**Note:&#x20;*****Once the sale is Processed the Status will say "COD Pending" on the "Customers Order Details" page.***

<figure><img src="/files/Hukm2dRaLhCfxOLPhArk" alt=""><figcaption></figcaption></figure>

<br>


# Gateway Setup


# Gateway List

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiAC0G99SjXjSv2GM5PAE%2Fuploads%2FmXbotFxrnipUp8G9afH5%2FKonnektive%20Gateway%20List.mp4?alt=media>" %}

*Select* **Gateways >** then *click* on **Gateway List**

<figure><img src="/files/f9m3f6w7jn8GZw5YuJoR" alt=""><figcaption></figcaption></figure>

The **Gateway List** screen displays information about all of the gateways you have setup in the CRM.

The list provides quick summaries of important **Merchant Reporting Metrics:**

* **ID:** The id of the gateway account within the CRM
* **Category**: The category the gateway is assigned to
* **Title:** Your display name for the account
* **Today:** Transaction volume against the gateway for the current date
* **MTD:** Transaction volume against the gateway for the current month
* **Cap:** Total transaction volume allowed on the gateway
* **Left:** The amount of cap remaining on the mid after taking out mtd billings
* **DR:** The discount rate set for the gateway
* **RAR:** The reserve account rate set for the gateway
* **Txn Fee:** The gateway and processor transaction fees
* **CB:** The chargeback rate thresdhold for the gateway
* **Ach:** checked if ach payments are allowed on the gateway
* **PP:** checked if blocking prepaid cards on the gateway
* **M:** checked if Mastercard is allowed on the gateway
* **V:** checked if Visa is allowed on the gateway
* **A:** checked if American Express is allowed on the gateway
* **D:** checked if Discover is allowed on the gateway


# Adding a Gateway

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiAC0G99SjXjSv2GM5PAE%2Fuploads%2FmXbotFxrnipUp8G9afH5%2FKonnektive%20Gateway%20List.mp4?alt=media>" %}

This article will provide instructions on how to set up your gateways and gateway categories.

### Add a Gateway Category <a href="#addingagateway-addagatewaycategory" id="addingagateway-addagatewaycategory"></a>

You will want to categorize your gateways by the corp they were acquired by. This is necessary to prevent cross-corping.

* *Select* **Gateways →** **Gateway List** then click the green **+ Category** button.

<figure><img src="/files/1HWwJWY6sOZkpRLcUS7v" alt=""><figcaption></figcaption></figure>

* A pop up box will appear. Put the new category name in the field and click on the green **Create Category** button.
  * Once you create the categories, you can use the Category dropdown at the top of the gateway list to filter for a specific category.

<figure><img src="/files/3XU0rJEP2wx4sMslsjJ7" alt=""><figcaption></figcaption></figure>

### Create a New Gateway <a href="#addingagateway-createanewgateway" id="addingagateway-createanewgateway"></a>

* *Select* **Gateways → Gateway List** then click the smaller green **+** button.

<figure><img src="/files/z3QsRIg4SwGHAWcK2aRI" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/HA6UmsO5r0tNAdGzJHkt" alt=""><figcaption></figcaption></figure>

* Enter the gateway information into the **General Details** section.

{% hint style="info" %}

* **Title -** A name or identifier for the gateway.
* **Category -** The category that this gateway corresponds to.
* **Gateway -** The gateway.
  {% endhint %}

{% hint style="danger" %}
Gateways will also have additional inputs. These inputs will be different depending on the gateway, but at least one will relate to required **credentials** as provided by the merchant provider. For more information on your specific gateway, please locate it in [Gateways](/konnektive-crm/gateway-setup/gateways).
{% endhint %}

* (Optional) Enter the contact information related to the Gateway in the **Customer Service** section.

{% hint style="info" %}
*Used in autoresponders*

* **Phone # -** The customer service phone number that customers should call related to the gateway.

* **Chargeback # -** The customer service phone number for chargebacks on the gateway.

* **Email -** The customer service email that customers should use related to the gateway.

* **URL -** A support web page related to the gateway.
  {% endhint %}

* (Recommended) Enter the gateway information into the **Limits** section.

{% hint style="info" %}
*Used for various calculations related to gateway costs*

* **Monthly Cap -** This is the total volume per month that is allowed to process on the gateway. The CRM can calculate your cap usage two different ways:
  * The first calculation includes only gross billings against the gateway and ignores refunds (this is default).
  * The second calculation shows net billings and includes refunds to give the net billings for the month. You can enable the second option by checking Include Refunds.

* **Discount Rate -** The discount rate associated with the processor. This a percentage of volume taken by the bank on every sale.

* **Reserve Rate -** This is a percentage on billings that the bank keeps in a rolling reserve.

* **Transaction Fee -** This is a flat rate that is charged by the gateway for each transaction.

* **Chargeback Fee -** This is a flat rate that is charged by the gateway for each chargeback.

* **RDR Fee (Visa) -** This is a flat rate that is charged by the gateway for each RDR refund. See [RDR ](/konnektive-crm/gateway-setup/rdr)for more information.

* **Ethoca Fee (Mastercard) -** This is a flat rate that is charged by the gateway for each Ethoca refund. See [Ethoca Refunds](/konnektive-crm/gateway-setup/ethoca-refunds) for more information.
  {% endhint %}

* Select the desired **Additional Options**

{% hint style="info" %}

* **Enabled -** Whether or not to allow any sales on the gateway. When this box is deselected, no sales are allowed to process against the gateway.
* **Block Prepaid Cards -** Whether or not to allow prepaid cards to process against the gateway. If checked, prepaid cards will be blocked.
* **Block Debit Cards -** Whether or not to allow debit cards to process against the gateway. If checked, debit cards will be blocked.
* **Direct Cascade Profile -** (Optional) The cascade profile used to reattempt soft declined initial transactions. See [Cascade Profiles](/konnektive-crm/gateway-setup/advanced-transaction-routing-interface-atri/cascade-profiles) for more information.
  {% endhint %}

- Select the desired **Accepted Payments**

{% hint style="info" %}

* **eCheck -** Check this if your gateway allows eCheck transactions.
* **Mastercard -** Check this if your gateway allows MasterCard Cards.
* **Visa -** Check this if your gateway allows Visa Cards.
* **AmEx -** Check this if your gateway allows American Express Cards.
* **Discover -** Check this if your gateway allows Discover Cards.
  {% endhint %}

- Enter the gateway information into the **Gateway Details** section. These are all acquired by the merchant provider.

{% hint style="info" %}

* **Descriptor -** The descriptor *as provided by the merchant provider.*
* **Mid # -** The mid number *as provided by the merchant provider.*
* **Processor -** The processor *as provided by the merchant provider.*
* **Merchant Category Code -** The merchant category code *as provided by the merchant provider.*
* **Acquirer Bin -** The acquirer bin *as provided by the merchant provider.*
  {% endhint %}

{% hint style="danger" %}
Please review all information for accuracy before creating a new gateway.
{% endhint %}

When you are finished entering your gateway information, click the green **Create Gateway** button.


# Testing Your Gateway Through Order Entry

Please review our guide on [Gateway Setup / Creation](/konnektive-crm/gateway-setup) before attempting to test your gateways through Order Entry

### Instructions <a href="#testingyourgatewaythroughorderentry-instructions" id="testingyourgatewaythroughorderentry-instructions"></a>

After you have created your gateway, you can test it by placing an order through Order Entry.

Go to the [Campaigns Page](https://crm.konnektive.com/crm/campaigns/) and add/edit a phone campaign that is designated for testing. Be sure the "List in Order Entry" option is enabled. Update to save the change.

<figure><img src="/files/6lqEy8Vzb6gxJB2khGa8" alt=""><figcaption></figcaption></figure>

Add or edit a campaign product and set the Gateway field to the new gateway you need to test.

<figure><img src="/files/WfevFa5DBtEkcv2JJVoP" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/3ENenOg0LBMOE3QWk5Z1" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/2vjHAg3e7KgwQp5iN54c" alt=""><figcaption></figcaption></figure>

Save the offer when you are finished.

***Note:*** The Qty Per Order of the product variant will override this quantity per order.

Next, go to **Customers → Order Entry** and run a live test on your test campaign by buying the campaign product that is assigned to the new gateway. **You will need to use a LIVE credit card in order to test the gateway. Test Card orders NEVER go to the gateway.**

<figure><img src="/files/7LR38taMdCgv9FlWRYso" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/ymWvlCtQKn6KhwgDhLvH" alt=""><figcaption></figcaption></figure>

You will either get a decline with a decline response from the gateway or be successfully redirected to the Completed Order page.

<figure><img src="/files/hgSQs4lrQvXHX1YlUetV" alt=""><figcaption></figcaption></figure>

If the campaign product you set up is recurring, you can go to the Purchase Details page and click Force Bill Now to test rebilling.

<figure><img src="/files/To0WKTzzIx8ez9RbqEwW" alt=""><figcaption></figcaption></figure>


# Gateway Integrations


# accept.blue

<figure><img src="/files/phUqcTUdAxsVwqgmXhxE" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
No card details are stored for merchants using accept.blue’s Payment Gateway
{% endhint %}

{% hint style="warning" %}
accept.blue will support 3rd party 3DS but not native 3DS.
{% endhint %}

Go to **Gateways >** **Gateway Integrations** and select accept.blue. Click on **+Activate**.

<figure><img src="/files/C5q4q3En1o0KJvPLdpcP" alt=""><figcaption></figcaption></figure>

Enter the following information obtained from accept.blue:

* **API\_KEY**
* **PIN**

Click the green **Create Gateway** button to save your changes and create the gateway

<figure><img src="/files/OfHHZelgXj3UhV11fpNq" alt=""><figcaption></figcaption></figure>

Once the gateway is created, it can be assigned to campaign products and start processing payments.


# Acquired


# Acquired 3DS

<figure><img src="/files/DUPh8W9nLlOjpSV0XUVd" alt="" width="338"><figcaption></figcaption></figure>

**STEP 1**

Obtain **CompanyID**, **Password** and **Hashcode** from Acquired.

&#x20;

**STEP 2**

Go to **Gateways > Gateway Integrations**

Activate the Acquired gateway tile. Enter **CompanyID**, **Password** and **Hashcode**.

<figure><img src="/files/3ueaYuYfPG1JwdQQyWtB" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/ZTszN5YL0vkPV4k7m0JM" alt=""><figcaption></figcaption></figure>

**STEP 3**

On your checkout page add the hidden input browserData inside of the same form as the card input.

`<input type="hidden" name="browserData" value="" id="browserData">`

**STEP 4**

Add this script to your page before the closing body tag.

```
<script type="text/javascript">
    const navigator = window.navigator;
    const browserData = {
        acceptHeader: 'application/json',
        userAgent: navigator.userAgent,
        language: navigator.language,
        timezone: (new Date()).getTimezoneOffset().toString(),
        colorDepth: screen.colorDepth,
        screen: {
            height: screen.height.toString(),
            width: screen.width.toString()
        },
        javaScriptEnabled: true,
        javaEnabled: navigator.javaEnabled()
    };
    document.getElementById('browserData').value = JSON.stringify(browserData);
</script>
```

**STEP 5**

Be sure your site supports standard 3DS handling

[Basic 3DS Instructions](/konnektive-crm/gateway-setup/basic-3ds-instructions)


# Acquired V2

<figure><img src="/files/DUPh8W9nLlOjpSV0XUVd" alt="" width="338"><figcaption></figcaption></figure>

**STEP 1**

Obtain **CompanyID**, **Password** and **Hashcode** from Acquired.

&#x20;

**STEP 2**

Go to **Gateways > Gateway Integrations**

Activate the Acquired gateway tile. Enter **CompanyID**, **Password** and **Hashcode**.

<figure><img src="/files/b8Fm2JVez4tQINYugbij" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/awEVQq0sz0P1e7pCnsI7" alt=""><figcaption></figcaption></figure>

**STEP 3**

On your checkout page add the hidden input browserData inside of the same form as the card input.

`<input type="hidden" name="browserData" value="" id="browserData">`

**STEP 4**

Add this script to your page before the closing body tag.

```
<script type="text/javascript">
    const navigator = window.navigator;
    const browserData = {
        acceptHeader: 'application/json',
        userAgent: navigator.userAgent,
        language: navigator.language,
        timezone: (new Date()).getTimezoneOffset().toString(),
        colorDepth: screen.colorDepth,
        screen: {
            height: screen.height.toString(),
            width: screen.width.toString()
        },
        javaScriptEnabled: true,
        javaEnabled: navigator.javaEnabled()
    };
    document.getElementById('browserData').value = JSON.stringify(browserData);
</script>
```

**STEP 5**

Be sure your site supports standard 3DS handling if enabling Secure3DS.

[Basic 3DS Instructions](/konnektive-crm/gateway-setup/basic-3ds-instructions)


# Adyen

<figure><img src="/files/IT3ZsL6DJjP6tJv5ItQ3" alt="" width="375"><figcaption></figcaption></figure>

{% hint style="info" %}
This integration uses Adyen's Classic API
{% endhint %}

**STEP 1**

**ADYEN ACCOUNT**

1. Obtain **Merchant\_Accoun**t, **API\_Key** and **API\_URL** from Adyen. The integration is using Classic API V52, so the **API\_URL** should end in /v52/. Be sure to include the ending slash.
   1. [Live Endpoints | Adyen Docs](https://docs.adyen.com/development-resources/live-endpoints#classic-payments-endpoints)
   2. The URL should be structured as: https\://**\[prefix]**-pal-live.adyenpayments.com/pal/servlet/Payment/v52/
2. Have your account set for LIVE API/PCI role, which may require submitting the Konnektive PCI documentation. Please contact your account manager if this is needed.
3. Have your account set to “immediate” capture for Sale or “delay” capture for Authorize
4. Discuss with Adyen if you need to enable recurring orders

<figure><img src="/files/1hEl7UBsxiYrSGj31CkM" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/oFg1mStbkgUmgQFVlfDw" alt=""><figcaption></figcaption></figure>

**STEP 2**

Go to Merchant >Gateway Integrations, Scroll down to Adyen and click the logo then click Activate button

<figure><img src="/files/oDccubhrCDRwvClCSMn4" alt=""><figcaption></figcaption></figure>

**STEP 3**

Fill the fields below. Select “No” on **Secure3DS** if it is for Non-3DS.

<figure><img src="/files/K3vg68cbhaYwq7LCdCFS" alt=""><figcaption></figcaption></figure>

**STEP 4**

Add the hidden input browserData inside of the same form as the card input.

`<input type="hidden" name="browserData" value="" id="browserData">`

**STEP 5**

Add this script to your page before the closing body tag.

```
Script to get browserData:
<script type="text/javascript">
    const navigator = window.navigator;
    const browserData = {
        acceptHeader: 'application/json',
        colorDepth: screen.colorDepth,
        javaEnabled: navigator.javaEnabled(),
        javaScriptEnabled: true,
        language: navigator.language,
        screenHeight: screen.height,
        screenWidth: screen.width,
        timeZoneOffset: (new Date()).getTimezoneOffset().toString(),
        userAgent: navigator.userAgent
    };
    document.getElementById('browserData').value = JSON.stringify(browserData);
</script>
```

**STEP 6**

For 3DS your checkout page must support the standard 3DS workflow

[Basic 3DS Instructions](/konnektive-crm/gateway-setup/basic-3ds-instructions)


# Adyen V2

<figure><img src="/files/ZD4SNHUD4y6sGAFG0IUj" alt="" width="375"><figcaption></figcaption></figure>

{% hint style="info" %}
This integration uses Adyen's Checkout API v71
{% endhint %}

{% hint style="info" %}
Adyen supports credit cards and the following [alternate payment methods](/konnektive-crm/gateway-setup/gateways/adyen-v2/adyen-alternate-payments)

* Afterpay
* Bancontact
* iDEAL
* Kakao Pay
* Klarna
* MobilePay
* PayByBank
* Riverty
* SEPA
* Swish
* Trustly
* Google Pay
* Apple Pay
  {% endhint %}

**STEP 1**

**ADYEN ACCOUNT**

1. Obtain **merchantAccount** and **apiKey** from Adyen
2. Obtain **liveUrlPrefix** from Adyen. **liveUrlPrefix** is a string composed of a hex-encoded random part and your company name. Get the prefix from your [live Customer Area](https://ca-live.adyen.com/) under Developers > API URLs > Prefix.
3. Enable the “API PCI Payments” role for the API key (Contact the Adyen support to enable this feature). This may require submitting the Konnektive PCI documentation. Please contact your account manager if this is needed.
4. Under Account Settings set your account to “immediate” capture delay.
5. In your Customer Area, go to Developers > Additional data.
   1. Enable the following settings
      1. Acquirer result
      2. Raw acquirer result
      3. Recurring details
      4. Network transaction reference
      5. 3D Secure (optional)
6. Setup a standard webhook. This is required for final resolution of refund and capture requests.
   1. **Server configuration**
      1. URL: <https://api.konnektive.com/billers/adyenv2/notification/>
      2. Method: JSON
      3. Encryption protocol: TLSv1.2
   2. **Security**
      1. HMAC: Generate a new key and added to the **hmacKey** gateway field in Step 2.
   3. **Events**
      1. CAPTURE
      2. REFUND
      3. REFUND\_FAILED
      4. CANCEL\_OR\_REFUND
      5. AUTHORISATION (if using [Alternate Payments](/konnektive-crm/gateway-setup/gateways/adyen-v2/adyen-alternate-payments))
      6. EXPIRE
      7. CANCELLATION

&#x20;

**STEP 2**

In the CRM, go to Gateways > Gateway Integrations. Find AdyenV2 and click the tile. Then click the <mark style="color:green;">**+Activate**</mark> button.

<figure><img src="/files/87o9f9cww6f5Uf9wrfZn" alt="" width="375"><figcaption></figcaption></figure>

**STEP 3**

Fill the fields obtained in Step 1.

Select “No” on **secure3DS** if it is for Non-3DS. Use **force3DS** to require 3DS from Adyen.

<figure><img src="/files/bjdsQjWsiKUmD2C8YiPi" alt="" width="375"><figcaption></figcaption></figure>

**STEP 4**

Add the hidden input browserData inside of the same form as the card input.

`<input type="hidden" name="browserData" value="" id="browserData">`

&#x20;

**STEP 5**

Add this script to your page before the closing body tag.

```javascript
Script to get browserData:
<script type="text/javascript">
    const navigator = window.navigator;
    const browserData = {
        acceptHeader: 'application/json',
        colorDepth: screen.colorDepth,
        javaEnabled: navigator.javaEnabled(),
        javaScriptEnabled: true,
        language: navigator.language,
        screenHeight: screen.height,
        screenWidth: screen.width,
        timeZoneOffset: (new Date()).getTimezoneOffset().toString(),
        userAgent: navigator.userAgent
    };
    document.getElementById('browserData').value = JSON.stringify(browserData);
</script>
```

&#x20;

**STEP 6**

For 3DS your checkout page must support the standard 3DS workflow

[Basic 3DS Instructions](/konnektive-crm/gateway-setup/basic-3ds-instructions)


# Adyen - Alternate Payments

{% hint style="info" %}
The Adyen V2 gateway supports multiple alternative payment options

* Afterpay
* Bancontact
* iDEAL
* Kakao Pay
* Klarna
* MobilePay
* PayByBank
* Riverty
* SEPA
* Swish
* Trustly
* Apple Pay
* Google Pay
  {% endhint %}

{% hint style="danger" %}
**Disclaimers:**

No card details are stored for merchants using alternative payment options

Recurring billing/subscriptions and one-click upsells are supported on Apple Pay, Google Pay, Bancontact, Kakao Pay, Klarna, iDEAL, and SEPA. On upsells all other alternate payment methods require the consumer to go through the full checkout again.

These payments will work via Direct API. This will NOT work with Order Entry.
{% endhint %}

{% hint style="warning" %}
Make sure the appropriate payment method is enabled on your Adyen Account
{% endhint %}

**STEP 1**

Go to **Gateways** | **Gateway Integrations** and select AdyenV2. Click on <mark style="color:green;">**+Activate**</mark>. Follow instructions [here ](/konnektive-crm/gateway-setup/gateways/adyen-v2)for setup.

Click the <mark style="color:green;">**Create Gateway**</mark> button to save your changes and create the gateway. Note the ID of the gateway on the gateway list page, for use in Step 2.\ <br>

**STEP 2**

The checkout page must be secure HTTPS. A non-secured call will be rejected. Pass the following parameters on the Import Order or Import Upsale API calls

* paySource = PREPAID
* forceMerchantId = the AdyenV2 id from Step 1
* redirectsTo = the url where the browser should redirect on a successful transaction
* errorRedirectsTo = the url where the browser should redirect on a failed transaction

Then include the **prepaidType** parameter based on the payment option

* Afterpay
  * prepaidType = AFTERPAY
* Bancontact
  * prepaidType = BANCONTACT
* iDEAL
  * prepaidType = IDEAL
* Kakao Pay
  * prepaidType = KAKAOPAY
* Klarna
  * prepaidType = KLARNA
* MobilePay
  * prepaidType = MOBILEPAY
* PayByBank
  * prepaidType = PAYBYBANK
* Riverty
  * prepaidType = RIVERTY
* SEPA
  * prepaidType = SEPA\_DEBIT
* Swish
  * prepaidType = SWISH
* Trustly
  * prepaidType = TRUSTLY

{% hint style="info" %}
Your checkout and upsale pages must support standard merchant redirect handling

[Basic 3DS Instructions](/konnektive-crm/gateway-setup/basic-3ds-instructions)
{% endhint %}

{% hint style="info" %}
For more info on the api call, please refer to our [API Documentation.](https://apidocs.konnektive.com/)
{% endhint %}

**STEP 3**

Go to your Adyen account. Enter the webhook described [here](/konnektive-crm/gateway-setup/gateways/adyen-v2).


# Klarna on Adyen V2

<figure><img src="/files/sNAQU9pIheaXw419ny07" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
**Disclaimers:**

No card details are stored for merchants using Klarna’s Payment Gateway

Klarna will work for both one-time purchases and rebills.

Klarna works with landers that connect via Direct API. Klarna is not available with form-code or via Order Entry.
{% endhint %}

{% hint style="warning" %}
Make sure Klarna is enabled on your Adyen Account
{% endhint %}

**STEP 1**

Set up your Adyen V2 gateway. Follow instructions [here ](/konnektive-crm/gateway-setup/gateways/adyen-v2)for setup.

Note the ID of the gateway on the gateway list page for use in Step 2.<br>

**STEP 2**

The checkout page must be secure HTTPS. A non-secured call to Klarna will be rejected. Pass the following parameters on the Import Order or Import Upsale API call

* paySource = PREPAID
* prepaidType = KLARNA
* forceMerchantId = the AdyenV2 id from Step 1

{% hint style="info" %}
Your checkout and upsale pages must support standard merchant redirect handling

[Basic 3DS Instructions](/konnektive-crm/gateway-setup/basic-3ds-instructions)
{% endhint %}

{% hint style="info" %}
For more info on the api call, please refer to our [API Documentation.](https://apidocs.konnektive.com/)
{% endhint %}


# Afterpay on Adyen V2

<figure><img src="/files/cSzEOXZM8bey2nrkTof8" alt="" width="226"><figcaption></figcaption></figure>

{% hint style="danger" %}
**Disclaimers:**

No card details are stored for merchants using Afterpay

Afterpay will work for both one-time purchases only. Rebills are not supported at this time. Upsells are supported but the consumer must complete the checkout at Afterpay again. One-click upsells are not supported.

Afterpay works with landers that connect via Direct API. Afterpay is not available with form-code or via Order Entry.
{% endhint %}

{% hint style="warning" %}
Make sure Afterpay is enabled on your Adyen Account
{% endhint %}

**STEP 1**

Set up your Adyen V2 gateway. Follow instructions [here ](/konnektive-crm/gateway-setup/gateways/adyen-v2)for setup.

Note the ID of the gateway on the gateway list page for use in Step 2.\ <br>

**STEP 2**

The checkout page must be secure HTTPS. A non-secured call to Afterpay will be rejected. Pass the following parameters on the Import Order call:

* paySource = PREPAID
* prepaidType = AFTERPAY
* forceMerchantId = the AdyenV2 id from Step 1

{% hint style="info" %}
Your checkout and upsale pages must support standard merchant redirect handling

[Basic 3DS Instructions](/konnektive-crm/gateway-setup/basic-3ds-instructions)
{% endhint %}

{% hint style="info" %}
For more info on the api call, please refer to our [API Documentation.](https://apidocs.konnektive.com/)
{% endhint %}


# Affirm

<figure><img src="/files/QZvKPkIlBiJdzG27DCaa" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}

#### **Disclaimers:** <a href="#affirm-disclaimers" id="affirm-disclaimers"></a>

No card details are stored for merchants using Affirm's Payment Gateway

Affirm will only work for one-time purchases, it will NOT work for recurring billing/subscriptions. Affirm does not support One-click Upsells.
{% endhint %}

{% hint style="warning" %}
Affirm will work with Form-code and landers that connect to Konnektive via Direct API. This will NOT work with Order Entry.
{% endhint %}

**STEP 1**

Go to **Gateways** → **Gateway Integrations** and select Affirm. Then click on **+Activate**.

<figure><img src="/files/ug2UitRa7STfi8j1WxjZ" alt=""><figcaption></figcaption></figure>

Enter the following information obtained from Affirm:

* **public\_api\_key**
* **private\_api\_key**

Click the green **Create Gateway** button to save your changes and create the gateway.

<figure><img src="/files/rqQsztcrfCoYt1j90tLL" alt=""><figcaption></figcaption></figure>

**STEP 2**

Assign the gateway to campaign products.

**STEP 3**

A checkout page should be secure HTTPS. A non-secured call to the Affirm gateway will be rejected.

Pass paySource=PREPAID and prepaidType=AFFIRM on the import order API call from your checkout page. Do not pass any other card information.

One option is to use hidden input fields on the page

```
<input type="hidden" name='paySource' value="PREPAID">
<input type='hidden' name='prepaidType' value='AFFIRM'>
```

If your standard credit card gateways are applied to your offers, use the **forceMerchantId** parameter in the Import Order API call. Note that this will only work for one time sales, it will not work with recurring transactions.

<figure><img src="/files/nJZeGQJ0vMsN7CrRJDZM" alt=""><figcaption></figcaption></figure>

For more info on the API call, please refer to our [API Documentation.](https://apidocs.konnektive.com/)

Our integration to Affirm does support the use of their Authorization system, however the Campaign Shipping Setting: ***Capture On Shipment*** must be enabled for this function to work. Once the fulfillment records are marked in a shipped status the Capture action will initiate.\
\
In the Order Import API call, pass in the Transaction ID from the Authorization on Affirm’s end using the parameter: **preAuthMerchantTxnId**<br>

**STEP 4**\
\
Affirm has 2 required values which will be supplied by our system when following directions below:\
\
Import images onto your products in the Base Product list. Accessed by going to: **CRM-> Products**\
(doing this will allow our system to supply the ‘item\_image\_url’ to Affirm, which is required)\
\
Secondly, you will need to pass in this parameter on each Affirm Import Order call: “errorRedirectsTo”\
(doing this will allow our system to supply the ‘item\_url’ to Affirm, which is required)\
\
If these two steps are not taken, Invalid Request responses will be received when attempting a sale.\
\ <br>


# Afterpay

<figure><img src="/files/cSzEOXZM8bey2nrkTof8" alt="" width="226"><figcaption></figcaption></figure>

{% hint style="danger" %}
**Disclaimers:**

No card details are stored for merchants using Afterpay’s Payment Gateway

Afterpay will work with Form-code and landers that connect to Konnektive via Direct API. This will NOT work with Order Entry.

**Afterpay will only work for one-time purchases, it will NOT work for recurring billing/subscriptions nor one-click upsells.**
{% endhint %}

**STEP 1**

Go to **Gateways** → **Gateway Integrations** and select Afterpay. Click on **+Activate**.

<figure><img src="/files/ErTVzTb8o6QPudqS2n6x" alt=""><figcaption></figcaption></figure>

Enter the following information specific to Afterpay:

* **Merchant\_ID** - Found on the footer of the Home page inside your Afterpay account.
* **Secret\_Key** - This is emailed to the account owner upon the account's creation. If you are having difficulties finding this you can reach out to your Business Development Manager or you can reach Afterpay Merchant Support: [Merchant Support | Afterpay Online Developer](https://developers.afterpay.com/afterpay-online/docs/merchant-support)

Click the green **Create Gateway** button to save your changes and create the gateway.<br>

**STEP 2**

Assign the gateway to campaign products.

**STEP 3**

A checkout page should be secure HTTPS. A non-secured call to the Afterpay gateway will be rejected.

Pass paySource=PREPAID and prepaidType=AFTERPAY on the import order API call from your checkout page. Do not pass any other card information.

One option is to use hidden input fields on the page

```
<input type="hidden" name='paySource' value="PREPAID">
<input type='hidden' name='prepaidType' value='AFTERPAY'>
```

**STEP 4**

The checkout page must handle a merchant redirect exception. The consumer will be routed to Afterpay to complete the checkout.

[Basic 3DS Instructions](/konnektive-crm/gateway-setup/basic-3ds-instructions)


# Amazon Pay API Integration

* [Creating Amazon Pay App And Adding Your Domain](#amazonpayapiintegration-creatingamazonpayappandaddingyourdomain)
* [Obtain Amazon Pay MID Credentials](#amazonpayapiintegration-obtainamazonpaymidcredentials)
* [Create Amazon Pay MID](#amazonpayapiintegration-createamazonpaymid)
* [Add Amazon Pay Widgets and JavaScript to Your Lander Code](#amazonpayapiintegration-addamazonpaywidgetsandjavascripttoyourlandercode)
* [Send Amazon Pay Parameters with Import Order API Call](#amazonpayapiintegration-sendamazonpayparameterswithimportorderapicall)
* [Transaction Flow](#amazonpayapiintegration-transactionflow)
* [Upsells](#amazonpayapiintegration-upsells)
* [Enable Recurring Payments](#amazonpayapiintegration-enablerecurringpayments)
* [Errors/Decline Messages](#amazonpayapiintegration-errors-declinemessages)

{% hint style="danger" %}
**The Amazon Pay gateway does not work with form code. This document is for a direct API integration only. To integrate Amazon with form code, follow** [**this document**](/konnektive-crm/gateway-setup/gateways/amazon-pay-api-integration/form-code-login-and-pay-with-amazon)**.**
{% endhint %}

### Creating Amazon Pay App And Adding Your Domain <a href="#amazonpayapiintegration-creatingamazonpayappandaddingyourdomain" id="amazonpayapiintegration-creatingamazonpayappandaddingyourdomain"></a>

1. Log in to <https://sellercentral.amazon.com>
2. Go to **Integration → Integration Central**
3. Go to **Manage client ID/store ID(s)** section at the bottom of the page and click “**Create new client ID/store ID**” or click “**View client ID/store ID(s)**” and “**Edit**” to update existing app.
4. Add your lander domain to **JavaScript origins** and **return URLs** and create or update.

### Obtain Amazon Pay MID Credentials <a href="#amazonpayapiintegration-obtainamazonpaymidcredentials" id="amazonpayapiintegration-obtainamazonpaymidcredentials"></a>

1. Log in to <https://sellercentral.amazon.com>
2. Go to **Integration** → **MWS Access Key**
3. Click the gold “**Copy your keys**” button at the top right
4. Copy the credentials shown in the popup.

### Create Amazon Pay MID <a href="#amazonpayapiintegration-createamazonpaymid" id="amazonpayapiintegration-createamazonpaymid"></a>

1. In the CRM, go to Merchants->MID List
2. Click the green plus sign to create a new MID
3. Select **Amazon Pay** as Gateway field
4. Fill in copied credentials (**merchant\_id, access\_key, secret\_key, client\_id, client\_secret**)
5. Fill in MID Title, Descriptor, MID #
6. Click “Create MID”

### Add Amazon Pay Widgets and JavaScript to Your Lander Code <a href="#amazonpayapiintegration-addamazonpaywidgetsandjavascripttoyourlandercode" id="amazonpayapiintegration-addamazonpaywidgetsandjavascripttoyourlandercode"></a>

Sample Code from Amazon docs:

```
<head>
  <script type='text/javascript'>
    window.onAmazonLoginReady = function() {
      amazon.Login.setClientId('your Amazon Pay client_id');
    };
    window.onAmazonPaymentsReady = function() {
      //get parameters from the URL query string
      const urlParams = new URLSearchParams(window.location.search);
      //access_token will be returned in URL after customer has logged into Amazon
      //access_token needs to be sent in Import Order API calls as amazonAddressConsent parameter
      if(urlParams.has("access_token")) {
        const amazonAccessToken = urlParams.get("access_token");
        //get Amazon profile details: username, email address, userID
        //Send profileResponse.email as emailAddress parameter on Import Order API call
        //Parse profileResponse.name and send as firstName and lastName parameters on Import Order API call
        let profileResponse;
        $.ajax({
            async: false,
            type: "GET",
            // cors: true,
            headers: {
                "Authorization": "bearer "+amazonAccessToken 
            },
            url: "https://api.amazon.com/user/profile",
            success: function (result) {
                profileResponse = result;
            },
            error: function (xhr) {
                return xhr.status;
            }
        });
        showAddressBook();
        showWallet();
      } else {
         showButton();
      }
    };
  </script>
    <script async="async" src='https://static-na.payments-amazon.com/OffAmazonPayments/us/js/Widgets.js'>
  </script>
</head>

<body>
. . .
 <div id="AmazonPayButton">
 </div>
 <div id="addressBookWidgetDiv">
 </div>
 <div id="walletWidgetDiv">
 </div>
  ...
 <script type="text/javascript">
    function showButton(){
      var authRequest; 
      OffAmazonPayments.Button("AmazonPayButton", "your Amazon Pay merchant_id", { 
        type:  "TYPE (choose LwA or PwA)", 
        color: "COLOR (choose between Gold, LightGray, DarkGray)", 
        size:  "SIZE (choose between small, medium, large, x-large)", 

        authorization: function() { 
        loginOptions = {scope: "profile payments:widget payments:shipping_address", 
          popup: "true"}; 
        authRequest = amazon.Login.authorize (loginOptions, 
          window.location.href); 
        }, 
 
        onError: function(error) { 
          // your error handling code.
          // alert("The following error occurred: " 
          //        + error.getErrorCode() 
          //        + ' - ' + error.getErrorMessage());
        } 
     });
    }; 
   </script>
   <script>
   function showAddressBook() {
    new OffAmazonPayments.Widgets.AddressBook({
      sellerId: 'your Amazon Pay merchant_id',
      onOrderReferenceCreate: function(orderReference) {
        // Here is where you can grab the Order Reference ID.
        //send this in the Import Order API as the amazonOrderId parameter
        orderReference.getAmazonOrderReferenceId();
      },
      onAddressSelect: function(orderReference) {
        // Replace the following code with the action that you want
        // to perform after the address is selected. The
        // amazonOrderReferenceId can be used to retrieve the address
        // details by calling the GetOrderReferenceDetails operation.
  
        // If rendering the AddressBook and Wallet widgets
        // on the same page, you do not have to provide any additional
        // logic to load the Wallet widget after the AddressBook widget.
  
        // The Wallet widget will re-render itself on all subsequent
        // onAddressSelect events without any action from you.
        // We don't recommend that you explicitly refresh it.
      },
      design: {
        designMode: 'responsive'
      },
      onReady: function(orderReference) {
        // Enter code here that you want to be executed
        // when the address widget has been rendered.
      },
  
      onError: function(error) {
        // Your error handling code.
        // During development you can use the following
        // code to view error messages:
        // console.log(error.getErrorCode() + ': ' + error.getErrorMessage());
        // See "Handling Errors" for more information.
      }
    }).bind("addressBookWidgetDiv");
  }
</script>
<script>
function showWallet(){
  new OffAmazonPayments.Widgets.Wallet({
    sellerId: 'your Amazon Pay merchant_id',
    onPaymentSelect: function(orderReference) {
      // Replace this code with the action that you want to perform
      // after the payment method is chosen.

      // Ideally this would enable the next action for the buyer
      // including either a "Continue" or "Place Order" button.
    },
    design: {
      designMode: 'responsive'
    },

    onError: function(error) {
      // Your error handling code.
      // During development you can use the following
      // code to view error messages:
      // console.log(error.getErrorCode() + ': ' + error.getErrorMessage());
      // See "Handling Errors" for more information.
    }
  }).bind("walletWidgetDiv");
}
</script>
   . . .
   <script type="text/javascript">
     document.getElementById('Logout').onclick = function() {
       amazon.Login.logout();
     };
   </script>

</body>
```

For more information on adding Amazon Pay widgets and Javascript visit <https://developer.amazon.com/docs/amazon-pay-onetime/add-a-button.html>

### Send Amazon Pay Parameters with Import Order API Call <a href="#amazonpayapiintegration-sendamazonpayparameterswithimportorderapicall" id="amazonpayapiintegration-sendamazonpayparameterswithimportorderapicall"></a>

Send these parameters during Import Order API call

* **paySource**: “AMAZON”
* **amazonBillerId**: ID of Amazon Pay MID in the CRM (found on the MID List page)
* **amazonAddressConsent**: access\_token returned to your checkout page via the URL by Amazon
* **amazonOrderId**: obtained in the AddressBook `onOrderReferenceCreate` function with `orderReference.getAmazonOrderReferenceId();`

### Transaction Flow <a href="#amazonpayapiintegration-transactionflow" id="amazonpayapiintegration-transactionflow"></a>

Customer clicks Amazon-generated Amazon Pay button on checkout page.

<figure><img src="/files/E4M7s1qG7oXqzPX3seXB" alt=""><figcaption></figcaption></figure>

New window pops up for customer to log into Amazon

<figure><img src="/files/iFyEIvNAj8M9AfP785WW" alt=""><figcaption></figcaption></figure>

Customer returned to checkout page with **access\_token** in URL query string.

access\_token is used with Amazon profile API to obtain the firstName, lastName, and emailAddress parameters to send on Import Order API call. Send profileResponse.email as **emailAddress** parameter on Import Order API call. Parse profileResponse.name and send as **firstName** and **lastName** parameters on Import Order API call.

Call functions to display the Amazon AddressBook and Wallet widgets.

Obtain Amazon Order Reference ID to send on Import Order API call as **amazonOrderId** parameter in the AddressBook `onOrderReferenceCreate` function with `orderReference.getAmazonOrderReferenceId();`

Customer chooses shipping address and payment method from Amazon-generated widgets.

<figure><img src="/files/eJnzcs3RsXDtANr8kn2n" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/96LU5ce77FMUmyezz1NV" alt=""><figcaption></figcaption></figure>

Import Order with parameters: **paySource**=AMAZON, **amazonBillerId**, **amazonOrderId**, **amazonAddressConsent** (access\_token).

### Upsells <a href="#amazonpayapiintegration-upsells" id="amazonpayapiintegration-upsells"></a>

Repeat JavaScript process on your upsell page and send **amazonBillerId**, **amazonOrderId**, **amazonAddressConsent** on Import Upsale API call.

### Enable Recurring Payments <a href="#amazonpayapiintegration-enablerecurringpayments" id="amazonpayapiintegration-enablerecurringpayments"></a>

Follow the same integration steps as for one-time payments above and replace the Amazon AddressBook and Wallet widget code and add the Consent widget code as follows:

```
<script>
  new OffAmazonPayments.Widgets.AddressBook({
    sellerId: 'your Amazon Pay merchant_id',
    agreementType: 'BillingAgreement',
     
    onReady: function(billingAgreement) {
      var billingAgreementId = billingAgreement.
      getAmazonBillingAgreementId();
    },
    onAddressSelect: function(billingAgreement) {
      // Replace the following code with the action that you want to perform
      // after the address is selected.
      // The amazonBillingAgreementId can be used to retrieve
      // the address details by calling the GetBillingAgreementDetails operation.
      // If rendering the AddressBook and Wallet widgets on the same page, you
      // should wait for this event before you render the Wallet widget for
      // the first time.
      // The Wallet widget re-renders itself on all subsequent
      // onAddressSelect events without any action from you. We don't
      // recommend that you explicitly refresh it.
    },
    design: {
      designMode: 'responsive'
    },
    onError: function(error) {
      // your error handling code
    }
  }).bind("addressBookWidgetDiv");
</script>
```

```
<script>
  new OffAmazonPayments.Widgets.Wallet({
    sellerId: 'your Amazon Pay merchant_id',
    // amazonBillingAgreementId obtained from the AddressBook widget
    amazonBillingAgreementId: amazonBillingAgreementId,
    onPaymentSelect: function(billingAgreement) {
      // Replace this code with the action that you want to perform
      // after the payment method is selected.
    },
    design: {
      designMode: 'responsive'
    },
    onError: function(error) {
      // your error handling code
    }
  }).bind("walletWidgetDiv");
</script>
```

```
<div id="consentWidgetDiv">
</div>
<script>
new OffAmazonPayments.Widgets.Consent({
  sellerId: 'your Amazon Pay merchant_id',
  // amazonBillingAgreementId obtained from the Amazon Address Book widget. 
  amazonBillingAgreementId: amazonBillingAgreementId, 
  design: {
    designMode: 'responsive'
  },
  onReady: function(billingAgreementConsentStatus){
    // Called after widget renders
    buyerBillingAgreementConsentStatus =
      billingAgreementConsentStatus.getConsentStatus();
    // getConsentStatus returns true or false
    // true - checkbox is selected
    // false - checkbox is unselected - default
  },
  onConsent: function(billingAgreementConsentStatus) {
    buyerBillingAgreementConsentStatus =
      billingAgreementConsentStatus.getConsentStatus();
    // getConsentStatus returns true or false
    // true - checkbox is selected - buyer has consented
    // false - checkbox is unselected - buyer has not consented

    // Replace this code with the action that you want to perform
    // after the consent checkbox is selected/unselected.
   },
  onError: function(error) {
    // your error handling code
   }
}).bind("consentWidgetDiv ");
</script>
```

For more information on adding Amazon Pay widgets and Javascript visit <https://developer.amazon.com/docs/amazon-pay-automatic/add-address-and-wallet-widgets.html>

The customer will be required to check the “Use my selected payment method for future purchases and payments to this merchant” box in the Amazon-generated consent widget to complete the purchase.

<figure><img src="/files/KJVCaMoB6baIy0Nqt2vq" alt=""><figcaption></figcaption></figure>

Send the `amazonBillingAgreementId` as the **amazonOrderId** parameter on your Import Order API call.

***

### Errors/Decline Messages <a href="#amazonpayapiintegration-errors-declinemessages" id="amazonpayapiintegration-errors-declinemessages"></a>

Below you will find common errors that other users have encountered when using Amazon Pay.

| **Error**            | **Cause**                                                       | **Fix**                                                                              |
| -------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| InvalidPaymentMethod | The customer’s payment method inside Amazon is no longer valid. | Customer must ensure that all payment methods inside their Amazon account are valid. |




---

[Next Page](/llms-full.txt/1)

