NAV Navbar
json

WHAT IS FLOWFACT?

FLOWFACT is a platform-product which provides software as a service (saas) to the customer.

The goal of FLOWFACT is to provide software which enables the customer to automate his marketing and sales process by providing different applications that support those processes.

The variety of applications will grow continously and provide different solutions that help the customer to improve his marketing and sales tasks.

To get the best experience using the product, it might be necessary to customize the product itself or applications which are part of the core- or extension-features.

Therefore, this technical guide should provide you with all informations needed for customizing the product as a whole or parts of it.

The Core Structure of FLOWFACT

As already mentioned, FLOWFACT is a platform-based solution, which means that the product consists of multiple apps that are either written by the FLOWFACT-Team or authorized partners.

The biggest part in this structure is taken by the entities that are going to be sold and the contacts that take part in the selling-process. Examples for entities could be houses that will be brought to the market or apartments that could be rent out, if you’re an estate-broker. Contacts in this example should be the owner, potential buyers and everyone else that is involved in the marketing or sales processes. All applications at the platform will most likely be built around those informations.

Flowfact provides some basic editions that contain basic schemas, flywheels and kanbans.

Those informations can all be customized to fit the specific needs of the customer.

To understand how this works, we’ll take a look into how an edition is structured and which informations are contained in it.

First of all lets look at the following picture:

Each circle represents a folder.

Each box represents a file.

Wasn't able to load picture

As you can see, the Edition consists 3 folders and 3 files:

schemas:contains the schemas and their definitions which act as a blueprint for entities.

flywheels:contains the flywheels that will be used for representing the sales-processes.

kanbans:contains multiple kanbans which consist of different steps each. A kanban represents 1 phase in a flywheel, so each flywheel consists of 2 to x kanbans.

.bundle:emtpy file that defines that this folder is an edition.

details.json:contains informations about the edition. For example the creator, a short description, the name that should be displayed in the client for this edition and more.

bom.json:contains informations about the dependencies that this edition has. An edition can require the installation of other editions as well. For example if you want to install the residential-edition, the CRM-Edition will be installed automatically.

Structure of schemas

The schemas-folder consists of different schemas, that each describe a blueprint for an entity that is used in the application.

schema_1:The package that contains the schema is given a schema name.The name of the folder should be like the name you want to give the schema. For example if you want to create "Pet" entities your folder should be named "pets".

schema.json: The schema.json is a json file that contains the values that a schema and therefore entities that are based on this schema consist of.

views: Each view is stored as a json file. A View represents which data should be shown in a specific use-case.

entities: Each entity is represented by one json file and holds the data that the entity consists of.

integrations: An integration describes which values can be filled in an integration-case like a form that you provide at your Website. For example you create 2 Forms on your website, which create the same entity, but give different values that should be filled out. (Maybe you have a house-owner and a prospect for that house. Both of them are a contact-entity, but you need them to provide different data to work together with them.)

widgets: widgets consists of 2 different nodes: layout and widget. In widget json files will be stored, that describe how the data will be displayed (diagram, plain text and more) and the layout defines how the widget will be placed inside a component. This enables you to define the appearance of your data at a micro and macro-level.

How to use the FLOWFACT-API

What is an API?

API means „Application Programming Interface“ and it provides an interface that enables a developer to use specified resources to interact with the Software that the System provides.

What is needed to use the FLOWFACT-API

If you want to customize a FLOWFACT-system, you need authenticate against the services that you want to use. For that you’ll need a token. How you can get this token and use it against the services is described in the next section.

Get a Token to authenticate against the FLOWFACT-API

The following call allows to pass a userplatform token and to create a cognitotoken. This token is valid for approx. 30 min and must be refreshed.

Example Header:

"token":" d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

Respone:

"eyJraWQiOiIrSjVYZHE3ejRTbkV6ZytFUitrdFFZdVZcL00xZVlVYkd0YmxPenBtdFY4QT0iLCJhbGciOiJSUzI1NiJ9.eyJ zdWIiOiJiZTdhYzkwNi1lZTU4LTQ5YzEtYTIwOS00NTA5YmQ5NDdmM2EiLCJhdWQiOiIxNnVxcjFubmYzZWxuaHVuaTNldDc3 dm5mciIsImV2ZW50X2lkIjoiOTM0YThmMTUtNWU1OC0xMWU4LWEyY2YtODE3ZmZjMWMxNjhjIiwidG9rZW5fdXNlIjoiaWQiL CJhdXRoX3RpbWUiOjE1MjcwNTk1MTUsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC5ldS1jZW50cmFsLTEuYW1hem9uYX dzLmNvbVwvZXUtY2VudHJhbC0xX1JkSHpsU0tTMCIsImNvZ25pdG86dXNlcm5hbWUiOiJhZG1pbi11c2VyQDk3OGIzYjVjLTZ jMGItNGFmZC04MGFmLTk2ODJhNDMzZDc4NS5kZSIsImV4cCI6MTUyNzA2MzExNSwiaWF0IjoxNTI3MDU5NTE1LCJlbWFpbCI6 ImFkbWluLXVzZXJAOTc4YjNiNWMtNmMwYi00YWZkLTgwYWYtOTY4MmE0MzNkNzg1LmRlIn0.chJ-chFVARPenNV3x1dDOxYlN sxe7lZGauFul0ZgfgmIJ6PNUPPjsNv_Lx3PaiwZv8g-nLzQWGlt90pAWvAhL7P1MmeNZVkGmsjCgGx31A-O4yE6W--YQpK3EP scV_f8QyoQ6W97z8Ebrodj3ZZdjpOarYvf-Iy-kV1TJXrihm5FBJdMN9C-r-k-bCLMtEFkqSxJvOLiCG3UjFwp6IcwXNJ3qA4 onQ4VGOo5exbMBVkVJBFKd-lgE8-u2jcVIOKD7Beb16jENCHVf05knFmU3NezYBeBLu_qC-n3QrSIVS6A-CbKVwJUfzP7aa OqS9fijNgAOlREmldvigKhsLuw"

HTTP Request

Resource

GET https://api.production.cloudios.flowfact-prod.cloud/admin-token-service /stable/public/adminUser/authenticate

Header Type Default Description
token String - The user-token that is provided by FLOWFACT

It is used for authentication for all services and also defines the access rights and visibility (ACL) of data.

The userplatform token that is needed to generate the cognitotoken (which allows to make calls against the API) currently will be provided by a FLOWFACT. The userplatform token will only be provided to the owner of the platform-user. If you’re developing against the API or try to make changes for a platform-user, the user has to provide you with the token. He will get his token when he asks the FLOWFACT-Team.

API-Responses

The FLOWFACT-API usually sends response to API-calls as JSON-Objects or with a String. The response is also shown in the right side.

Use Cases

Work with your data

Since the API-Documentation provides you with the necessary informations about how to use the API but doesn’t provide good examples about when the ressources should be used we’ll provide different default Use-Cases that may help you find a good way of making use of the API.

Get all existing estates

When FLOWFACT is delivered, the standard schema-group for estates is called “estates”. If you have changed the schema-group for estates, you first of all need to find the schema group which represents the estates in your software. If you didn’t change the schema-groups in your system you can skip to step 2.

Step Step Details
1 First of all start by calling the ressource Get all existing schema-groups Find the schema-group which represents the estates in your software.
2 Now you can use the search-api with Get all entities of a specific schema-group. Use the name that represents your schema-group for this call. The result will include all existing estates in your system that are connected to the estates schema-group.
3 In the response of step 2 are all data about your estates included if done correctly.

Customizing FLOWFACT

Create a custom edition for FLOWFACT

First of all it is necessary to understand what an edition is. An edition consists of different things that define a part of your workspace. For example the Commercial edition contains the schemas and views that are needed to create commercial estates and use them in flowfact correctly. Each edition is a bundle.

Let's create a custom edition as a sample together to get an understanding of how it works. In this case, let's create a custom edition for a pet-shop.

First of all we create the folder that represents the edition. Name the folder like the edition your going to create. In our case "petshop". To declare that this folder is a flowfact-edition we need to create an empty ".bundle" file. This file indicates that this folder is an edition and doesn't need to have any content.

After that we create a details.json file in the folder. The details.json file defines who the creator of the edition is, how the edition is named and contains a description for the edition.

