Welcome to IPL PUZZEL!

Empower your business with secure and seamless integration into Azure Services.
Our APIs are designed to help you efficiently manage personal data while streamlining automated workflows. Ensure compliance to meet your regulatory and operational needs.
Sign up Explore APIs

99.95% availability

Our APIs can be used for mission-critical systems.

25 million API calls daily

Our APIs define the industry's standards.

1 million active users

Millions of people trust us.

PROJECT DESCRIPTION:

The project involves creating an integration for the system PUZZEL for CLIENT1.The new integration aims to automate and streamline the process of updating personal data in the system to ensure accuracy and compliance with GDPR. Initially, the integration will focus on internal employees of organization Customer1 as a Proof Of Concept, with a plan to extend it to customers in the future. The solution should allow easy configuration for adding new customers without requiring additional development.

BACKGROUND AND PURPOSE:


Puzzel is a system CLIENT1 use for telephone exchange both internally and as a service for CLIENT1 customers. Currently, the data in system is manually updated without a defined process, leading to inaccuracies and non compliant to GDPR. The purpose of a new integration will be to get right personal data into CLIENT1 telephone exchange system (puzzel). The idea/goal with this solution is that CLIENT1 will offer this solution to its customers.
work flow

Business Process Flow

The Puzzel APIs are responsible for Post Get and Patch Requests/Response, validating the data and sending message to the service bus. Service bus topic is responsible of receiving the message and routing the message via service bus to the second function. This is where business logic to add the contacts to an internal table based on the input data will happen. A third function (timer triggered, configurable schedule) should then be responsible of fetching the data from the table, transform to XSLX format, and upload the file to blob storage / Puzzel FTP-server.
Feature 1

POST API

Post your personal information by using Post API

Try it out
Feature 2

GET API

Get the information by using this API.

Try it out
Feature 3

PATCH API

You can easily update your information by using Patch API

Try it out
API Management/api/puzzel/v1/contact?customerKey={customerKey}

{

    "records": [

        {  "firstName": "John",

            "lastName": "Doe",

            "userId": "1",

            "title": "Consultant",

            "department": "567210",

            "email": "jone.doe@some.com",

            "phoneNumber": "07044553782",

            "mobilePhoneNumber": "07334457822",

            "endDate": "2022-05-30",

            "alternativeContact": ""

        }]}

The POST-function should:

1.      Parse message

2.     Validate all required fields, return an appropriate error message to the API- caller if required fields are missing

3.      Fetch configuration file “puzzelConfig/config.json” from IPL Table Storage and get the record where the customerKey from config file is matching the customerKey from API URL. If the key is not found in config file, return appropriate error message.

4.      If the “enabled” flag is set to false, the event should be skipped

5.      Upload the message to blob storage, container “puzzel-files/Create”

6.      Send message to service bus topic, using the following format.

Response 

200OK 

400 Bad Request

API Management/puzzel/v1/contact/{userId}?customerKey={customerKey}

{  "firstName": "John",

            "lastName": "Doe",

            "userId": "1",

            "title": "Consultant",

            "department": "567210",

            "email": "jone.doe@some.com",

            "phoneNumber": "07044553782",

            "mobilePhoneNumber": "07334457822",

            "endDate": "2022-05-30",

            "alternativeContact": ""

       

The PATCH-function should:

1.      Parse message

2.      Validate all required fields, return an appropriate error message to the API- caller if required fields are missing

3.      Fetch configuration file “puzzelconfig/config.json” from IPL Table Storage and get the record where the customerKey from config file is matching the customerKey from API URL. If the key is not found in config file, return appropriate error message

1.      User the userId from the API-URL to search in the “contactsTableName” from the config file. If the userId is not found, return an error message saying that user must exist to be updated

2.      Upload the message to blob storage, container “puzzel-files/Update”

3.      Send message to service bus topic, using the following format.

Response 

200OK 

404 Not Found  {

"errorCode": 404,

"errorMessage": "No user found with User ID {userId}. User must exist to be updated"

}

API Management/puzzel/v1/contact/{userId}?customerKey={customerKey}

{

    "alternativeContact": "",

    "department": "543210",

    "email": "anders.andersson@se.com",

    "endDate": "2024-06-30",

    "firstName": "Anders",

    "lastName": "Andersson",

    "mobilePhoneNumber": "0701112233",

    "phoneNumber": "0701112233",

    "title": "Manager",

    "userId": "12345"

}

 

The GET-function should:

1.      Parse message

2.      Validate all required fields, return an appropriate error message to the API-caller if required fields are missing

3.      Fetch configuration file “puzzelconfig/config.json” from IPL Table Storage and get the record where the customerKey from config file is matching the customerKey from API URL. If the key is not found in config file, return appropriate error message

 4.      User the userId from the API-URL to search in the “contactsTableName” from the config file. If the userId is not found, return an error message saying that user was not found

5.      Return the user data.

Response 

200OK 

404 Not Found  {

"errorCode": 404,

"errorMessage": "No user found with User ID {userId}"

}

Trust is our priority

"Contoso APIs drive our digital transformation. They are highly reliable and blazingly fast."
John Doe

CTO at Fabrikam