Welcome to Pepperi

  • Getting Started

    The basics you need to know when first setting up Pepperi with your own data

  • Free online training

    Register for a live webinar (or 2!) to learn about system setup and configuration, with live q&a

  • Webinars & videos

    Watch recorded training webinars and product videos

  • Ideas

    Browse and vote for suggestions and post your own ideas on our community forum.

  • Announcements & release notes

    Stay up to date with new releases and features.

Ways to sell

 

New Workflow Actions

Segment Workflows by User Profile

Enhancements:

Added new Status Filters in Sales Activity List

Configure view types available in the Cart

New Workflow Actions

New Workflow actions have been added to the Workflow Designer introduced in the previous version of Pepperi Web Admin.

The new Actions include:

  • Capture Geolocation at any point in the Workflow – captures the Latitude and Longitude coordinates of the device. You can capture the location not only upon submission, but during any other status change of the Transaction. The values will be saved in custom fields (one for LAT and one for LNG) of the Transaction Type and can be displayed on any form or report.
  • Capture Date & Time at any point in the Workflow (not only on Submit) – captures the Date & Time and saves it in a custom field. This is a timestamp at any point in the Transaction or Activity that allows you to capture when a specific event such as a change in status, payment, sync, or alert occurred. You can then display it on any form or report.
  • Hosted ePayment – initiates an electronic payment via the provider configured in Pepperi. If the payment fails, you can choose an alternate status for the Transaction.

Note: the ePayment Action is listed on the Web Admin, however is not yet supported on Mobile devices and will be announced upon release.

For a full list of Workflow actions see: Workflow Designer

Note: the new Workflow designer is available upon request and its availability is subject to the Pepperi package you have purchased. Please contact us to activate this capability.

Segment Workflows by User Profile

The new Profiles enhancement to Workflow designer allows you to manage different Workflow Transitions and Actions by profile:

  • Change the status of an order, based on which sales rep is submitting it. For example, allow certain reps automatic approval for orders, while others need manager approval.
  • Allow only certain Sales Reps who have permission to process ePayments
  • Notify managers by email about certain orders based on who submitted them.

You can also have different names for the “Done” or “Submit” buttons in the app for the different profiles.

For example, for a Rep who can take payments, the button in the Cart can be named “Pay” while for a Rep who cannot take payments, the button can simply be labeled “Submit”, “Send for approval” or any other text you require.

 ButtonLabelByProfile.png

 

Note: Support for this configuration on the mobile app is not yet available and will be announced upon release.

It’s easy to define Transitions for specific profiles! 

The new Workflows Table view allows you to view the Transitions available for each Profile.

ProfileWorkflows.png

Click on the Table view and add a form for the Profiles you require.

Within each form, you can view the Transitions that are available for each profile.

Configure the Transitions available for each Profile.

  1. Delete the Transition Steps not relevant to the Profile by clicking on the delete icon next to the Transition
  2. Enter a name for the Transition Steps that are relevant to the Profile. The name you enter will appear on the form submission button for that Profile (instead of “Done” or “Submit”).
  3. Enable a Transition Step for the Profile by clicking on the + sign

 ProfileWFEditor.png

 SetStepName.png 

 

To continue configuring additional Profiles click “Manage Profiles” to return to the list of Profiles. The Actions in the Transition Steps you have enabled for each Profile will be executed.

Enhancements: 

Added new Status Filters in Sales Activity List and Dashboard Configuration

You can now filter Activity List and Dashboards based on the following additional Transaction/Activity statuses:

  • Bill of lading
  • Closed
  • Failed
  • In Progress
  • Needs online approval
  • Needs payment
  • On hold
  • Waiting for sales rep approval 

Configure view types available in the Cart

You can now configure which types of views are available in the Cart.

Choose from:

  • Grid View – basic view for tablets
  • Matrix Grid View – relevant if you are using Matrix items with variants
  • Line View – recommended view for mobile phones

Simply edit the Cart Menu form (Settings -> Transaction Types -> Cart -> Cart Menu) for each profile.

 CartMenuConfig.png

New Workflows

    Workflows for Accounts

    New visual representation

    Actions and Branches

    Post Actions

Catalog View Configuration (Storefront 2.0 only)

 

New Workflows

Pepperi Web Admin V8.71 introduces a major new feature: New and Improved Workflows

We are very excited to introduce an enhanced, advanced, yet simple method of configuring your Workflows.

Workflows have now become completely flexible, with branches, actions and custom forms. You can configure the Workflows to carry out many more types of actions triggered by the status changes of a Transaction, Activity or even an Account (NEW!). 

Actions can now be triggered for any combination of status changes, not only the three previously supported (Submitted, Revised, Awaiting approval).

For example, set different actions for Orders changing from New to In Creation (Draft), and then from In Creation to Submitted, and then from Submitted to ERP, and then from Submitted to Revised, and then back to Submitted. Each one of those status changes can trigger the actions.

This provides you with unlimited flexibility in defining exactly what happens at every point in your business process.

New Actions include:

  • Alerts
  • Notifications
  • Webhooks (web services)
  • Conditional alerts
  • Branch to another step in the workflow
  • More... (full list of Workflow actions are detailed below)

 

Please note that the Workflows configured via the Pepperi Web Admin are currently partially supported on the mobile app. They will be fully supported on the iOS and Android mobile apps in their respective upcoming versions. 

Contact us if you wish to activate the new Workflows.

Workflows for Accounts

We are also introducing Workflows for Accounts. You can now trigger actions such as notification, rule validation, Email, alerts, and more when a new Account (customer) is created by a user on the iPad.

For example, trigger an address verification form to pop up when a user creates a new Account that verifies address fields such as City, State, Street against a predefined list.

A detailed lists of the actions available for Accounts is in the table below.

New visual representation

The new Workflow creation has an easy-to-follow visual representation. Workflows are still located in the same place in the Workflows tab of the Transaction, Account or Activity.

 

Each status change defined in the Workflow may have one or more Actions associated with it. 

To Add a step, click "+Step" and give the Step a name. The step name will be used as the text on the "Submit" or "Done" button on the Transaction, Activity or Account creation form.