The pet-shop will sell pets and foods for them. Since we want to track our customer-relation for the things that we sell we'll need to create a bom.json. In this file we define that this edition requires that the edition "CRM" is installed. We also define that customers will be able to install that edition manually.

After that we create a folder which is called "schemas". This folder will contain the pets and the food as schemas that we have in our system. For each schema we create a folder which is named like the schema we want to create. In our case we create a folder "pets" and a folder "pet_foods" more about how a schema is structured can be found here: structure of schemas.

Know the definition of the schemas can start. First of all let's define which values the pets that we want to create in the system will have.

We need to think about which fields we need, how we want to name them, and which value type they should store. For our pets it will look like this :

Fieldname Type Description internal name
ID text The id of the entity identifier
Name text Name of the pet name
Type List For example dog,cat,mouse type
Age Number Age of the pet age
Birthdate Date Birthdate of the pet birthdate
Size Unit - Number Size of the pet size
Healthcheck Checkbox If the pet is healthchecked healthcheck
NewOwner Schema-Link to contact The new Owner of the pet newowner
Sold Checkbox If the pet is already sold sold
Picture Media - Image Picture of the pet picture
Youtube Link Link For some pets we will make a short video to present them. ytlink
Documents Media - Documents Things like selling contract documents
Description Textarea Detailed description to the pet description

The internal name is necessary to define in a way that is good to remember, because we need it to define how our entities will be displayed in the client.

The schema.json can be found here.

As for the Food that we're going to sell as a petshop we create a "pet_foods" folder and in there a schema.json for it with the following values:

Fieldname Type Description internal name
ID text The id of the entity identifier
Name text Name of the pet food name
Type List For example dog,cat,mouse - food type
Expiration Date Date Expiration Date of the food expiration
Price Unit - Number Price of the food price
Stock Checkbox If the food is in stock stock
Deliverer Schema-Link to contact The deliverer deliverer
Picture Media - Image Picture of the pet picture
Purchase Link Link Link to purchase more of the food. pclink
Description Textarea Detailed description to the pet description

The schema.json can be found here.

So we created the schemas for our pets and the food that we're going to sell. But at the moment, we have no way defined of how we want to display the entities that will be created based on those schemas. To create a possibility that the entities can be displayed in the client, we need to create views that the client uses to display the data.

There are 4 different Views that the client currently uses to display data:

You should at least create those 4 Views for every schema in your edition that you want to display in the client.

To keep our example short at this point i'll link how the view.json files for the pets schema will look like :

I've also created the same files for the pet_foods schema. In the end of this Section i'll also present a link to a Github page which contains the PetShop-Edition as a boilerplate project to create new editions.

It is also possible to define more things for our schemas like widgets, and integrations but those will be covered later.

The next step for our edition should be creating new Flywheels and Kanbans that can be used for the schemas. In our sample we'll create a Pets-Flywheel only which consists of 3 Kanbans:

The Akquisition Kanban,The CareTaking Kanban and the Selling Kanban. Each Kanban consists of its own phases. Kanbans and Flywheels have there own folder which exists outside of the schema folder. So we need to go back to our main folder (where the details.json is located) and create a new folder "kanbans" and a new folder "flywheels".

As i already said, our Flywheel will consist of 3 kanbans, so we create 3 json files inside the kanban folder which look like those 3:

Each children object in the kanban files represents one step in the kanban, so it's pretty simple.

After we created the kanban files we need to create the flywheel file which now references to the names of the kanbans that it consists of (the order is important here!).

flywheel-1

Create those files for your edition and you have created your first edition!

Know you need to Zip the folder that contains all data and push it to FLOWFACT via the Bundle-Upload API. Since this API is not documented at the moment but will follow shortly send a mail to besnik.celaj@flowfact.de and i'll upload your edition.

If you want to download the PetShop sample that we created, you can fork from the repository here

Create a custom Applikation-Widget that can be displayed in the client

Will follow soon.

Create a custom Interactive Expose Template

An interactive-exposé template consists of four different file types:

Filetype Description
Json Defines the values that are mapped into the interactive-exposé and settings for the template.
Html Defines the components that are used. It is possible to use the values that are declared in the json file with placeholders here.
CSS Defines the styling of the Html-Components
Javascript Enables the possibility to use custom JS-Code inside the interactive-exposé

A defaultmapping.json is required for a custom interactive-exposé. It defines the default that is used for this interactive-exposé template. It is also possible to add a mapping file for each schema individually. If you want to define a specific mapping that is used for the flat_rent schema for example, you can create a flat_rent.json. The name of the json must exactly be like the schema-name of the entity that should receive a different mapping.

Key Description
maxStageCount The count of stages that the template has.
ratingSettings Settings about the rating-system that flowfact uses.
settings Settings for the interactive-exposé template.
advancedStageConfigurations advanced configurational settings for the stages
initialAgreement Informations that are shown in the agreement that is shown before the content of the interactive-exposé can be seen.
stageConfigurations configurations for the stages.
additionalData additional information for this interactive-exposé template
sections Defines the sections of the interactive-exposé template in the order they are displayed.

The json file:

The json file for the interactive-exposé template defines the mapping that is used for the selected schema or the default mapping that is used for every schema. It also contains informations about the template (for example how many stages the template has and so on).

Example json file

The html file:

The Html files contain the components that the interactive-exposé each component has it's own html-file and the html-file has to be named like the component. For example content.html. If you don't create html components the components that are defined in the json file will be shown in a default style. Within the html components you have the possibility to use placeholders that enable you to use the values that are defined in the json-mapping in your own components.

Example html file

The css file

The css file is used to style the components (those that are customly created but also those, that are used as default components that flowfact provide.)

Example css file

The js file

Currently there is no example of a js-file for the interactive-exposé available.

After the files are created you need to upload the template-files to the interactive-exposé service via the following ressource:

Create an interactive-exposé template

Schema-Api

A schema is a json-object which consists of the following key-values:

captions:

[
  {
    "key":"captions/default",
    "value":"Immobilien"
  }
]

groups:

[
  "schemas/schemas/949439e6-d853-4bde-a0b8- xxxxxxxxxxxxxx "
]

fields:

[
            {
                "settings": [
                    {
                        "key": "internal",
                        "value": "false"
                    },
                    {
                        "key": "type",
                        "value": "TEXT"
                    },
                    {
                        "key": "maxoccurs",
                        "value": "1"
                    },
                    {
                        "key": "displayinlist",
                        "value": "true"
                    },
                    {
                        "key": "captions/default",
                        "value": "Kennung"
                    }
                ],
                "name": "identifier"
            }
]

id:

"797f0dba-987b-4541-b79f-85c979820a08"

name:

"MyNewSchema"

_refs:

[
  {
      "id": "d7a64bea-f712-428e-9838- XXXXXXXXXX ",
      "uri": "users/users/d7a64bea- XXXX - XXXX - XXXX - XXXXXXXXXX ",
      "type": "user",
      "relation": "creator"
  },
  {
      "id": "797f0dba-987b-4541-b79f-85c979820a08",
      "uri": "companies/companies/797f0dba- XXXX - XXXX -XXXX-XXXXXXXXXX",
      "type": "company",
      "relation": "creator"
  }
]

Key Type Description
captions Array An array which defines how the schema will be displayed
groups Array Declares in which schema-groups this schema is listed
settings Array Defines which settings are used for this schema.
fields Array Declares the fields that are used in this schema with their value-type and name. A field object in the array contains of a settings object which defines which gives the possibility to declare the data-type, how many times this field can occur and much more. It also has a name key which defines how the field is named internally in the system.
id string Unique identifier which is used to identify a schema
name string Name which also is used in some cases by the system
_refs Array References to other data (for example the user and company that created this schema). This key should NOT be used when creating a schema or updating, as this may result in problems using this schema in the software. This key will be autofilled by the system!

Get all existing Schema Groups

Returns all existing schema-groups without their detailed informations.

Example Header:

"cognitoToken":" d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

Response:

[
    {
        "captions": [
            {
                "key": "captions/default",
                "value": "Immobilien"
            }
        ],
        "groups": [],
        "settings": [
            {
                "key": "group",
                "value": "true"
            }
        ],
        "fields": [],
        "id": "949439e6-d853-4bde-a0b8- XXXXXXXXXX ",
        "name": "estates",
        "_refs": [
            {
                "id": "d7a64bea-f712-428e-9838- XXXXXXXXXX ",
                "uri": "users/users/d7a64bea- XXXX - XXXX - XXXX - XXXXXXXXXX ",
                "type": "user",
                "relation": "creator"
            },
            {
                "id": "797f0dba-987b-4541-b79f-85c979820a08",
                "uri": "companies/companies/797f0dba- XXXX - XXXX -XXXX-XXXXXXXXXX",
                "type": "company",
                "relation": "creator"
            }
        ]
    }
]

HTTP Request

Resource

GET https://api.production.cloudios.flowfact-prod.cloud/schema-service /stable/schemas/groups

Header Type Default Description
cognitoToken String - The API-Token that is used to make calls.

Get all existing Schemas

Returns all existing schema-groups without their detailed informations.

Example Header:

"cognitoToken":" d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

Response:

 [
{
        "captions": [
            {
                "key": "default",
                "value": "Büro/Praxis-Kauf"
            }
        ],
        "groups": [
            "schemas/schemas/949439e6-d853-4bde-a0b8- xxxxxxxxxxxxxx "
        ],
        "settings": [],
        "fields": [
            {
                "settings": [
                    {
                        "key": "internal",
                        "value": "false"
                    },
                    {
                        "key": "type",
                        "value": "TEXT"
                    },
                    {
                        "key": "maxoccurs",
                        "value": "1"
                    },
                    {
                        "key": "displayinlist",
                        "value": "true"
                    },
                    {
                        "key": "captions/default",
                        "value": "Kennung"
                    }
                ],
                "name": "identifier"
            },
                ],
                "name": "textEstate"
            }
        ],
        "id": "b45d43ae-12c9-4bce-ad74-556adb218098",
        "name": "office_surgery_purchase",
        "_refs": [
            {
                "id": "d7a64bea-f712-428e-9838-2b2364dbdd93",
                "uri": "users/users/d7a64bea-f712-428e-9838-2b2364dbdd93",
                "type": "user",
                "relation": "creator"
            },
            {
                "id": "797f0dba-987b-4541-b79f-85c979820a08",
                "uri": "companies/companies/797f0dba-987b-4541-b79f-85c979820a08",
                "type": "company",
                "relation": "creator"
            }
        ]
    }
]

HTTP Request

Resource

GET https://api.production.cloudios.flowfact-prod.cloud/schema-service /stable/schemas

Header Type Default Description
cognitoToken String - The API-Token that is used to make calls.

Get a specific schema

Returns a specific schema with all informations it contains.

Example Header:

"cognitoToken":" d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

Response:

{
    "captions": [
        {
            "key": "captions/default",
            "value": "Immobilien"
        }
    ],
    "groups": [],
    "settings": [
        {
            "key": "group",
            "value": "true"
        }
    ],
    "fields": [],
    "id": "949439e6-d853-4bde-a0b8- XXXXXXXXXX ",
    "name": "estates",
    "_refs": [
        {
            "id": "d7a64bea-f712-428e-9838- XXXXXXXXXX ",
            "uri": "users/users/d7a64bea- XXXX - XXXX - XXXX - XXXXXXXXXX ",
            "type": "user",
            "relation": "creator"
        },
        {
            "id": "797f0dba-987b-4541-b79f-85c979820a08",
            "uri": "companies/companies/797f0dba- XXXX - XXXX -XXXX-XXXXXXXXXX",
            "type": "company",
            "relation": "creator"
        }
    ]
}


HTTP Request

Resource

GET https://api.production.cloudios.flowfact-prod.cloud/schema-service /stable/schemas/{schemaId}

Header Type Default Description
cognitoToken String - The API-Token that is used to make calls.

Create a schema

Returns a specific schema with all informations it contains.

Example Header:

"cognitoToken":"d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

"Content-Type":"application/json"

Example Body:

{
    "captions": [
        {
            "key": "default",
            "value": "NewSchema"
        }
    ],
    "groups":[],
    "settings":[],
    "fields":[
        {
            "settings": [
                {
                    "key":"type",
                    "value":"TEXT"
                },
                {
                    "key":"maxoccurs",
                    "value":"1"
                },
                {
                    "key":"captions/default",
                    "value":"NewInputField"
                }
            ],
            "name":"NewInputField"
        }
    ],
    "name":"newSchema"
}

Response:

{
    "captions": [
        {
            "key": "captions/default",
            "value": "Immobilien"
        }
    ],
    "groups": [],
    "settings": [
        {
            "key": "group",
            "value": "true"
        }
    ],
    "fields": [],
    "id": "949439e6-d853-4bde-a0b8- XXXXXXXXXX ",
    "name": "estates",
    "_refs": [
        {
            "id": "d7a64bea-f712-428e-9838- XXXXXXXXXX ",
            "uri": "users/users/d7a64bea- XXXX - XXXX - XXXX - XXXXXXXXXX ",
            "type": "user",
            "relation": "creator"
        },
        {
            "id": "797f0dba-987b-4541-b79f-85c979820a08",
            "uri": "companies/companies/797f0dba- XXXX - XXXX -XXXX-XXXXXXXXXX",
            "type": "company",
            "relation": "creator"
        }
    ]
}


HTTP Request

Resource

POST https://api.production.cloudios.flowfact-prod.cloud/schema-service /stable/schemas

Header Type Default Description
cognitoToken String - The API-Token that is used to make calls.
Content-Type String - The Content-Type that is used for the call. You need to set it to "application/json"
Parameter Type Required Description
captions Array Yes Defines the names that will be used in the client to display this schema.
groups Array No The Content-Type that is used for the call. You need to set it to "application/json"
settings Array No Settings that are set for this schema.
fields Array Yes Fields that this schema contains.
name String Yes The system-name of this schema.

Update a schema

Example Header:

"cognitoToken":"d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

"Content-Type":"application/json"

Example Body:

{
    "captions": [
        {
            "key": "default",
            "value": "NewSchema"
        }
    ],
    "groups":[],
    "settings":[],
    "fields":[
        {
            "settings": [
                {
                    "key":"type",
                    "value":"TEXT"
                },
                {
                    "key":"maxoccurs",
                    "value":"1"
                },
                {
                    "key":"captions/default",
                    "value":"NewInputField"
                }
            ],
            "name":"NewInputField"
        }
    ],
    "name":"newSchema"
}

Response:

{
    "captions": [
        {
            "key": "captions/default",
            "value": "Immobilien"
        }
    ],
    "groups": [],
    "settings": [
        {
            "key": "group",
            "value": "true"
        }
    ],
    "fields": [],
    "id": "949439e6-d853-4bde-a0b8- XXXXXXXXXX ",
    "name": "estates",
    "_refs": [
        {
            "id": "d7a64bea-f712-428e-9838- XXXXXXXXXX ",
            "uri": "users/users/d7a64bea- XXXX - XXXX - XXXX - XXXXXXXXXX ",
            "type": "user",
            "relation": "creator"
        },
        {
            "id": "797f0dba-987b-4541-b79f-85c979820a08",
            "uri": "companies/companies/797f0dba- XXXX - XXXX -XXXX-XXXXXXXXXX",
            "type": "company",
            "relation": "creator"
        }
    ]
}


HTTP Request

Resource

PUT https://api.production.cloudios.flowfact-prod.cloud/schema-service /stable/schemas/{schemaId}

Header Type Default Description
cognitoToken String - The API-Token that is used to make calls.
Content-Type String - The Content-Type that is used for the call. You need to set it to "application/json"
Parameter Type Required Description
captions Array Yes Defines the names that will be used in the client to display this schema.
groups Array No The Content-Type that is used for the call. You need to set it to "application/json"
settings Array No Settings that are set for this schema.
fields Array Yes Fields that this schema contains.
name String Yes The system-name of this schema.

Delete a schema

Example Header:

"cognitoToken":"d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

Response:

{
    "captions": [
        {
            "key": "captions/default",
            "value": "Immobilien"
        }
    ],
    "groups": [],
    "settings": [
        {
            "key": "group",
            "value": "true"
        }
    ],
    "fields": [],
    "id": "949439e6-d853-4bde-a0b8- XXXXXXXXXX ",
    "name": "estates",
    "_refs": [
        {
            "id": "d7a64bea-f712-428e-9838- XXXXXXXXXX ",
            "uri": "users/users/d7a64bea- XXXX - XXXX - XXXX - XXXXXXXXXX ",
            "type": "user",
            "relation": "creator"
        },
        {
            "id": "797f0dba-987b-4541-b79f-85c979820a08",
            "uri": "companies/companies/797f0dba- XXXX - XXXX -XXXX-XXXXXXXXXX",
            "type": "company",
            "relation": "creator"
        }
    ]
}


HTTP Request

Resource

DELETE https://api.production.cloudios.flowfact-prod.cloud/schema-service /stable/schemas/{schemaId}

Header Type Default Description
cognitoToken String - The API-Token that is used to make calls.

Entity-Api

An entity represents an existing object that is based on a schema Id. Therefore you cannot execute Operations for an Entity if you don’t have a schemaId for it. Entities consist of the following values:

fields:

[
    {
        "schemaFieldName": "id",
        "_id": "d9057180-fcf7-3233-e1f8-f0d9bda908dd"
    },
    {
        "schemaFieldName": "emsk"
    },
    {
        "schemaFieldName": "identifier",
        "values": [
            {
                "oldValue": "5006",
                "value": "5006"
            }
        ],
        "settings": {
            "internal": "false",
            "type": "TEXT",
            "maxoccurs": "1",
            "displayinlist": "true",
            "captions": {
                "default": "Kennung"
            }
        }
    }
]

_schema:

"xxxxx-xxxxxxxx-xxxxxxxxxxxx"

_id:

"xxxxx-xxxxxxxx-xxxxxxxxxxxx"

Key Type Description
fields Array An array which defines the values in the fields of that entity
_schema String Id of the schema that this entity is based on.
_id String Unique identifier that is used to identify that entity.

Get an existing Entity

Returns the entity that is given by the url-parameters.

Example Header:

"cognitoToken":" d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

Response:

{
    "id": "005c4eff-316a-4a91-8048-4a38485b84a7",
    "let": {
        "values": [
            false
        ]
    },
    "emsk": "9ab30ebd-096c-492e-88e3-d4f779518e91",
    "_acls": [
        {
            "id": "d7a64bea-f712-428e-9838-2b2364dbdd93",
            "uri": "users/users/d7a64bea-f712-428e-9838-2b2364dbdd93",
            "read": "true",
            "type": "user",
            "delete": "true",
            "search": "true",
            "update": "true"
        },
        {
            "id": "797f0dba-987b-4541-b79f-85c979820a08",
            "uri": "companies/companies/797f0dba-987b-4541-b79f-85c979820a08",
            "read": "true",
            "type": "company",
            "delete": "true",
            "search": "true",
            "update": "true"
        }
    ],
    "_refs": [
        {
            "id": "d7a64bea-f712-428e-9838-2b2364dbdd93",
            "uri": "users/users/d7a64bea-f712-428e-9838-2b2364dbdd93",
            "type": "user",
            "relation": "creator"
        },
        {
            "id": "797f0dba-987b-4541-b79f-85c979820a08",
            "uri": "companies/companies/797f0dba-987b-4541-b79f-85c979820a08",
            "type": "company",
            "relation": "creator"
        }
    ],
    "rooms": {
        "values": [
            2
        ]
    },
    "status": {
        "values": [
            "inactive"
        ]
    },
    "street": {
        "values": [
            "Margaretenstraße 27"
        ]
    },
    "contact": {
        "values": [
            "6e824eb0-85f9-4d8e-b21f-42a1a41a36f3"
        ]
    },
    "created": {
        "values": [
            1535958256
        ]
    },
    "elevator": {
        "values": [
            true
        ]
    },
    "headline": {
        "values": [
            "Musterdaten - Etagenwohung direkt im Herzen von Lichtenberg"
        ]
    },
    "landlord": {
        "values": [
            "5a6eb8f1-850d-41b3-b306-96d2b937c90d"
        ]
    },
    "latitude": {
        "values": [
            52.5079643
        ]
    },
    "modified": {
        "values": [
            1535958770
        ]
    },
    "priority": {
        "values": [
            0
        ]
    },
    "shutters": {
        "values": [
            true
        ]
    },
    "_metadata": {
        "id": "005c4eff-316a-4a91-8048-4a38485b84a7",
        "timestamp": "1548757379790",
        "documentType": "0e6a361c-0b64-4269-9377-339741592f79",
        "createdTimestamp": "1547645472562"
    },
    "addresses": {
        "values": [
            {
                "city": "Berlin",
                "type": "private",
                "state": null,
                "street": "Margaretenstraße 27",
                "country": "Deutschland",
                "zipcode": "10317",
                "district": null
            }
        ]
    },
    "condition": {
        "values": [
            "01"
        ]
    },
    "documents": {
        "values": []
    },
    "longImage": {
        "values": [
            {
                "uri": "https://s3.eu-central-1.amazonaws.com/cloudios.production.image/08/797f0dba-987b-4541-b79f-85c979820a08/a7/005c4eff-316a-4a91-8048-4a38485b84a7/pg/6f97f7e5-dd52-4b51-b989-96e5598d2966.jpg",
                "online": true,
                "headline": "",
                "position": 2,
                "description": ""
            },
            {
                "uri": "https://s3.eu-central-1.amazonaws.com/cloudios.production.image/08/797f0dba-987b-4541-b79f-85c979820a08/a7/005c4eff-316a-4a91-8048-4a38485b84a7/pg/984ae908-1d70-4ad5-9d64-0cfad5b6e002.jpg",
                "online": true,
                "headline": "",
                "position": 0,
                "description": ""
            },
            {
                "uri": "https://s3.eu-central-1.amazonaws.com/cloudios.production.image/08/797f0dba-987b-4541-b79f-85c979820a08/a7/005c4eff-316a-4a91-8048-4a38485b84a7/pg/7322fad6-f61e-4773-9ca5-375e474521d8.jpg",
                "online": true,
                "headline": "",
                "position": 1,
                "description": ""
            }
        ]
    },
    "longitude": {
        "values": [
            13.4974211
        ]
    },
    "mainImage": {
        "values": [
            {
                "uri": "https://s3.eu-central-1.amazonaws.com/cloudios.production.image/08/797f0dba-987b-4541-b79f-85c979820a08/a7/005c4eff-316a-4a91-8048-4a38485b84a7/pg/6c488d00-b42a-484e-b38e-b98e1a4b5ae2.jpg",
                "online": true,
                "headline": "",
                "position": 0,
                "description": ""
            }
        ]
    },
    "tradeType": {
        "values": [
            "0"
        ]
    },
    "cellararea": {
        "values": [
            32
        ]
    },
    "department": {
        "values": [
            "0"
        ]
    },
    "estatetype": {
        "values": [
            "01"
        ]
    },
    "identifier": {
        "values": [
            "5029"
        ]
    },
    "livingarea": {
        "values": [
            162
        ]
    },
    "numgarages": {
        "values": [
            1
        ]
    },
    "shortImage": {
        "values": []
    },
    "textEstate": {
        "values": [
            "Wohnen am Ostbahnhof. Leben Sie im Herzen von Berlin. In 10 Minuten mit der S-Bahn erreichen Sie sowohl den Alexanderplatzwie auch das Szeneviertel an der Warschauer Straße. Alle Apartmentswurde im Jahr 2018 fertiggestellt und verfügen serienmäßig über eine Hochwertige Einbauküche."
        ]
    },
    "barrierfree": {
        "values": [
            true
        ]
    },
    "internImage": {
        "values": []
    },
    "onlineImage": {
        "values": []
    },
    "no_of_floors": {
        "values": [
            2
        ]
    },
    "ceilingheight": {
        "values": [
            3
        ]
    },
    "purchaseprice": {
        "values": [
            171000
        ]
    },
    "typeofheating": {
        "values": [
            "FER"
        ]
    },
    "completiondate": {
        "values": [
            "Sofort"
        ]
    },
    "numberbedrooms": {
        "values": [
            2
        ]
    },
    "sendToLandlord": {
        "values": [
            false
        ]
    },
    "builtin_kitchen": {
        "values": [
            false
        ]
    },
    "fuelenergy_type": {
        "values": [
            "FER"
        ]
    },
    "groundplotImage": {
        "values": [
            {
                "uri": "https://s3.eu-central-1.amazonaws.com/cloudios.production.image/08/797f0dba-987b-4541-b79f-85c979820a08/a7/005c4eff-316a-4a91-8048-4a38485b84a7/pg/7381d82a-e3eb-4a70-8ce5-c561c5084d65.jpg",
                "online": true,
                "headline": "6",
                "position": 0,
                "description": ""
            },
            {
                "uri": "https://s3.eu-central-1.amazonaws.com/cloudios.production.image/08/797f0dba-987b-4541-b79f-85c979820a08/a7/005c4eff-316a-4a91-8048-4a38485b84a7/pg/82d534d4-6796-42b0-84ce-fea344fba5b8.jpg",
                "online": false,
                "headline": "",
                "position": 1,
                "description": ""
            },
            {
                "uri": "https://s3.eu-central-1.amazonaws.com/cloudios.production.image/08/797f0dba-987b-4541-b79f-85c979820a08/a7/005c4eff-316a-4a91-8048-4a38485b84a7/pg/f58b8e56-35f6-4f54-9624-f99dbe8573cf.jpg",
                "online": false,
                "headline": "",
                "position": 2,
                "description": ""
            }
        ]
    },
    "pass_valid_till": {
        "values": [
            1846015200
        ]
    },
    "showAsReference": {
        "values": [
            false
        ]
    },
    "textEnvironment": {
        "values": [
            "Hier befindet sich ein Windfang, ein großer Küchen- und Essbereich mit Kaminzimmer. Das große Wohnzimmer mit angrenzender überdachterSonnenterrasse bildet den Mittelpunkt des Hauses. Die Küche ist mit einerhochwertigen, noch sehr neuen Einbauküche inkl. hochwertigen Einbaugerätender Marke Miele ausgestattet. Ebenfalls befindet sich im unteren Bereich dasAnkleidezimmer mit angrenzendem Schlafzimmer, ein Wannen- und Duschbad sowie ein separates Gäste-WC. \n\nDas Dachgeschoss hat eine Nutzfläche von ca. 100 m².Vier weitere Zimmer wurde in Wohnraumqualität ausgebaut und haben, auf Grund der Dachschrägen, einen besonderen Wohlfühlcharme. Ein weiteres Duschbad ist ebenfalls vorhanden."
        ]
    },
    "country_zip_city": {
        "values": [
            "10317 Berlin"
        ]
    },
    "elevator_general": {
        "values": [
            "1"
        ]
    },
    "energyusagevalue": {
        "values": [
            35
        ]
    },
    "kitchen_existing": {
        "values": [
            false
        ]
    },
    "wheelchairaccess": {
        "values": [
            true
        ]
    },
    "commissionCompany": {
        "values": [
            ""
        ]
    },
    "commissionPartner": {
        "values": [
            ""
        ]
    },
    "commissioninclvat": {
        "values": [
            true
        ]
    },
    "numlivingbedrooms": {
        "values": [
            1
        ]
    },
    "commissionLandlord": {
        "values": [
            ""
        ]
    },
    "commissionProspect": {
        "values": [
            ""
        ]
    },
    "commissionTipGiver": {
        "values": [
            ""
        ]
    },
    "yearofconstruction": {
        "values": [
            2018
        ]
    },
    "commissionColleague": {
        "values": [
            ""
        ]
    },
    "energywithwarmwater": {
        "values": [
            true
        ]
    },
    "internaldescription": {
        "values": [
            "Musterdaten - ETW Margaretenstraße 27"
        ]
    },
    "energyefficienceclass": {
        "values": [
            "02"
        ]
    },
    "energidentificationdate": {
        "values": [
            1530396000
        ]
    },
    "energyidentificationtype": {
        "values": [
            "2"
        ]
    },
    "shownInInteractiveExpose": {
        "values": [
            true
        ]
    },
    "automatedSendingInteractiveExpose": {
        "values": [
            true
        ]
    }
}

