As a graduate of Y-Combinator, PartnerStack has been rooted in helping some of the world’s fastest growing SaaS companies scale. Companies like Asana, Monday.com, Unbounce, Intercom, and Intuit all use PartnerStack to manage and scale their partner programs, and onboard thousands of partners into our platform.
There are a few unique aspects to PartnerStack, which has led us to becoming the #1 platform on G2.
PartnerStack is the only solution that has both the PRM and a B2B focused marketplace that connects vendors with partners. On average, our marketplace drives a 30%+ lift in revenue for customers.
We are extremely focused on partner experience, which is a big distinction for us. Most PRMs are focused solely on the vendor experience. But if both sides of this equation are not having a good experience, then it becomes a problem.
And with PartnerStack, all of your channels can be managed from a single platform - affiliate, referral, reseller and ambassador. We see a lot of companies, agencies, and resellers choosing our platform to help them consolidate their channels into a single view.
How is your partnership team structured at PartnerStack?
Our team is still relatively young, as we launched it in April. The majority of this year has been building relationships and working with both agencies and resellers.
I lead the team, and we have an incredible Account Manager that works closely with our partners, as well as a partner marketing manager that works on any co-marketing efforts we run with partners.
Our partnership team is currently focused on two core areas:
We often work with sales when one of their SaaS prospects wants to launch PartnerStack right away but doesn’t have the internal bandwidth. In those cases, we connect them with an agency partner who we know can do it right away and do it well.
Technology partnerships are also on our radar. We have recently built a number of integrations. One of our goals in 2021 and going into 2022 will be to further build out our technology partner program and our own integration marketplace.
We also plan to enter the app marketplaces of other SaaS vendors, especially CRMs like SugarCRM or Hubspot. CRMs are good partners for us because, with the exception of Salesforce, no CRM has a PRM as part of their product offering. So our software is complementary rather than competitive. And it benefits our customers to have those systems integrated.
“If you’re planning to scale your partnerships at all, you need the infrastructure in place to do this.”
<center>- Nikita Zhitkevich<center></center></center>
What advice would you give for organizations trying to think through who their ideal partners are?
Ultimately, everything has to come down to revenue. Whether you’re pursuing referral, reseller, or technology partnerships, you have to tie them back to driving revenue.
Especially since you need the support of other departments in your organization, whether it is collaboration with the sales team or the product team to help build integrations, the benefit to the business needs to be very clear.
For agency and reseller partners, I would advise looking to see if they power similar products to yours. I’d also think about whether the partner will continue to evolve over time in the direction you are going and whether they truly understand your product and space.
NetSuite is one of the top cloud-based ERP systems, used globally to power a wide array of businesses and programs. For those who look to integrate with NetSuite successfully, building and maintaining integrations, particularly native ones, can be complex - NetSuite is highly customizable with several distinct APIs, all of which have their own best use cases for your needs.
At Pandium, we have significant experience developing robust, native integrations, including between NetSuite and other major platforms.
The complexity of ERP platforms in general, combined with the plethora of customization options in NetSuite can lead to unique challenges. In this article, we aim to help inform any NetSuite integration plans you might have by explaining some general NetSuite knowledge, as well as highlight some of the insights we’ve gathered through our work.
Table of Contents
• RESTlet
• REST
• SuiteQL
• SOAP
• How to Make a Dynamic SuiteQL Query
No matter what applications you’re trying to build, there’s a standard set of steps you’ll want to follow to ensure a successful foundation for any new integrations:
Auth
Selecting an authentication method, e.g. choosing between methods like OAuth 2.0 and token-based authentication.
Select an API
Choose which of the available NetSuite APIs will be useful for your needs - this would be using NetSuites SOAP, REST, or even RESTlets.
Steps to Configuring the NetSuite Account:
1. Create the integration record in NetSuite (the step when you specify authentication methods, callback URLs, and generate the consumer key and secret).
2. Create a role to use with the new integration. This is when permissions are determined.
This can be difficult especially when managing multiple NetSuite accounts and integrations. We’ve had to use a good deal of trial and error in this, and these two tools have been helpful for us in navigating this:
3. Use the role with the NS integration record to generate the token and token secret (in order to use OAuth1 you need the consumer id and consumer secret AND the token id and the token secret).
4. Pro-Tip: - Once you’ve gone through these basics, you should test your API access and credentials using something like Postman or Insomnia.
5. Set up your code repository by installing and configuring any necessary libraries in the appropriate integration repository. Certain NetSuite APIs require specific libraries in order to use the API. As an example, if you’re using SuiteTalk's SOAP API, you may need to install a SOAP library.
Let’s look at an overview of the available NetSuite APIs and integration tools that you may use when developing your apps:
1. SuiteScript
SuiteScript is based on JavaScript, and allows developers to create custom scripts and functions within NetSuite that can be triggered by specific events.
SuiteScript allows for extensive custom logic in NetSuite, including validation, reporting and dashboards customization, and data transformation. And with the ability to trigger on specific events, SuiteScript is a viable tool to automate multiple business processes and workflows within NetSuite.
-----
Looking for more content on integrations? Register for our event happening on March 22nd HERE.
-----
2. RESTlet
A RESTlet is a SuiteScript that executes when called by an external application or another SuiteScript, that may also return data to the calling application.
A RESTlet can perform any function that can be implemented by using SuiteScript. But with a couple advantages:
Note: If searching for advice about how to interact with NetSuite RESTlets, SuiteScript generally arises as a primary solution.
However, when we were developing we found that these tools didn’t seem to be valid solutions for us because they are written for a single NetSuite account at a time.
At Pandium, one of our tenets is to enable the capability to manage many NetSuite accounts with just one native, configurable integration. So we turned our attention to some of the other tools NetSuite offers.
3. REST
Many of NetSuite's REST API endpoints are still in Beta. Even the end points that are in GA only offer a top-level view on items since this API uses the HATEAOS constraint. HATEAOS requires multiple queries for each item, impacting performance.
To access Beta REST endpoints, you must have a NetSuite account, enable the feature in the account permissions configuration, as well as access to the NetSuite Beta Program. Once you see how the HATEAOS set up dictates how to request information from this API you'll probably decide that this isn't the best way to read information from NetSuite.
Why HATEAOS is Inefficient
Below is an example of a HATEAOS response for this GET order:
HATEAOS Response:
This response gives us information about an order, but what if we want to know which items are on the order?
Then we need to make the following GET request to the HATEAOS REST API:
After, we'll receive this response, which tells us how MANY items are on the order (i.e. 2), and what end points we can use to get the detailed information about those items:
So, as you can see, we need to make 4 GET requests to NetSuite to get some pretty basic information about this order with two items. That's very inefficient, especially when you consider you probably want to get information about many orders.
4. SuiteQL
SuiteQL is a query language that allows you to query the NetSuite data model; however, it only supports read operations. It’s technically a component of the REST API; often the one that is most valuable for getting information out of NetSuite.
Why SuiteQL is Much Better than HATEAOS
Let's compare SuiteQL to the previous example of HATEAOS. I can make one GET request to the REST API with a SuiteQL query to receive all the information that four GET requests to the HATEAOS REST API gave me.
GET Request:
Response:
You can be granular with the fields you get, and easily make joins to append fields from their associated records. This can be accomplished with one request, as opposed to the many requests you’d need to do with the HATEAOS constraint.
You might initially be intimidated by the prospect of writing your own SuiteQL queries, but there's are lots of resources to make this easier! The Records Catalog is a great reference to show which records exists, what fields they contain, and how records are related to one another.
The Records Catalog shows the kinds of records that exist, what fields are on each record, and how different kinds of records are related.
Because its content can vary based on how a NetSuite account is configured, so one needs to be logged into a particular NetSuite account to access the records catalog. For example:
5. SOAP
While SOAP is generally considered a pretty old way to arrange an API, when it comes to NetSuite that happens to mean it is more reliable. We've found the SOAP API is more useful than the REST API for writing information into NetSuite.
Here are some tips for getting comfortable with using their SOAP API:
What if the user wants the option to get additional transaction fields? Then you'll need to be able to change the SuiteQL query you send to NetSuite based on how the user has configured the integration. For example, this could look like:
The NetSuite platform is powerful, and their APIs are great tools for developing and automating business processes. With the right knowledge, and guidance around the many NetSuite idiosyncrasies, you can create streamlined operations and build robust apps to service a wide array of customers.
If you need assistance with a NetSuite integration project, or just don't want to deal with it yourself, reach out to us at Pandium. Our team has the experience and knowledge developing complex, native integrations across a variety of systems, and we can help you get the most out of NetSuite to accomplish your business goals.