In the example below the name "Validate order" will appear instead of the text "Submit" on the shopping cart.

The actions defined in this step will be executed when the Transaction changes status from In creation to Submitted. 

Building a workflow like the one shown above requires you to add steps for each of the required status changes, and the diagram above will be automatically generated.

Actions are divided into "Actions and Branches" and "Post Actions"

The list of all actions shown here is explained in detail in the table below.

Actions and Branches

"Actions and Branches" are executed upon tapping the "Submit" button in the shopping cart in the case of a Transaction, or the "Done" button in the case of an Activity or Account.

 

Post Actions

Once the "Actions and Branches" are completed, the "Post Actions" will be executed. 

 

Action name  Action description  Type Available for 
Alert This action displays an alert message in a dialog box with the option to Cancel or Continue. Cancel - dismisses the dialog and returns the user to what she was working on. Continue - continues to the next action or step in the workflow. Action/Branch All (Account, Activity, Trans)
Alert on Condition This action displays an alert message in a dialog box on the condition that the selected rule is evaluated to the indicated value (true/false). Cancel - dismisses the dialog and returns the user to what she was working on. Continue - continues to the next action or step in the workflow. Action/Branch Activity, Transactions
Notification This action displays a notification message in a dialog box. The user clicks OK and the workflow continues to the next action or step. Action/Branch All (Account, Activity, Trans)
Webhook This action executes an asynchronous Webhook (web service) and continues the workflow Action/Branch + Post All (Account, Activity, Trans)
Stop condition The Workflow will be stopped on the condition that the selected rule is evaluated to the indicated value (true/false). A message will be displayed to the user, allowing them to go back and modify the workflow accordingly. Action/Branch Activity, Transactions
Webhook Stop Condition The Workflow will be stopped on the condition that the Webhook (web service) is evaluated to true. A message will be displayed to the user, allowing them to go back and modify the workflow accordingly. Action/Branch All (Account, Activity, Trans)
Custom Form Open Client WEB customized form (coming soon) Action/Branch  *COMING SOON
Branch Condition This action evaluates a Boolean rule and branches the workflow to another step based on the status selected in case of failure. Select from a list of Boolean rules created in Advanced Custom Fields. Select the status in case the rule fails to evaluate. Action/Branch Activity, Transactions
Webhook Branch This action executes a Webhook (web service) and branches the workflow to another step based on the status selected in case of failure. Action/Branch All (Account, Activity, Trans)
Open Form  This action allows you to select a form that will be opened for the user to fill in. If the form does not contain fields marked as mandatory it will not be opened. Selecting \'Force always open\' will open the form even if does not contain mandatory fields.    *COMING SOON
Force Sync  This action forces the mobile app to sync.  Action/Branch  *COMING SOON
Split Order This action splits the order among multiple locations (ie chains) and creates a separate Transaction for each location. Select the Transaction Type for the newly created orders. Post Transaction
Send email Send configurable email Post Activity, Transactions
Export File to FTP This action will post an XML file to the Pepperi secure FTP server. This file can then be imported to any ERP/CRM or other system. Post All (Account, Activity, Trans)
Distribute Activity This action duplicates the Activity for multiple Accounts. Select the type for the newly created Activities. Post Activity
Navigate to  After the Actions in this step are completed, the user will be redirected to the page they were on previously, an Activity List of your choice, or stay on the same page. Select from the options below. Post  *COMING SOON

 

Catalog View Configuration

Later this quarter we'll be releasing a new version of our Web Storefront - Storefront 2.0

In preparation, we are releasing a feature in this Web Admin version that will allow you to configure the Catalog thumbnail view your buyers use to select a catalog. 

You can now add fields from the Catalog Form or Custom Fields, just like any other Pepperi from layout configuration. (This is relevant only if you are using the Multiple Catalogs feature.)

You can position the fields and change their title, as well as add custom fields:

 

Details Activity List View

Workflows

Distributed Activities

Phone Field Click-to-Call

 

Details Activity List View

"Details" is a new Activity list view type allowing you to view the activity listing in the left panel and the its full form on the right.

The new format is useful for quick scrolling through Activities and efficiently taking an action on each one, such as editing/submitting their forms.

In Portrait mode, the left panel slides in and out of view to allow full page view of the form. In Landscape mode, the left panel is fixed.

 

The view is defined in the Activity List configuration. Just select Detailed from the view type. For details on creating and displaying Activity Lists see

 

Workflows

A new Workflow Configurator with tailored workflows for Transactions and Activities. Also, announcing workflows for Accounts! Newly added actions such as custom forms, alerts, and more.

Workflows have now become completely flexible, with branches, actions and custom forms. You can configure the Workflows to carry out many more types of actions triggered by the status changes of a Transaction, Activity or even an Account. 

Actions can now be triggered for any combination of status changes, not only the three previously supported (Submitted, Revised, Awaiting approval).

Use the Workflow Configurator to set different actions for Orders changing from New to In Creation (Draft), and then from In Creation to Submitted, and then from Submitted to ERP, and then from Submitted to Revised, and then back to Submitted. Each one of those status changes can trigger the actions.

This provides you with unlimited flexibility in defining exactly what happens at every point in your business process.

New Actions include:

  • Alerts
  • Notifications
  • Webhooks (web services)
  • Conditional alerts
  • Branch to another step in the workflow
  • More... 

For the full list of Workflow actions are detailed here: Workflow Configurator

Contact us if you wish to activate the Workflow Configurator.

 

Distributed Activities

Distributing Activities allows you to create activities such as campaigns aimed at many different customers in one click. Enter the information once and duplicate across a customer segment.

For example:

  • A phone call campaign to call and check up or make an offer to multiple customers
  • Your quarterly visit or your typical holiday season visit to multiple customers
  • An annual customer satisfaction survey

Use the Accounts search to filter and select the customer segment you wish to duplicate the activity for.

Tap “Create” to open the Activity form.

 

Tap “Distribute” and the Activity will be created for all the customers automatically.