HTTP Request

Resource

GET https://api.production.cloudios.flowfact-prod.cloud/entity-service /stable/schemas/{schemaId}/entities/{entityId}"

URL-Parameter Description
schemaId The schema id that this entity uses.
entityId The id of the entity.
Header Type Default Description
cognitoToken String - The API-Token that is used to make calls.

Create an Entity

Creates the entity that is posted. If the body is empty, a blank entity with an Id will be created and can be filled afterwards. Normally you will post the field-values in the body of the post-request. The rest will be filled automatically, you only need to provide the field-values that are defined in the schema.

Example Header:

"cognitoToken":" d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

Body:

{
"NewInputField":"Value"
}

Response:

{
    "id": "8123ef0b-055d-44ce-84f1-46ccafe54444",
    "_acls": [
        {
            "id": "d7a64bea-f712-428e-9838-2b2364dbdd93",
            "uri": "users/users/d7a64bea-f712-428e-9838-2b2364dbdd93",
            "read": "true",
            "type": "user",
            "delete": "true",
            "search": "true",
            "update": "true"
        },
        {
            "id": "797f0dba-987b-4541-b79f-85c979820a08",
            "uri": "companies/companies/797f0dba-987b-4541-b79f-85c979820a08",
            "read": "true",
            "type": "company",
            "delete": "true",
            "search": "true",
            "update": "true"
        }
    ],
    "_refs": [
        {
            "id": "d7a64bea-f712-428e-9838-2b2364dbdd93",
            "uri": "users/users/d7a64bea-f712-428e-9838-2b2364dbdd93",
            "type": "user",
            "relation": "creator"
        },
        {
            "id": "797f0dba-987b-4541-b79f-85c979820a08",
            "uri": "companies/companies/797f0dba-987b-4541-b79f-85c979820a08",
            "type": "company",
            "relation": "creator"
        }
    ],
    "status": {
        "values": [
            "active"
        ]
    },
    "_metadata": {
        "id": "8123ef0b-055d-44ce-84f1-46ccafe54444",
        "timestamp": "1550067148504",
        "documentType": "703d49e4-8afa-48af-884a-420c60e269e1",
        "createdTimestamp": "1550067148504"
    },
    "identifier": {
        "values": [
            "1"
        ]
    },
    "NewInputField": "value"
}


HTTP Request

Resource

POST https://api.production.cloudios.flowfact-prod.cloud/entity-service /stable/schemas/{schemaId}

URL-Parameter Description
schemaId The schema id that this entity uses.
Header Type Default Description
cognitoToken String - The API-Token that is used to make calls.

Update an Entity

Example Header:

"cognitoToken":" d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

Body:

{
"NewInputField":"Value"
}

Response:

{
    "captions": [
        {
            "key": "captions/default",
            "value": "Immobilien"
        }
    ],
    "groups": [],
    "settings": [
        {
            "key": "group",
            "value": "true"
        }
    ],
    "fields": [],
    "id": "949439e6-d853-4bde-a0b8- XXXXXXXXXX ",
    "name": "estates",
    "_refs": [
        {
            "id": "d7a64bea-f712-428e-9838- XXXXXXXXXX ",
            "uri": "users/users/d7a64bea- XXXX - XXXX - XXXX - XXXXXXXXXX ",
            "type": "user",
            "relation": "creator"
        },
        {
            "id": "797f0dba-987b-4541-b79f-85c979820a08",
            "uri": "companies/companies/797f0dba- XXXX - XXXX -XXXX-XXXXXXXXXX",
            "type": "company",
            "relation": "creator"
        }
    ]
}


HTTP Request

Resource

PATCH https://api.production.cloudios.flowfact-prod.cloud/schema-service /stable/schemas/{schemaId}/entities/{entityId}

URL-Parameter Description
schemaId The schema id that this entity uses.
entityId The id of the entity.
Header Type Default Description
cognitoToken String - The API-Token that is used to make calls.

Delete an entity

Example Header:

"cognitoToken":"d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

Response:

200 HTTP-OK

HTTP Request

Resource

DELETE https://api.production.cloudios.flowfact-prod.cloud/entity-service /stable/schemas/{schemaId}/entities/{entityId}

