HelpSpot Help Desk Software | HelpSpot Blog | HelpSpot Support

API: privagte.request.create creates post with name of API user, not customer


I’m using private.request.create as the primary method for bringing customer requests into Helpspot. Everything seems OK, except there is one small oddity. In the Inbox and My Queue views the request lists the correct customer name, email and User ID values. However when viewing the full ticket, the initial post shows up in the request’s history as if the “API user” posted the message, and it shows as a “private note”. The staff reply goes to the customer, so it’s not a big deal, but it is a little confusing and odd, especially to staffers new to HelpSpot.

The request data is sent via HTTP_POST, using basic authentication using curl in PHP. For example:

curl_setopt($curl, CURLOPT_USERPWD, ‘’);
curl_setopt($curl, CURLOPT_URL, $this->helpSpotApiURL);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $queryString);
$queryString is this string

In this example, the request will have “Test Guy” as the customer name, and the staff reply will go to But looking at the Request History, the first post (i.e. the bottom item in the Request History) will show up with the name of the staff user account matching the authentication info.

How can I rectify this?


Hi Max,

Sorry for the delay on this. Yes, you need to set xPersonOpenedBy = 0 that will tell the system that the “customer” is opening it and not the user connecting to HS which is the default.


Ah great, a simple answer to a long question! Works perfectly. Thanks!


That should be in the API docs. Please. :slight_smile:


I added it a few days ago actually to the doc definition page, but I’ll go ahead and put a note in with that methods docs as well since it’s probably something people want to use :slight_smile:


I think I never noticed the API Field Definition document before. Nice.


I did notice it, but the wording for that particular field didn’t catch my eye in that way – after all the request record was showing up with the correct customer info, just that initial message in that request was showing up incorrectly.