You can then view the list of the created Activities in a dedicated list, in the new Details view (illustrated in a screenshot above). Scroll through the list to easily fill in and submit each Activity form.

 

Phone Field Click-to-Call

When tapping on a phone number in the Pepperi app on your mobile device, the dialer will automatically be opened with the phone number ready to call.

For details on configuring this feature see Phone field click to call

 

 

Workflow Designer allows you to define flexible Workflows, with branches, actions and custom forms. You can configure the Workflows to carry out many more types of actions triggered by the status changes of a Transaction, Activity or even an Account. 

Actions can now be triggered for any combination of status changes, not only the three previously supported (Submitted, Revised, Awaiting approval).

Use the Workflow Designer to set different actions for Orders changing from New to In Creation (Draft), and then from In Creation to Submitted, and then from Submitted to ERP, and then from Submitted to Revised, and then back to Submitted. Each one of those status changes can trigger the actions.

This provides you with unlimited flexibility in defining exactly what happens at every point in your business process.

New Actions include:

  • Alerts
  • Notifications
  • Webhooks (web services)
  • Conditional alerts
  • Branch to another step in the workflow
  • More... (full list of Workflow actions are detailed below)

 You can view a live demonstration of use cases on this in depth webinar on the new Workflows here: Pepperi Product Education Webinar - New Workflows

Note: the new Workflow designer is available upon request and is subject to the Pepperi package you have purchased. Please contact us to activate this capability.

Workflows for Accounts

We are also introducing Workflows for Accounts. You can now trigger actions such as notification, rule validation, Email, alerts, and more when a new Account (customer) is created by a user on the mobile device.

For example, trigger an address verification form to pop up when a user creates a new Account that verifies address fields such as City, State, Street against a predefined list.

A detailed lists of the actions available for Accounts is in the table below.

New visual representation

The Workflow Designer has an easy-to-follow visual flowchart representation. Workflows are still located in the same place in the Workflows tab of the Transaction, Account or Activity.

WIVFlow.png

 

Each status change defined in the Workflow may have one or more Actions associated with it.

To Add a step, click "+Step" and give the Step a name. The step name will be used as the text on the "Submit" or "Done" button on the Transaction, Activity or Account creation form.

In the example below the name "Validate order" will appear instead of the text "Submit" on the shopping cart.

The actions defined in this step will be executed when the Transaction changes status from In creation to Submitted. 

Building a workflow like the one shown in the diagram above requires you to add steps and actions for each of the required status changes, and then the diagram above will be automatically generated.

Actions are divided into "Actions and Branches" and "Post Actions"

The list of all actions shown here is explained in detail in the table below.

WorkflowSteps.PNG

 

Actions and Branches

"Actions and Branches" are executed upon tapping the "Submit" button in the shopping cart in the case of a Transaction, or the "Done" button in the case of an Activity or Account.

AddActions.PNG

 

Post Actions

Once the "Actions and Branches" are completed, the "Post Actions" will be executed.

AddPostActions.PNG

 

  Action description  Type Available for 
Actions      Actions marked *COMING SOON are not yet supported on the app. Support will be announced upon release of the relevant mobile app version.
Alert This action displays an alert message in a dialog box with the option to Cancel or Continue. Cancel - dismisses the dialog and returns the user to what she was working on. Continue - continues to the next action or step in the workflow. Action/Branch All (Account, Activity, Transaction)
Alert on Condition This action displays an alert message in a dialog box on the condition that the selected rule is evaluated to the indicated value (true/false). Cancel - dismisses the dialog and returns the user to what she was working on. Continue - continues to the next action or step in the workflow. Action/Branch Activity, Transaction
Notification This action displays a notification message in a dialog box. The user clicks OK and the workflow continues to the next action or step. Action/Branch All (Account, Activity, Transaction)
Webhook This action executes an asynchronous Webhook (web service) and continues the workflow Action/Branch (and Post, see below) All (Account, Activity, Transaction)
Stop condition The Workflow will be stopped on the condition that the selected rule is evaluated to the indicated value (true/false). A message will be displayed to the user, allowing them to go back and modify the workflow accordingly. Action/Branch Activity, Transaction
Webhook Stop Condition The Workflow will be stopped on the condition that the Webhook (web service) is evaluated to true. A message will be displayed to the user, allowing them to go back and modify the workflow accordingly. Action/Branch All (Account, Activity, Transaction)
Custom Form Open Client WEB customized form (coming soon) Action/Branch All (Account, Activity, Transaction)
Branch Condition This action evaluates a Boolean rule and branches the workflow to another step based on the status selected in case of failure. Select from a list of Boolean rules created in Advanced Custom Fields. Select the status in case the rule fails to evaluate. Action/Branch Activity, Transaction
Webhook Branch This action executes a Webhook (web service) and branches the workflow to another step based on the status selected in case of failure. Action/Branch All (Account, Activity, Transaction)
Open Form  This action allows you to select a form that will be opened for the user to fill in. If the form does not contain fields marked as mandatory it will not be opened. Selecting \'Force always open\' will open the form even if does not contain mandatory fields.  Action/Branch

Transaction

*COMING SOON

Force Sync  This action forces the mobile app to sync.  Action/Branch All (Account, Activity, Transaction)
Split Order This action splits the order among multiple locations (ie chains) and creates a separate Transaction for each location. Select the Transaction Type for the newly created orders. Action/Branch Transaction
Hosted ePayment Initiates an electronic payment via the provider configured in Pepperi. If the payment fails, you can choose an alternate status for the Transaction. Action/Branch

Transaction

*COMING SOON

Update Inventory Update the value of the item inventory, the Account's inventory (AccountInStockQuantity), and the Account's sell through.  Action/Branch

Transaction

*COMING SOON