URL-Parameter Description
schemaId The schema id that this entity uses.
entityId The id of the entity.
Header Type Default Description
cognitoToken String - The API-Token that is used to make calls.

Duplicate an Entity

Example Header:

"cognitoToken":"d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

Response:

"d0f33533-df08-4429-8e29-7f52e0274e2f"

HTTP Request

Resource

POST https://api.production.cloudios.flowfact-prod.cloud/entity-service /stable/schemas/{schemaId}/entities/{entityId}/duplicate

URL-Parameter Description
schemaId The schema id that this entity uses.
entityId The id of the entity.
Header Type Default Description
cognitoToken String - The API-Token that is used to make calls.

Contacts-Api

A Contact defines an Entity that represents a person or company that is somhow involved in the transaction process. As default a contact-object has the following values:

firstName:

"Max"

lastName:

"Mustermann"

salutationLetter:

"Sehr geehrter Herr Mustermann"

salutation:

"Herr"

emails:

[
  "max.mustermann@email.com"
]

status:

"active"

identifier:

"1"

company:

"FLOWFACT"

phones:

[
  {
    "number":"0221995900",
    "note":"Private number"
  }
]

addresses:

[
  {
    "city":"Köln",
    "street":"holweiderstr. 5c",
    "state":"NRW",
    "country":"germany",
    "zipcode":"51065",
    "district":"Mülheim",
    "geolocation":{
      "latitude": 50.9637092,
      "longitude": 7.00747206795895 
    }
  }
]

id:

"5a6eb8f1-850d-41b3-XXXXXXXXXX"

_acls:

[
  {
    "id":"d7a64bea-f712-428e-9838-XXXXXXXX",
    "uri":"users/users/d7a64bea-f712-428e-9838-XXXXXXXXX",
    "read":"true",
    "type":"user",
    "delete":"true",
    "search":"true",
    "update":"true"
  },
  {
    "id":"d7a64bea-f712-428e-9838-XXXXXXXX",
    "uri":"companies/companies/d7a64bea-f712-428e-9838-XXXXXXXXX",
    "read":"true",
    "type":"company",
    "delete":"true",
    "search":"true",
    "update":"true"
  }
]

_refs:

[
  {
      "id": "d7a64bea-f712-428e-9838-XXXXXXXXX",
      "uri": "users/users/d7a64bea-f712-428e-9838-XXXXXXXXX",
      "type": "user",
      "relation": "creator"
  },
  {
      "id": "797f0dba-987b-4541-b79f-XXXXXXXXX",
      "uri": "companies/companies/797f0dba-987b-4541-b79f-XXXXXXXXX",
      "type": "company",
      "relation": "creator"
  }
]

latitude:

{ "values":[50.9637092]}

_metadata:

{
  "id": "5a6eb8f1-850d-41b3-b306-XXXXXXXXXX",
  "timestamp": "1549448053571",
  "documentType": "ab921760-5edd-4115-9ae5-XXXXXXXXX",
  "createdTimestamp": "1547645443731"
}

longitude:

{ "values":[7.00747206795895]}
Key Type Description
firstName String The firstname of the contact.
lastName String The lastname of the contact.
salutationLetter String The salutation that is used for letters.
salutation String Salutation that is used for everything except letters.
emails Array An Array which containts all emails that are associated with this contact.
status String The status that the contact is in. For example : active/archived.
identifier String The identifier that the contact has. This one is not the id that is used by the system internally.
company String The company that this contact is associated with.
phones Array An Array which contains all phone-numbers that are associated with this contact, including the purpose of the phone-number.
addresses Array An Array which contains all addresses that are associated with this contact.
id String Unique identifier that is used by the system.
_acls Array An array which defines the access rights that are defined for this contact.
_refs Array An array which contains information about the internal references to this contact (which company and user hat created this contact for example.)
latitude Object An object which contains the latitude value of the main address of this contact.
_metadata Object An object which contains the metadata that are associated with this contact.
longitute Object An object which contains the longitude value of the main address of this contact.

Searching for existing Contacts

To search for an existing contact there are three params that can be used for a quick search. Those params are : email, firstname and lastname. You dont need to provide every param but you need to provide the mail. The parameters need to be set as url-parameters. The result will be an array which contains all matched contacts.

Example Header:

"cognitoToken":" d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

Response:

{
    "entries": [
        {
            "firstName": "Max",
            "lastName": "Mustermann",
            "salutationletter": "Sehr geehrter Herr Mustermann",
            "salutation": "Herr",
            "emails": [
                "max.mustermann@email.de"
            ],
            "status": "active",
            "identifier": "1",
            "company": "",
            "phones": [
                {
                    "number": "0221995 0000",
                    "note": ""
                }
            ],
            "addresses": [
                {
                    "city": "Köln",
                    "street": "holweiderstr 5c",
                    "state": "",
                    "country": "",
                    "zipcode": "51065",
                    "district": "",
                    "geolocation": {
                        "latitude": 50.9637092,
                        "longitude": 7.00747206795895
                    }
                }
            ],
            "id": "5a6eb8f1-850d-41b3-b306-XXXXXXX",
            "_acls": [
                {
                    "id": "d7a64bea-f712-428e-9838-XXXXXXXXX",
                    "uri": "users/users/d7a64bea-f712-428e-9838-XXXXXXXXXX",
                    "read": "true",
                    "type": "user",
                    "delete": "true",
                    "search": "true",
                    "update": "true"
                },
                {
                    "id": "797f0dba-987b-4541-b79f-XXXXXXX",
                    "uri": "companies/companies/797f0dba-987b-4541-b79f-XXXXXXX",
                    "read": "true",
                    "type": "company",
                    "delete": "true",
                    "search": "true",
                    "update": "true"
                }
            ],
            "_refs": [
                {
                    "id": "d7a64bea-f712-428e-9838-XXXXXXX",
                    "uri": "users/users/d7a64bea-f712-428e-9838-XXXXXXXX",
                    "type": "user",
                    "relation": "creator"
                },
                {
                    "id": "797f0dba-987b-4541-b79f-XXXXXXXX",
                    "uri": "companies/companies/797f0dba-987b-4541-b79f-XXXXXXX",
                    "type": "company",
                    "relation": "creator"
                }
            ],
            "latitude": {
                "values": [
                    50.9637092
                ]
            },
            "_metadata": {
                "id": "5a6eb8f1-850d-41b3-b306-XXXXXXX",
                "timestamp": "1549448053571",
                "documentType": "ab921760-5edd-4115-9ae5-XXXXXXX",
                "createdTimestamp": "1547645443731"
            },
            "longitude": {
                "values": [
                    7.00747206795895
                ]
            }
        }
    ],
    "totalCount": 1,
    "page": 1,
    "pageSize": 100
}

HTTP Request

Resource

GET https://api.production.cloudios.flowfact-prod.cloud/contact-service /stable/contact?email={email}&firstname={firstName}&lastname={lastName}

URL-Parameter Description
email Email of the contact. Required.
firstname Firstname of the contact. Not required.
lastname Lastname of the contact. Not required.
Header Type Default Description
cognitoToken String - The API-Token that is used to make calls.

Creating a Contact

Example Header:

"cognitoToken":" d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

"Content-Type":"application/json"

Example Body:

{
    "firstName": "Maxi",
    "lastName": "Mistermann",
    "salutationletter": "Sehr geehrter Herr Mistermann",
    "salutation": "Herr",
    "emails": [
        "maxi.misterman@email.de"
    ],
    "status": "active",
    "identifier": "3",
    "company": "",
    "phones": [
        {
            "number": "0221995 0000",
            "note": ""
        }
    ],
    "addresses": [
        {
            "city": "Köln",
            "street": "holweiderstr 5c",
            "state": "",
            "country": "",
            "zipcode": "51065",
            "district": "",
            "geolocation": {
                "latitude": 50.9637092,
                "longitude": 7.00747206795895
            }
        }
    ],
    "latitude": {
        "values": [
            50.9637092
        ]
    },
    "longitude": {
        "values": [
            7.00747206795895
        ]
    }
}

Response:

"ab60c5fe-e27f-4bab-a8a8-xxxxxxxx"

HTTP Request

Resource

POST https://api.production.cloudios.flowfact-prod.cloud/contact-service/stable/contact

