How to: Store and retrieve external customers
External customers (CRM)
Wise can act as database for customers from external applications. For example a ticketing application can register customer information in Wise. The customer is stored with an role “XTRN” in Wise. The application can retrieve and update the information at a later time. When the customer also has a library subscription, then the existing patron will be used and the XTRN role will be added to his/her record.
The API-user must have the permission : ACTOREN update on organization (instantie) level.
Every external system must supply an application name for storing customers in Wise. For every customer a email address and customer number is mandatory. A customer number is a unique number for that customer in the external system.
Customers stored in Wise which do not have a library subscription can be found in the Wise staff application (Wise Client) and are "promoted" to a library member by subscribing to a membership.
Retrieving external customer
GET /patron/external/library/{libraryId}
payload : {'emailAddress': <EMAIL>, 'applicationName': <APPNAME> 'externalNo': <EXTERNALNO>}
Response
status 200 : Customer exists. The patronSystemId is returned and can be used in endpoints to get patron/customer information.
status 404 : Customer not found.
Storing external customer
Before storing a customer, the application must check whether the customer already exists by call the above mentioned endpoint.
POST /patron/external/library/{libraryid}
body = {"email": <EMAIL>, "applicationName": <APPNAME>, "externalNo": <EXTERNALNO>,
"firstName": <firstName>, "middleName": <middleName>, "lastName": <lastName>}
After successfully saving the customer a patronSystemId is returned. This can be used in other endpoints for saving more customer information like address, phone number and even financial records.