Capture Geolocation Captures the Latitude and Longitude coordinates of the device. You can capture the location not only upon submission, but during any other status change. Action (and Post, see below) All (Account, Activity, Transaction)
Capture Date & Time Captures the Date & Time and saves it in a custom field. This is actually a timestamp you can initiate at any point in the Transaction or Activity that allows you to capture when a specific event such as a change in status, payment, sync, or alert occurred. You can then display it on any form or report. Action (and Post, see below) All (Account, Activity, Transaction)
Post Actions      
Send email Send configurable email Post Activity, Transaction
Export File to FTP This action will post an XML file to the Pepperi secure FTP server. This file can then be imported to any ERP/CRM or other system. Post All (Account, Activity, Transaction)
Distribute Activity This action duplicates the Activity for multiple Accounts. Select the type for the newly created Activities. Post Activity
Navigate to  After the Actions in this step are completed, the user will be redirected to the page they were on previously, an Activity List of your choice, or stay on the same page. Select from the options below. Post All (Account, Activity, Transaction)
Capture Geolocation Captures the Latitude and Longitude coordinates of the device. You can capture the location not only upon submission, but during any other status change. Post (and Action, see above) All (Account, Activity, Transaction)
Capture Date & Time Captures the Date & Time and saves it in a custom field. This is actually a timestamp you can initiate at any point in the Transaction or Activity that allows you to capture when a specific event such as a change in status, payment, sync, or alert occurred. You can then display it on any form or report. Post (and Action, see above) All (Account, Activity, Transaction)
Webhook This action executes an asynchronous Webhook (web service) and continues the workflow Post (and Action, see above) All (Account, Activity, Transaction)

 

Account Dashboard Customization

You can now fully customize the Account Dashboard - including the Recent Activities, Upper and Lower Dashboard.

The Activities Toolbar and Activities Menu remain customize-able as well, they have been moved to separate tabs in the Account Dashboard Customization -> Activities Toolbar and Menu tabs.

 

Header

The Header tab allows you to select up to 4 fields to be shown in the Account Dashboard Header. Learn more...

Recent Activities

Recent Activities now allows you to select Activity Lists (before it was just single activities) for display in the Recent Activities bar. To learn more about how to create Activity Lists: Sales Activity Lists

Activities Toolbar and Activities Menu

Select the Activities you wish to appear in the Toolbar VS. those that will appear in the Menu. The Toolbar is limited to 7 items. The Menu has no limit.

Learn more. . .

 

Dashboard

Add any charts, graphs and tables queried from your database systems to the Account Dashboard. 

You will need to create them as "Widgets" in Pepperi and then position them as tabs on the upper and lower account dashboards.

To learn how to upload data for widgets: Account Dashboard Customization using your own data

For example: upload data about Sales by Brand, Commissions, Product Lines, Order Types.

Managing Buyers for self-ordering

You can invite your customers to the Pepperi Storefront (Web and Mobile) for B2B self-service ordering from the Account List using the multi-selection option.

Please note that only Pepperi Admin users can invite buyers.

(For details on using the Account List View see: Accounts List View)

Select the Account(s) you wish to connect and from the Action menu -> Connect as Buyer (available for Admins only)

A list of contacts for any Accounts you selected will appear and Select the ones you wish to connect as Buyers.

(You must have contacts defined for Accounts in order to connect them as buyers. You can add them manually per each Account or see this article for more detailed information: How to Upload Contacts for Accounts in Bulk).

 

Click Connect as Buyer and you can then customize the welcome message and subject that is sent to invite the buyers to Pepperi for self-ordering.

You can enter any html you like in the message body to include images, text and links.

Their username and password will be added to the end of the message.

To deactivate multiple buyers (which removes their access for self-ordering) select Deactivate Buyer from the menu. Buyers may be reactivated at a later time.

 

As part of Pepperi’s integration platform, we provide a plugin that allows you to integrate data from any back office system that has an HTTP-based API (RESTful API, SOAP API etc.)

The API could either be a Cloud API or On-Premise one transferring data into Pepperi and from Pepperi into your system.

The plugin allows you to configure the transfer of data back and forth using a graphical interface which makes the plugin accessible and simple to use. 

 

Who can use the HTTP Plugin?

Why is it called HTTP plugin?

How does the HTTP Plugin work?

Understanding Pepperi’s integration platform

Batch data uploads from your back-office to Pepperi

Add a new “To Pepperi” Dataflow Task -

Authentication

How to check the error log

Formatting the data returned from your system

Schedule your task

Checking the Status of Tasks

General Settings

Data manipulation options

Real-time data updates from Pepperi to your back-office

Add a new “From Pepperi” Dataflow Task -

Authentication

Posting data

Steps to generate your HTTP transaction request

Formatting the data returned from your system 

Last step – connect your Dataflow task to the transaction’s Webhook

Who can use the HTTP Plugin?

If you are using an ERP, accounting system or any back office system that Pepperi does not have a pre-built plugin for (see a list of our plugins here: Pepperi Integrations Directory) you can use the HTTP Plugin to sync your data to Pepperi.

If your back end system exposes an API or you if you have your own home grown web services, then you can sync Pepperi with your system using Pepperi's graphical configuration tool - code free!

Why is it called HTTP plugin?

Pepperi's plugin enables you to sync with any system that "speaks" HTTP - doesn't matter if its REST/XML/JSON/SOAP or any other HTTP Request/Response type.

How does the HTTP Plugin work?

Pepperi's plugin allows you to submit HTTP GET/POST requests for querying data- item and customer data, or any other relevant sales data from your system into Pepperi and to submit (usually POST) Transactions/Activities from Pepperi to your system.

The configuration of the requests is done via a graphical user interface provided by Pepperi and accessed directly from the Pepperi Web Admin settings.

You may also configure more advanced settings to handle the data that is received from your system or sent to your system in a more sophisticated way, for example filter out certain items or customers that you do not want to import to Pepperi.

Each of the data-pulling tasks from your system to Pepperi is scheduled to run automatically at intervals that you define, while the data from Pepperi to your system is submitted in real time and the response is presented to the sales rep in the field (using WebHooks).

This guide will instruct you on how to set up the importing, exporting and scheduling of data. 

Understanding Pepperi’s integration platform

 This diagram desribes the relations between the different components of Peppri’s integration platform.

Integration of data from Pepperi to your back-office system is done via Webhooks triggered from Pepperi back-office to Pepperi’s internal endpoint of a “Dataflow task” configured by you, and ends up in an immediate response returned to the mobile app or web app and in a transaction log that you can view and track.