Header Type Default Description
cognitoToken String - The API-Token that is used to make calls.
Content-Type String - The Content-Type that is used for the call. You need to set it to "application/json"
Parameter Type Required Description
firstname String Yes Firstname of the Contact
lastname String Yes Lastname of the Contact
salutationletter String No Salutation that is used for the letter.
salutation String No Salutation that is used normally
emails Array Yes An array which consists of the emails that are associated with this contact.
status String No Status of the Contact.
identifier String No Identifier that is used in the View.
company String No Company that is associated with this contact.
phones Array No An array which consists of the phone numbers that are associated with this contact.
addresses Array No An array which consists of the addresses that are associated with this contact.
latitude Object No Latitude of the main address that is associated with this contact.
longitude Object No Longitude of the main address that is associated with this contact.

Get a specific contact

Example Header:

"cognitoToken":" d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

Response:

{
    "firstName": "Max",
    "lastName": "Mustermann",
    "salutationletter": "Sehr geehrter Herr Mustermann",
    "salutation": "Herr",
    "emails": [
        "max.mustermann@email.de"
    ],
    "status": "active",
    "identifier": "1",
    "company": "",
    "phones": [
        {
            "number": "0221995 0000",
            "note": ""
        }
    ],
    "addresses": [
        {
            "city": "Köln",
            "street": "holweiderstr 5c",
            "state": "",
            "country": "",
            "zipcode": "51065",
            "district": "",
            "geolocation": {
                "latitude": 50.9637092,
                "longitude": 7.00747206795895
            }
        }
    ],
    "id": "5a6eb8f1-850d-41b3-b306-XXXXXXX",
    "_acls": [
        {
            "id": "d7a64bea-f712-428e-9838-XXXXXXXXX",
            "uri": "users/users/d7a64bea-f712-428e-9838-XXXXXXXXXX",
            "read": "true",
            "type": "user",
            "delete": "true",
            "search": "true",
            "update": "true"
        },
        {
            "id": "797f0dba-987b-4541-b79f-XXXXXXX",
            "uri": "companies/companies/797f0dba-987b-4541-b79f-XXXXXXX",
            "read": "true",
            "type": "company",
            "delete": "true",
            "search": "true",
            "update": "true"
        }
    ],
    "_refs": [
        {
            "id": "d7a64bea-f712-428e-9838-XXXXXXX",
            "uri": "users/users/d7a64bea-f712-428e-9838-XXXXXXXX",
            "type": "user",
            "relation": "creator"
        },
        {
            "id": "797f0dba-987b-4541-b79f-XXXXXXXX",
            "uri": "companies/companies/797f0dba-987b-4541-b79f-XXXXXXX",
            "type": "company",
            "relation": "creator"
        }
    ],
    "latitude": {
        "values": [
            50.9637092
        ]
    },
    "_metadata": {
        "id": "5a6eb8f1-850d-41b3-b306-XXXXXXX",
        "timestamp": "1549448053571",
        "documentType": "ab921760-5edd-4115-9ae5-XXXXXXX",
        "createdTimestamp": "1547645443731"
    },
    "longitude": {
        "values": [
            7.00747206795895
        ]
    }
}

HTTP Request

Resource

GET https://api.production.cloudios.flowfact-prod.cloud/contact-service/stable/contact/{contactId}

URL-Parameter Description
contactId The id that is used to identify the contact.
Header Type Default Description
cognitoToken String - The API-Token that is used to make calls.

Delete a contact

Example Header:

"cognitoToken":" d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

Response:

HTTP-OK 200

HTTP Request

Resource

DELETE https://api.production.cloudios.flowfact-prod.cloud/contact-service/stable/contact/{contactId}

URL-Parameter Description
contactId The id that is used to identify the contact.
Header Type Default Description
cognitoToken String - The API-Token that is used to make calls.

Search-Api

The search-api enables the caller to search over all entities that are stored in the system. The search-api uses the “FLOWDSL” as Query-Language which enables to define the search conditions that are used.

Get all entities of a schema-group or schema

Example Header:

"cognitoToken":" d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

Example Body:

{
  "target": "ENTITY",
  "distinct":true
}

Response:

{
  "entries": [
    {
      "id": "005c4eff-316a-4a91-8048-4a38485b84a7",
      "let": {
        "values": [
          false
        ]
      },
      "emsk": "9ab30ebd-096c-492e-88e3-d4f779518e91",
      "_acls": [
        {
          "id": "d7a64bea-f712-428e-9838-2b2364dbdd93",
          "uri": "users/users/d7a64bea-f712-428e-9838-2b2364dbdd93",
          "read": "true",
          "type": "user",
          "delete": "true",
          "search": "true",
          "update": "true"
        },
        {
          "id": "797f0dba-987b-4541-b79f-85c979820a08",
          "uri": "companies/companies/797f0dba-987b-4541-b79f-85c979820a08",
          "read": "true",
          "type": "company",
          "delete": "true",
          "search": "true",
          "update": "true"
        }
      ],
      "_refs": [
        {
          "id": "d7a64bea-f712-428e-9838-2b2364dbdd93",
          "uri": "users/users/d7a64bea-f712-428e-9838-2b2364dbdd93",
          "type": "user",
          "relation": "creator"
        },
        {
          "id": "797f0dba-987b-4541-b79f-85c979820a08",
          "uri": "companies/companies/797f0dba-987b-4541-b79f-85c979820a08",
          "type": "company",
          "relation": "creator"
        }
      ],
      "rooms": {
        "values": [
          2
        ]
      },
      "status": {
        "values": [
          "inactive"
        ]
      },
      "street": {
        "values": [
          "Margaretenstraße 27"
        ]
      },
      "contact": {
        "values": [
          "6e824eb0-85f9-4d8e-b21f-42a1a41a36f3"
        ]
      },
      "created": {
        "values": [
          1535958256
        ]
      },
      "elevator": {
        "values": [
          true
        ]
      },
      "headline": {
        "values": [
          "Musterdaten - Etagenwohung direkt im Herzen von Lichtenberg"
        ]
      },
      "landlord": {
        "values": [
          "5a6eb8f1-850d-41b3-b306-96d2b937c90d"
        ]
      },
      "latitude": {
        "values": [
          52.5079643
        ]
      },
      "modified": {
        "values": [
          1535958770
        ]
      },
      "priority": {
        "values": [
          0
        ]
      },
      "shutters": {
        "values": [
          true
        ]
      },
      "_metadata": {
        "id": "005c4eff-316a-4a91-8048-4a38485b84a7",
        "timestamp": "1548757379790",
        "documentType": "0e6a361c-0b64-4269-9377-339741592f79",
        "createdTimestamp": "1547645472562"
      },
      "addresses": {
        "values": [
          {
            "city": "Berlin",
            "type": "private",
            "state": null,
            "street": "Margaretenstraße 27",
            "country": "Deutschland",
            "zipcode": "10317",
            "district": null
          }
        ]
      },
      "condition": {
        "values": [
          "01"
        ]
      },
      "documents": {
        "values": []
      },
      "longImage": {
        "values": [
          {
            "uri": "https://s3.eu-central-1.amazonaws.com/cloudios.production.image/08/797f0dba-987b-4541-b79f-85c979820a08/a7/005c4eff-316a-4a91-8048-4a38485b84a7/pg/6f97f7e5-dd52-4b51-b989-96e5598d2966.jpg",
            "online": true,
            "headline": "",
            "position": 2,
            "description": ""
          },
          {
            "uri": "https://s3.eu-central-1.amazonaws.com/cloudios.production.image/08/797f0dba-987b-4541-b79f-85c979820a08/a7/005c4eff-316a-4a91-8048-4a38485b84a7/pg/984ae908-1d70-4ad5-9d64-0cfad5b6e002.jpg",
            "online": true,
            "headline": "",
            "position": 0,
            "description": ""
          },
          {
            "uri": "https://s3.eu-central-1.amazonaws.com/cloudios.production.image/08/797f0dba-987b-4541-b79f-85c979820a08/a7/005c4eff-316a-4a91-8048-4a38485b84a7/pg/7322fad6-f61e-4773-9ca5-375e474521d8.jpg",
            "online": true,
            "headline": "",
            "position": 1,
            "description": ""
          }
        ]
      },
      "longitude": {
        "values": [
          13.4974211
        ]
      },
      "mainImage": {
        "values": [
          {
            "uri": "https://s3.eu-central-1.amazonaws.com/cloudios.production.image/08/797f0dba-987b-4541-b79f-85c979820a08/a7/005c4eff-316a-4a91-8048-4a38485b84a7/pg/6c488d00-b42a-484e-b38e-b98e1a4b5ae2.jpg",
            "online": true,
            "headline": "",
            "position": 0,
            "description": ""
          }
        ]
      },
      "tradeType": {
        "values": [
          "0"
        ]
      },
      "cellararea": {
        "values": [
          32
        ]
      },
      "department": {
        "values": [
          "0"
        ]
      },
      "estatetype": {
        "values": [
          "01"
        ]
      },
      "identifier": {
        "values": [
          "5029"
        ]
      },
      "livingarea": {
        "values": [
          162
        ]
      },
      "numgarages": {
        "values": [
          1
        ]
      },
      "shortImage": {
        "values": []
      },
      "textEstate": {
        "values": [
          "Wohnen am Ostbahnhof. Leben Sie im Herzen von Berlin. In 10 Minuten mit der S-Bahn erreichen Sie sowohl den Alexanderplatz wie auch das Szeneviertel an der Warschauer Straße. Alle Apartments wurde im Jahr 2018 fertiggestellt und verfügen serienmäßig über eine Hochwertige Einbauküche."
        ]
      },
      "barrierfree": {
        "values": [
          true
        ]
      },
      "internImage": {
        "values": []
      },
      "onlineImage": {
        "values": []
      },
      "no_of_floors": {
        "values": [
          2
        ]
      },
      "ceilingheight": {
        "values": [
          3
        ]
      },
      "purchaseprice": {
        "values": [
          171000
        ]
      },
      "typeofheating": {
        "values": [
          "FER"
        ]
      },
      "completiondate": {
        "values": [
          "Sofort"
        ]
      },
      "numberbedrooms": {
        "values": [
          2
        ]
      },
      "sendToLandlord": {
        "values": [
          false
        ]
      },
      "builtin_kitchen": {
        "values": [
          false
        ]
      },
      "fuelenergy_type": {
        "values": [
          "FER"
        ]
      },
      "groundplotImage": {
        "values": [
          {
            "uri": "https://s3.eu-central-1.amazonaws.com/cloudios.production.image/08/797f0dba-987b-4541-b79f-85c979820a08/a7/005c4eff-316a-4a91-8048-4a38485b84a7/pg/7381d82a-e3eb-4a70-8ce5-c561c5084d65.jpg",
            "online": true,
            "headline": "6",
            "position": 0,
            "description": ""
          },
          {
            "uri": "https://s3.eu-central-1.amazonaws.com/cloudios.production.image/08/797f0dba-987b-4541-b79f-85c979820a08/a7/005c4eff-316a-4a91-8048-4a38485b84a7/pg/82d534d4-6796-42b0-84ce-fea344fba5b8.jpg",
            "online": false,
            "headline": "",
            "position": 1,
            "description": ""
          },
          {
            "uri": "https://s3.eu-central-1.amazonaws.com/cloudios.production.image/08/797f0dba-987b-4541-b79f-85c979820a08/a7/005c4eff-316a-4a91-8048-4a38485b84a7/pg/f58b8e56-35f6-4f54-9624-f99dbe8573cf.jpg",
            "online": false,
            "headline": "",
            "position": 2,
            "description": ""
          }
        ]
      },
      "pass_valid_till": {
        "values": [
          1846015200
        ]
      },
      "showAsReference": {
        "values": [
          false
        ]
      },
      "textEnvironment": {
        "values": [
          "Hier befindet sich ein Windfang, ein großer Küchen- und Essbereich mit Kaminzimmer. Das große Wohnzimmer mit angrenzender überdachter Sonnenterrasse bildet den Mittelpunkt des Hauses. Die Küche ist mit einer hochwertigen, noch sehr neuen Einbauküche inkl. hochwertigen Einbaugeräten der Marke Miele ausgestattet. Ebenfalls befindet sich im unteren Bereich das Ankleidezimmer mit angrenzendem Schlafzimmer, ein Wannen- und Duschbad sowie ein separates Gäste-WC. \n\nDas Dachgeschoss hat eine Nutzfläche von ca. 100 m². Vier weitere Zimmer wurde in Wohnraumqualität ausgebaut und haben, auf Grund der Dachschrägen, einen besonderen Wohlfühlcharme. Ein weiteres Duschbad ist ebenfalls vorhanden."
        ]
      },
      "country_zip_city": {
        "values": [
          "10317 Berlin"
        ]
      },
      "elevator_general": {
        "values": [
          "1"
        ]
      },
      "energyusagevalue": {
        "values": [
          35
        ]
      },
      "kitchen_existing": {
        "values": [
          false
        ]
      },
      "wheelchairaccess": {
        "values": [
          true
        ]
      },
      "commissionCompany": {
        "values": [
          ""
        ]
      },
      "commissionPartner": {
        "values": [
          ""
        ]
      },
      "commissioninclvat": {
        "values": [
          true
        ]
      },
      "numlivingbedrooms": {
        "values": [
          1
        ]
      },
      "commissionLandlord": {
        "values": [
          ""
        ]
      },
      "commissionProspect": {
        "values": [
          ""
        ]
      },
      "commissionTipGiver": {
        "values": [
          ""
        ]
      },
      "yearofconstruction": {
        "values": [
          2018
        ]
      },
      "commissionColleague": {
        "values": [
          ""
        ]
      },
      "energywithwarmwater": {
        "values": [
          true
        ]
      },
      "internaldescription": {
        "values": [
          "Musterdaten - ETW Margaretenstraße 27"
        ]
      },
      "energyefficienceclass": {
        "values": [
          "02"
        ]
      },
      "energidentificationdate": {
        "values": [
          1530396000
        ]
      },
      "energyidentificationtype": {
        "values": [
          "2"
        ]
      },
      "shownInInteractiveExpose": {
        "values": [
          true
        ]
      },
      "automatedSendingInteractiveExpose": {
        "values": [
          true
        ]
      }
    }
  ],
  "totalCount": 15,
  "page": 1,
  "pageSize": 10000,
  "offset": 0,
  "size": 10000
}

HTTP Request

Resource

POST https://api.production.cloudios.flowfact-prod.cloud/search-service/stable/schemas/{schemaName}

URL-Parameter Description
schemaName The name of the schema-group or schema that all entities should be shown from.
Header Type Default Description
cognitoToken String - The API-Token that is used to make calls.

Interactive-exposé Api

API Calls that are related to the interactive-exposé

Create an interactive-exposé template

Example Header:

"cognitoToken":" d65e8119-6577-4806-XXXX-XXXXXXXXXXXX"

Example Body:

{
  "isPublic" : true,
  "templateFiles": "json Array which contains the files as formdata.",
  "templateName": "newTemplate",
  "templateNiceName": "NiceName"
}

Response:

HTTP-CREATED 201

HTTP Request

Resource

GET https://api.production.cloudios.flowfact-prod.cloud/interactive-expose-service/stable/interactiveExposes/templates/{templateName}

URL-Parameter Description
templateName The template-name that should be used for the new template that is created.
Header Type Default Description
cognitoToken String - The API-Token that is used to make calls.
Content-Type String - Set content-Type to application/json.
Parameter Type Required Description
isPublic boolean No If isPublic is true, this template is available for ALL customers that use flowfact. Default is false.
templateFiles Array Yes An array which consists of form-data files which represent the files that are used for the template.
templateName String Yes Defines the name that this template will have in the system.
templateNiceName String Yes Defines the nicename that this template will have in the system.

Errors

The FLOWFACT API uses the following error codes:

Error Code Meaning
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your API key is wrong.
403 Forbidden -- The kitten requested is hidden for administrators only.
404 Not Found -- The specified kitten could not be found.
405 Method Not Allowed -- You tried to access a kitten with an invalid method.
406 Not Acceptable -- You requested a format that isn't json.
410 Gone -- The kitten requested has been removed from our servers.
418 I'm a teapot.
429 Too Many Requests -- You're requesting too many kittens! Slow down!
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.