Integration of data from your back-office system to Pepperi is done via batch uploads of data triggered by Pepperi’s integration platform Shceduled Jobs that executes 1 or many “Dataflow tasks” configured by you, and ends up in a batch upload to Pepperi and in an execution log that you can view and track.


Batch data uploads from your back-office to Pepperi

To configure the HTTP Plugin to import your items to Pepperi you need to create a task to GET the data and to authenticate with your system.

In the Pepperi Web Admin go to Settings -> ERP Integration -> Plugin Settings

This is the dashboard to your plugin – here you can see if your connection is set well, when and what was the status of the scheduler last run as well as to trigger the data pulling jobs manually.

Click on the Advanced Settings link to take you to the HTTP Plugin advanced settings – where you actually maintain and configure the HTTP requests for the first time.

You will be brought to the Plugin Advanced Settings interface. This is the graphical interface in which you set up, schedule and configure all the tasks associated with importing and exporting data from and to your system.

The home page of the advanced settings is the “General Settings” page – where all the settings related to all the tasks are configured - such as connection settings or connection timeout – these are explained later.

Your first step would be to add a dataflow task that would bring data from your system to Pepperi -

 

Add a new “To Pepperi” Dataflow Task

Go to the Dataflow Tasks -> Manage Tasks -> To Pepperi menu option

Click on "Add New Task" 

Task Name:  description of the task – e.g.:  export products from my-system

Application: select “Generic HTTP Connector”

Source Object: select “Generic Connector HTTP Exporter”

Target Object: select the target object in Pepperi. e.g.: if you want the products from your system to be uploaded to Pepperi’s item list select “Pepperi Export Item”.

In case you just want to test before uploading anything select the option “Store file for later use”.

 

 

Once you save the task – you can use the top menu bar to navigate to the new task and start configuring it.

Go to Dataflow Tasks -> To Pepperi -> <Your_Task_Name> (in this example "Export Items")

 

Each tab across the Task settings allows you to configure various elements of the data being imported.

Authentication

The first step should be to configure the authentication of the connection between Pepperi and your back office system.

Go to the HTTP tab to configure the authentication:

Authentication Type: select your Authentication type: Basic, OAuth 1.0 or OAuth2.0

You can choose between Basic, None (any other custom authentication), OAuth 1.0 or OAuth 2.0.

In case you selected OAuth 1.0 or OAuth 2.0- you need to click on "Get Token" and enter the information required to authenticate with your system.

Please note that OAuth authentication only needs to be done once for all tasks - both from Pepperi and to Pepperi.

 

Here is the screen you will be presented with, including some example values for authentication:

Click on Generate Token.

The next step would be to configure your HTTP request method

Method:  GET/POST (usually for REST API request use "GET", for SOAP request use POST)

 

The next step is to configure the URL for the data-pulling request call you will make to your system, retrieve the data in the format your system outputs it, and then configure Pepperi to read the response by indicating a "lines element" for parsing the data.

Enter the URL:

This is the HTTP Endpoint of your system's API.

Click "RUN >>" on the top right of the task.

The task will run and retrieve the data in the format that it is returned from your system. 

How to check the error log

If the data is not retrieved because of an error – you will see a complete log of the request-response within the same window you run the request in.

Formatting the data returned from your system

The data will be in JSON or XML format, and needs to be converted to table style object – records/lines.

Example of your JSON data:

[

{
"ID": "18526387-601a-410a-acd4-4e7e5681f1e6",
"SKU": "1000002",
"Name": "Bj Nose Pins 120ct",
"Category": "Body Jewelry And Rings",
"Brand": null,
"Type": "Stock",
"CostingMethod": "FIFO",
"DropShipMode": "No Drop Ship",
"DefaultLocation": "Main Warehouse",
"Length": 0,
"Width": 0,
"Height": 0,
"Weight": 0,
"UOM": "Item",
"Barcode": "763684283434",
"MinimumBeforeReorder": 4,
"ReorderQuantity": 20,
"PriceTier1": 49,
"PriceTier2": 0,
"PriceTier3": 0,
"PriceTier4": 0,
"PriceTier5": 0,
"PriceTier6": 0,
"PriceTier7": 0,
"PriceTier8": 0,
"PriceTier9": 0,
"PriceTier10": 0,
"PriceTiers": {
"Rep Price 1": 49,
"Rep Price 2": 0,
"Cash & Carry ": 0,
"Amazon": 0,
"Ebay": 0,
"Contractor Pricing": 0,
"Tier 7": 0,
"Tier 8": 0,
"Tier 9": 0,
"Tier 10": 0
},

{

 "ID": "18529887-601a-410a-acd4-4e7e5681f1e6",
"SKU": "1000002",
"Name": "Second items Pins 120ct",
"Category": "Body Jewelry And Rings",
"Brand": null,
"Type": "Stock",
"CostingMethod": "FIFO",
"DropShipMode": "No Drop Ship",
"DefaultLocation": "Main Warehouse",
"Length": 0,
"Width": 0,
"Height": 0,
"Weight": 0,
"UOM": "Item",
"Barcode": "763684283434",
"MinimumBeforeReorder": 4,
"ReorderQuantity": 20,
"PriceTier1": 49,
"PriceTier2": 0,
"PriceTier3": 0,
"PriceTier4": 0,
"PriceTier5": 0,
"PriceTier6": 0,
"PriceTier7": 0,
"PriceTier8": 0,
"PriceTier9": 0,
"PriceTier10": 0,
"PriceTiers": {
"Rep Price 1": 49,
"Rep Price 2": 0,
"Cash & Carry ": 0,
"Amazon": 0,
"Ebay": 0,
"Contractor Pricing": 0,
"Tier 7": 0,
"Tier 8": 0,
"Tier 9": 0,
"Tier 10": 0

}

]

 

This data needs to be parsed into a tabular format of lines/records

Go to the task’s “settings” tab and Configure the row element to instruct Pepperi how to parse the data. 

For example, in this case since the JSON returns an array the correct configuration is simply “row”: (if the response contains xml the row element would be the element that represents the row, for example: item)

 

Pagination

Most of the API requests require paging

In this case you need to use the following syntax in the URL: {#page_num#}  to represent a page number that starts from 1 and ends when there is no more data to fetch.

For example: https://my-system/wp-json/wc/v1/products?per_page=100&page={#page_num#} 

 

Schedule your task

The next step is to schedule the export of your system’s data to Pepperi.

Go to the Schedule Jobs Tab

In case you already ran the task once you will see a job with the task name “Test: <task name>”

Click Add new record or edit to enter the required values:

Application:  HTTP Connector

Job Description: give the job a descriptive name – please note that a job may contain several tasks.

Scheduling: Select the frequency of number of Hours / Minutes, the starting hour and ending hour, and the week days the Job will be triggered in.

 

 

The task will now run automatically at the scheduled intervals and your item/other data will be updated in Pepperi. When users sync the app on their mobile devices they will see the updated data.

Checking the Status of Tasks

You can check the status of any of the tasks in the Schedule Jobs tab at any time, and see the last/next run time and status. 

Example of Scheduled Jobs statuses:

 

 

 

You will also see the plugin settings dashboard in your Pepperi Web Admin under Settings -> ERP Integration -> Plugin Settings:


 

General Settings

Some settings should be saved generally for all the Dataflow tasks. Below are the most commonly used ones – all of them are described in the “description” field of each Settings line:

  1. Webapi -  0 = use ftp to upload the data to Pepperi, 1= use Pepperi’s API (currently only items and accounts are supported in API – so that ftp is a better choice)
  2. user- FTP user (as provided by Pepperi's FTP configuration)
  3. pass - FTP password 

4. http_request_timeout_seconds - timeout for all HTTP requests

5. on_trn_error_send_email - 1 = send email to inform of transaction error

6. smtp_to - list of recipient comma separated 

7. smtp_subject - email subject

Data manipulation options 

The other task’s tabs enable you manipulate the data to achieve the desired tabular data you wish to map to Pepperi fields.

Mappings

Mappings tab enables you to:

Map generated CSV columns to Pepperi fields (please note that alternatively you can upload the file as is and use the mapping option from the Pepperi Web Admin settings (see: Import your Items to Pepperi)

  1. Change the generated CSV columns to different column names
  2. Add “expressions” that would create new calculated columns that you can map to Pepperi. For example, to calculate a tax value, the unit price is multiplied by a tax rate of a specific region.

        Expressions syntax can be found here Expressions Syntax for Generic Plugin

 

Source:

For the HTTP Plugin use “Expression” to refer to any source column (original column) or any expression – fixed fields and custom fields are not used.

Target:

For the HTTP Plugin use “Fixed Fields” dropdown box to map to Pepperi’s fields and “Column Name” to refer to the new generated column name in case you want to change it. 

Settings

Settings tab enables you to add certain “per task” configuration settings.

There are many available settings – they are explained below.

Each settings field is described in the “Description” column.

To “turn on” each tab you need to assign a value of “1” to the appropriate Settings Field.

For example: to turn on the Join tab, you need to add new record with Field Name = join Field Value = 1

The reason for it is to enable you to turn off and on tabs and test your task with/without it.

 

List of settings fields relevant for HTTP data pulling:

  1. http_row_element - the element that represents row (in case of JSON array it would be “row”)

the HTTP plugin accepts either XML or JSON content as response – converts JSON to XML if required – then generates a flat CSV file will all the elements below the row element so that if the row element has sub_row below it will generate a column with the name: row_sub_row

  1. webapi -  1 = use Pepperi’s API to upload the CSV generated from HTTP request,  0 = use Pepperi’s FTP instead (recommended)
  2. prefix – the CSV’s file name prefix (file name conventions are listed here: Upload data to Pepperi via FTP using csv files )
  3. http_request_timeout_seconds - http request timeout in seconds
  4. loop_over_table - you can type here a task name and the http request will run in a loop over all the records generated by that task, for example if your API enables you to fetch 1 invoice details per request and you want to generate a CSV will all the invoices details– you would first create a task to fetch all the invoices headers and then loop over that task and fetch all its details.
  5. from_now_add - add X days to currents days. e.g.:  60 or -60. (useful when you want to fetch invoices from 60 days ago), you can refer to the generated date in the URL and in the Header as following: {#from_now_add#}  (see full list of Pepperi’s http request syntax- below)
  6. http_date_format - the date format generated from by
  7. donotsend - setting this to 1 will prevent uploading the file to Pepperi (for test scenarios)
  8. remove_duplicates - you can implement a “distinct” using this setting by removing the duplicated row, for example: “ItemId, PriveLevelId “will remove all lines that has the same ItemId and PriceLevelId.
  9. page_num_start - http pagination starting point (default is 1) this is impacting {#page_num#}  (see full list of Pepperi’s http request syntax- below)
  10. http_export_add_parents - since http_row_element generates CSV from that specified element and below – you can add specific parent elements (comma separated) you would like to add to each row (for example if a parent contains ID that you need to attach to all the lines) the path to the parent element is relative to the row element and is specified in XPATH. (e.g.: if ID is 2 levels above the row ../ID)
  11. http_export_skip_childs - specify elements you would like to “skip” and NOT generate from the JSON/XML to the CSV file (comma separated)
  12. create_categories - setting “1” will generate Main Categories in Pepperi if you also set the mapping to “Main Category” in the mappings tab.
  13. create_filters - setting “1” will generate Filters in Pepperi if you also set the mapping to “Main Category” and to “Property(Filter)” in the mappings tab (filters are created per each category)
  14. http_sleep_miliseconds – specify milliseconds sleep between each request (for paging and looping over table)
  15. key_val_table_id – generates Pepperi’s user defined table CSV input from a standard CSV file generated by the task, this settings fields defines the hard coded MapDataExternalID
  16. key_val_main_key_col – generates Pepperi’s user defined table CSV input from a standard CSV file generated by the task, this settings fields defines the original CSV column content that will be the MainKey
  17. key_val_secondary_key_col – generates Pepperi’s user defined table CSV input from a standard CSV file generated by the task, this settings fields defines the original CSV column content that will be the SecondaryKey
  18. key_val_hidden_col – generates Pepperi’s user defined table CSV input from a standard CSV file generated by the task, this settings fields defines the original CSV column content that will be the Hidden
  19. key_val_separator – generates Pepperi’s user defined table CSV input from a standard CSV file generated by the task, this settings fields defines the separator that will separate between each column – since all columns are generated as 1 array – default is ~

 

 Format

  

Format tab enables you to change column’s format, so that for example a number would appear with 1 decimal point instead of 4

Column Name – The column name you want to format

Number Format- Number formats -  for example: 0.0 (1 decimal point)

Date Format – Date formats: for example, dd/MM/yyyy  (29/12/2016)

Upper/Lower Case– define upper or lower case:   optional values: “up”/” low”

 

Full documentation of the format options could be found here: Format Syntax for Generic Plugin 

Join

 

 

Join tab enables you to join unlimited number of CSV files generated from your various tasks in SQL-style syntax.

Task Name –   the task name. e.g.:  Item Export

Columns –  the columns you want to pick from the joined task.

 * represents all columns, for specific columns:   ItemName, ItemPrice (if there is a space the syntax is [Item Name])

Join Condition -   define the where condition that links between the tasks. 

The syntax is <added task column> = <existing task column> e.g.:  if my task returns a CSV file with column ID and I am adding a joined task that has ItemID in it – the syntax would be: ItemID = ID

If there are multiple columns linked they are comma separated. e.g.:  ItemID = ID , CategoryID = CatID

If the condition is text based the syntax is:  ItemID = ‘me item id’

For further advanced conditions see Advanced Where below.

Fixed Widths –  Not relevant for HTTP plugin (made for text files with fixed columns widths)

Advanced Condition – A full SQL based condition. e.g.: If your join condition has OR inside you should be using it as following:  ItemID =  ID OR ItemID = ‘1234’

 Pivot

 

 

Pivot tab enables you to link between unlimited number of CSV files generated from your various tasks in SQL-style syntax – but instead of multiplying the rows – to generate dynamically columns out of the linked task.

 

Task Name –   the task name. e.g.:  Item Export

SQL Query –  not in use for the HTTP Plugin (made for SQL plugin and desktop plugin)

Pivot Column -   the original column you want to generate multiple columns from.   e.g.: [Price Level Name] will generate many column names per each Price Level Name

Pivot Value–  the original column you want to take the values for the generated columns – either aggregate or top 1 value.   e.g.:  Price – will set the price as value per each price level.

Functions – aggregate function or top 1 value.  Top represents top 1 value, and other available functions are: sum, count, max, min.   you can have more than 1 function separated by comma. in this case multiple columns will be generated per each function.

Pivot Condition–  define the where condition that links between the tasks. 

The syntax is <added task column> = <existing task column> e.g.:  if my task returns a CSV file with column ID and I am adding a joined task that has ItemID in it – the syntax would be: ItemID = ID

If there are multiple columns linked they are comma separated. e.g.:  ItemID = ID , CategoryID = CatID

If the condition is text based the syntax is:  ItemID = ‘me item id’

Dynamic Mapping–  In case you use the plugin settings “Mapping” tab to map your fields to Pepperi’s fields – this option allows you to dynamically map generated pivot columns to Pepperi field.

For example - you can use it to make all your sales reps to the accounts sales rep field, so that you will dynamically assign multiple sales reps to single account.

 Replace

 

 

Replace tab enables you to replace characters within each data column you select.

Column –   the column name to replace that contains the character. e.g.:  ItemPrice

Find –  character to look for. It could be either an ASCII numeric value or text e.g.:  44 (ASCII value for comma) or just “,” (don’t add quotation mark just the comma)

Replace -   the character you wish to replace. e.g.:  if you want to replace comma with space you should enter 32 (ASCII value for space)

Split

 

Split tab enables you to split 1 column to multiple columns based on splitting character. For example, you can use the character “:” to generate multiple product category if the product description is in the following format:  Men : Clothes : Shirts

Column –   the column name that contains the splitting character. e.g.:  ItemDescription

Splitting Character –  character used to split and generate columns. It could be either an ASCII numeric value or text e.g.:  44 (ASCII value for comma) or just “,” (don’t add quotation mark just the comma)

Generated Columns Prefix -   generated columns prefix – for example: MainCategory prefix will generate columns: MainCategory1, MainCategory2 etc.

Union

  

Union tab enables you to merge multiple CSV files created by other tasks to 1 CSV file.

Task/File Name –   the task name to merge.

Real-time data updates from Pepperi to your back-office

 

Add a new “From Pepperi” Dataflow Task -

Go to the Dataflow Tasks -> Manage Tasks -> From Pepperi menu option

Click on "Add New Task" 

Task Name:  description of the task – e.g.:  Create Sales Order

Application: select “Generic HTTP Connector”

Source Object: select “Pepperi Transaction – Header”

Target Object: select “Generic Connector HTTP Importer”

 

Once you save the task – you can use the top menu bar to navigate to the new task and start configuring it.

Go to Dataflow Tasks -> From Pepperi -> <Your_Task_Name> (in this example "Create Sales Order")

Authentication

See above – OAuth authentication is only done once for all tasks – both from and to Pepperi.

Posting data

The next step would be to configure your HTTP request method

Method:  POST/PUT (usually for creating new transaction you use POST)

 

The next step is to configure the URL, Header and Body of the posted request to your system.

Enter the URL:

This is the HTTP Endpoint of your system's API.

Type in the HTTP Headers if there are any:

Enter the request’s Body:

 

 

Steps to generate your HTTP transaction request

  1. Download a sample of a Transaction XML from Pepperi’s Web Admin by following these instructions: Downloading configuration files
  2. Copy a sample of hard-coded request body (usually you have one in your system’s API documentation) and Paste it into the Body text area.
  3. Run the transaction test as explained below
  4. Replace the hard coded values with Pepperi’s fields place holders as explained below

Click "RUN >>" on the top right of the task.

This will pop up a transaction tester window that will enable you type in Pepperi’s transaction XML  >>  submit the transaction >> see the results on the left pane as it will be seen on the mobile app , and on the right pane – the complete log of the HTTP request and response. 

Please note that its recommended to change WrntyID of the transaction XML you are using for the test per each test request – since once a WrntyID was once successfully created – it will not enable you submitting it again to prevent duplications and therefore you will get the last successful response instead of the one you just submitted.

  

Pepperi’s HTTP request syntax 

You can use the following syntax anywhere in your URL, header or BODY.

  1. Place-holders from the transaction XML are represented as following: $#<field_name>#$

You can also type in an expression instead $#<expression>#$

Expression documentation is here: Expressions Syntax for Generic Plugin

  1. Place-holders from the settings (general or per task) are represented as following: !%field_name>%!
  2. When you create a transaction request usually that involves with generating array or some other repeated structure of transaction lines – to achieve that you use the syntax word: @@lines at the beginning of the lines part and in the end of it. For JSON requests that is usually a comma separator between the lines, if it is some other character you can define in in the settings field name: append_between_each_line

 

Formatting the data returned from your system 

By default, if your system returns one of the following HTTP Status Codes then the transaction is approved and returns to the mobile app in submitted status.

  1. 200 (OK)
  2. 201 (Created)
  3. 202 (Accepted) 

You can change this behavior by setting the task settings field:  use_http_status to “0” and define the expected “ok” actual value in the settings: result_status_ok

Pepperi’s mobile app enables you to display and integrate back 3 more fields at the time of the transaction: 

ExternalID – your system’s ID of the created transaction, and

HTML Message – a message you return in case of a business logic error that will enable the user correct the data input and submit the transaction again for approval.

Deep Link to your system’s transaction – a link you can click on and navigate straight into your system’s transaction, to view or even edit it.

Parsing these 3 fields from your system’s response Body – you can refer to the sequence number of the element returned – either XML or JSON, for example if your system’s transaction ID is returned third you can refer to it in the number 2 (since it starts from 0)

The ExternalID could be parsed from your response Body using the task’s setting field:  response_id_col

The HTML Message could be parsed from your response Body using the task’s setting field:  response_message_col

The Deep Link to your system’s transaction could be parsed from your response Body using a combination of 2 tasks setting fields:  response_internal_id_col and response_external_link

That is because many times the ExternalID is not the internal id of the transaction in your system - You would then type in the deep link URL combined with the internal id of the newly created transaction as following:  <your transaction url/ {#internal_id#} >

 

Last step – connect your Dataflow task to the transaction’s Webhook 

Copy the URL from the “Online Add On Url” and Paste it into Pepperi’s Online Add On, then add the Online Add-on to the desired transaction in the Transaction’s Workflows tab. For instructions on accessing the Workflows tab see: Sales Transaction Types - Actions, Workflows, ePayment and Settings

 

 

 

There are multiple data types you can load to Pepperi using CSV files with column headers. 

Data such as Items, Accounts, Accounts-Users, Accounts-Catalogs, Account-Types, Activities, Transactions and more may all be loaded using CSV files with headers.

Header names must exactly match the mapped field names listed in the Pepperi back office

This article will explain where to view the names and how to add/edit mapped names if they don't exist by default (not all fields are listed for mapping by default). It's very simple to add mapped names following these instructions, and it will ensure successful upload of your data over time.

Editing or Adding Mapped names 

You will first need to look at the list of available fields for the object you wish to load.

Let's take Items as an example. In the Pepperi Web Admin go to Settings -> Items -> Fields 

This area shows all the fields available for this type of object - in this example Items Fields.

The Mapped name is the name that must appear as the header of the column of your CSV file. For example, to load the Item Name, the column header should be "Description", as is shown in the mapped name below.

As you can see, by default not all fields have a mapped name assigned. In order to upload data to these fields, edit them and add a mapped name to be used in your CSV file.

Activating fields

Note that not all the fields are active by default. If you need to load data to a field that is not marked as active (it has only a green plus sign in the Actions column) then you need to activate it first by clicking on the plus sign, and then follow the instructions below to give it a mapped name.

 

Click on the edit icon for the field and type a mapped name. The mapped name can be any name you choose, it may also be identical to the Field name or the API name. This will not present any problem.

If you are automatically exporting files from your ERP to Pepperi, consult with your ERP administrator to choose a mapped name. The fields may have headers that are already coming from the ERP field names, and this may require you to use those same header names. 

Once you save the mapped name, the data loaded for that field will be mapped to it.

Creating mapped names ensures smooth upload of your data via CSV files.

Where are the fields for other object types listed?

For other objects, such as Accounts and Catalogs, the fields are listed in the Settings -> Accounts and Settings -> Catalogs areas. 

For Transaction Types and Activities, the fields are listed in the tab of each individual Activity Type.

For example, Settings -> Sales Activities -> Transaction Types, then edit the Transaction Type you wish to map the fields for and go to the Fields tab to see the full list of fields.

 

 

Main Category is a mandatory field in Pepperi. Since Quickbooks doesn't force a category field, we automatically create a 'General' main category, so items will upload without interference.

If you wish to replace the main category with your own category field, follow these steps:

  • First create a custom field in Quickbooks – populate that with your brands. (Please consult Quickbooks help on assistance in custom field creation)
  • Open up the scheduler (clock icon in your task bar), highlight the ‘items’ line and press RUN EXE
  • Once the export has completed, go into: C:\Program Files (x86)\Pepperi\Pepperi for Quickbooks\exporter\   and pick up items.csv. Check this new file has the updated custom fields you created
  • Go into the back office, Items -> Manage Items ->Import/Export -> Import and upload the items.csv file
  • Remove the ‘Main category’ mapping from the current column by changing it back to ‘Choose Value’
  • Select your new column populated by your custom field, and select main category from the drop down selection

Your current data will upload manually in this form. This is a one time operation - the mapping will be saved for any future automatic uploads.

The Pepperi for SAP tutorial is available here for download in PDF.