AbEntry

AbEntry allows users to perform operations on an Address Book entry of a specific Type. See below some considerations for AbEntries:

  • Type: defines the Type of entity we are working on. Supported types are :
    • Company - An entity representing an organization or business.
      • In Create operations, If Type and ParentKey are omitted, Type will be set as Company.\
    • Individual - A person who owns and operates their own business.
      • In Create operations, Type should be set accordingly for an AbEntry to be created as Individual.\
    • Contact - A person who works for either a company or an individual.
      • In Create operations, If Type is not included and ParentKey is included, Type will be set as Contact.\
  • Some fields are mandatory based on the AbEntry Type:
    • CompanyName: This field is mandatory for the Company.\

    • LastName: This field is mandatory for Contact and Individual.\

    • ParentKey: This is mandatory for Contact and should be a key of an existing AbEntry (Company or Individual).\

  • When updating, ParentKey and Type cannot be changed. If those fields need to be changed, the entire AbEntry must be deleted, and a new one must be created.

HowTo's

Create - Individual

// POST https://api.maximizer.com/octopus/Create
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Data": {
            "Key": null,
            "Type": "Individual", // Mandatory
            "FirstName": "Marty",
            "LastName": "McFly", // Mandatory
            "CompanyName": "E. Brown Enterprises",
            "Phone": "123456789",
            "Email": "[email protected]",
            "Address": {
                "AddressLine1": "1234 Main St.",
                "City": "Anytown",
                "StateProvince": "BC",
                "ZipCode": "12345",
                "Country": "CAN"
            }
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}

Create - Company

// POST https://api.maximizer.com/octopus/Create
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Data": {
            "Key": null,
            "CompanyName": "E. Brown Enterprises", // Mandatory
            "Phone": "123456789",
            "Website": "www.e-brown.com",
            "Address": {
                "AddressLine1": "1234 Main St.",
                "City": "Anytown",
                "StateProvince": "BC",
                "ZipCode": "12345",
                "Country": "CAN"
            }
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}

Create - Contact for existing company or individual

// POST https://api.maximizer.com/octopus/Create
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Data": {
            "Key": null,
            "FirstName": "Marty",
            "LastName": "McFly", // Mandatory
            "ParentKey": "QWJFbnRyeQkyNDA2MjkyNTAxMTI1OTg4MDAwMDRDCTA=", // Mandatory - Key of Company or Individual
            "Phone": "123456789",
            "Email": "[email protected]",
            "Address": {
                "AddressLine1": "1234 Main St.",
                "City": "Anytown",
                "StateProvince": "BC",
                "ZipCode": "12345",
                "Country": "CAN"
            }
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}

Create - Contact with security settings assigned to multiple groups

// POST https://api.maximizer.com/octopus/Create
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Data": {
            "Key": null,
            "FirstName": "Marty",
            "LastName": "McFly", // Mandatory
            "ParentKey": "Q29tcGFueQkyNTA2MjQyNTExMTkwMTg4NzAwMDJDCTA=", // Mandatory - Key of Company or Individual
            "Phone": "123456789",
            "Email": "[email protected]",
            "SecAccess": {
                // Keys of security groups that should have read access 
                "Read": [
                    "R3JvdXAJLkFfQ0FBLjAw",
                    "R3JvdXAJLkFDQ1RORzAw"
                ],
                // Keys of security groups that should have write access
                "Write": [
                    "R3JvdXAJLkFfQ0FBLjAw",
                    "R3JvdXAJLkFDQ1RORzAw"
                ]
            }
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}

Read - All properties are applicable to specific type of AbEntry

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "Schema": {
        "Scope": {
            "Fields": 1
        },
        "Criteria": {
            "SearchQuery": {
                "$AND": [
                    {
                        "Key": {
                            "$TREE": "/AbEntry"
                        }
                    },
                    {
                        "AppliesTo": {
                            "$IN": "Company" // Could be any type of AbEntry (Company, Individual, Contact)
                        }
                    }
                ]
            }
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}

Read - Individuals

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "MrMs": 1,
                "FirstName": 1,
                "LastName": 1,
                "CompanyName": 1, // Company name of the Individual
                "Email": 1,
                "Phone": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "Type": {
                    "$EQ": "Individual"
                }
            },
            "Top": 3
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}

Read - Companies

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "CompanyName": 1, // Company name
                "Phone": 1,
                "Address": { // Main address set
                    "AddressLine1": 1,
                    "AddressLine2": 1,
                    "City": 1,
                    "StateProvince": 1,
                    "ZipCode": 1,
                    "Country": 1,
                    "Description": 1
                }
            }
        },
        "Criteria": {
            "SearchQuery": {
                "Type": {
                    "$EQ": "Company"
                }
            },
            "Top": 3
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}

Read - Companies with pagination

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "ParentKey": 1,
                "Type": 1,
                "CompanyName": 1,
                "Position": 1,
                "Phone1": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone2": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone3": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone4": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "AccountManager": {
                    "Value": 1,
                    "Uid": 1
                },
                "Creator": {
                    "DisplayName": 1
                },
                "CreationDate": 1,
                "ModifiedBy": {
                    "DisplayName": 1
                },
                "LastModifyDate": 1,
                "Email1": {
                    "Address": 1,
                    "Description": 1
                },
                "Email2": {
                    "Address": 1,
                    "Description": 1
                },
                "Email3": {
                    "Address": 1,
                    "Description": 1
                },
                "WebSite": 1,
                "Address": {
                    "AddressLine1": 1,
                    "AddressLine2": 1,
                    "City": 1,
                    "StateProvince": 1,
                    "ZipCode": 1,
                    "Country": 1,
                    "Description": 1
                },
                "LastContactDate": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "Type": {
                    "$EQ": "Company"
                }
            }
        },
        "OrderBy": {
            "PageKey": null,
            "PageSize": 50,
            "Fields": [
                {
                    "CreationDate": "ASC"
                }
            ]
        }
    },
    "Configuration": {
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}

Read - Search by a company name

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "ParentKey": 1,
                "Type": 1,
                "CompanyName": 1,
                "Position": 1,
                "Phone1": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone2": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone3": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone4": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "AccountManager": {
                    "Value": 1,
                    "Uid": 1
                },
                "Creator": {
                    "DisplayName": 1
                },
                "CreationDate": 1,
                "ModifiedBy": {
                    "DisplayName": 1
                },
                "LastModifyDate": 1,
                "Email1": {
                    "Address": 1,
                    "Description": 1
                },
                "Email2": {
                    "Address": 1,
                    "Description": 1
                },
                "Email3": {
                    "Address": 1,
                    "Description": 1
                },
                "WebSite": 1,
                "Address": {
                    "AddressLine1": 1,
                    "AddressLine2": 1,
                    "City": 1,
                    "StateProvince": 1,
                    "ZipCode": 1,
                    "Country": 1,
                    "Description": 1
                },
                "LastContactDate": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "$AND": [
                    {
                        "Type": {
                            "$EQ": "Company"
                        }
                    },
                    {
                        "CompanyName": {
                            "$LIKE": "Ultimate%"
                        }
                    }
                ]
            }
        },
        "OrderBy": {
            "PageKey": null,
            "PageSize": 50,
            "Fields": [
                {
                    "CreationDate": "ASC"
                }
            ]
        }
    },
    "Configuration": {
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}

Read - Contacts

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "MrMs": 1,
                "FirstName": 1,
                "LastName": 1,
                "Parent": 1, // Parent company/individual of the contact. It's an AbEntry object so it can be expanded using any AbEntry property
                "CompanyName": 1, // Company name of parent
                "Email": 1,
                "Phone": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "Type": {
                    "$EQ": "Contact"
                }
            },
            "Top": 3
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}

Read - Search by Pharse (Contact or Individual)

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": {
                    "Id": 1,
                    "Value": 1
                },
                "MrMs": 1,
                "FirstName": 1,
                "LastName": 1,
                "Parent": 1, // Parent company/individual of the contact. It's an AbEntry object so it can be expanded using any AbEntry property
                "CompanyName": 1, // Company name of a parent AbEntry
                "Email": 1,
                "Phone": 1,
                "AccountManager": 1,
                "LastContactDate": 1,
                "Position": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "$AND": [
                    {
                        "$PHRASE": "Name: Johnson"
                    },
                    {
                        "Type": {
                            //if contactType is null comes both, if not comes as requested
                            "$IN": [
                                "Contact",
                                "Individual"
                            ]
                        }
                    }
                ]
            },
            "Top": 1
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}

Read - AbEntry by Key (Contact or Individual)

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": {
                    "Id": 1,
                    "Value": 1
                },
                "MrMs": 1,
                "FirstName": 1,
                "LastName": 1,
                "Parent": 1, // Parent company/individual of the contact. It's an AbEntry object so it can be expanded using any AbEntry property
                "CompanyName": 1, // Company name of the parent AbEntry
                "Email": 1,
                "Phone": 1,
                "AccountManager": 1,
                "LastContactDate": 1,
                "Position": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "$AND": [
                    {
                        "Key": {
                            "$EQ": "QWJFbnRyeQkyMjA1MDUyNTIyMjkzNzMxMjAwMzFDCTE="
                        }
                    },
                    {
                        "Type": {
                            //if contactType is null comes both, if not comes as requested
                            "$IN": [
                                "Contact",
                                "Individual"
                            ]
                        }
                    }
                ]
            },
            "Top": 1
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}

Read - Contacts with pagination

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "ParentKey": 1,
                "Type": 1,
                "Parent": {
                    "Type": 1,
                    "FirstName": 1,
                    "MiddleName": 1,
                    "LastName": 1
                },
                "CompanyName": 1,
                "FirstName": 1,
                "MiddleName": 1,
                "LastName": 1,
                "Position": 1,
                "Department": 1,
                "Division": 1,
                "Phone1": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone2": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone3": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone4": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "AccountManager": {
                    "Value": 1,
                    "Uid": 1
                },
                "Creator": {
                    "DisplayName": 1
                },
                "CreationDate": 1,
                "ModifiedBy": {
                    "DisplayName": 1
                },
                "LastModifyDate": 1,
                "Email1": {
                    "Address": 1,
                    "Description": 1
                },
                "Email2": {
                    "Address": 1,
                    "Description": 1
                },
                "Email3": {
                    "Address": 1,
                    "Description": 1
                },
                "WebSite": 1,
                "Address": {
                    "AddressLine1": 1,
                    "AddressLine2": 1,
                    "City": 1,
                    "StateProvince": 1,
                    "ZipCode": 1,
                    "Country": 1,
                    "Description": 1
                },
                "LastContactDate": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "Type": {
                    "$EQ": "Contact"
                }
            }
        },
        "OrderBy": {
            "PageKey": null,
            "PageSize": 50,
            "Fields": [
                {
                    "CreationDate": "ASC"
                }
            ]
        }
    },
    "Configuration": {
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}

Read - Search for contacts and individuals by e-mails

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "ParentKey": 1,
                "Type": 1,
                "Parent": {
                    "Type": 1,
                    "FirstName": 1,
                    "MiddleName": 1,
                    "LastName": 1
                },
                "CompanyName": 1,
                "FirstName": 1,
                "MiddleName": 1,
                "LastName": 1,
                "Position": 1,
                "Department": 1,
                "Division": 1,
                "Phone1": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone2": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone3": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "Phone4": {
                    "Extension": 1,
                    "Number": 1,
                    "Description": 1
                },
                "AccountManager": {
                    "Value": 1,
                    "Uid": 1
                },
                "Creator": {
                    "DisplayName": 1
                },
                "CreationDate": 1,
                "ModifiedBy": {
                    "DisplayName": 1
                },
                "LastModifyDate": 1,
                "Email1": {
                    "Address": 1,
                    "Description": 1
                },
                "Email2": {
                    "Address": 1,
                    "Description": 1
                },
                "Email3": {
                    "Address": 1,
                    "Description": 1
                },
                "WebSite": 1,
                "Address": {
                    "AddressLine1": 1,
                    "AddressLine2": 1,
                    "City": 1,
                    "StateProvince": 1,
                    "ZipCode": 1,
                    "Country": 1,
                    "Description": 1
                },
                "LastContactDate": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "Type": {
                    "$IN": ["Contact", "Individual"]
                },
                "Email": {
                    "$IN": [
                        "[email protected]",
                        "[email protected]"
                    ]
                }
            }
        },
        "OrderBy": {
            "PageKey": null,
            "PageSize": 50,
            "Fields": [
                {
                    "CreationDate": "ASC"
                }
            ]
        }
    },
    "Configuration": {
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}

Read - Contacts from specific parent (Company or Individual)

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "MrMs": 1,
                "FirstName": 1,
                "LastName": 1,
                "Parent": 1, // Parent company/individual of the contact. It's an AbEntry object so it can be expanded using any AbEntry property
                "CompanyName": 1, // Company name of parent
                "Email": 1,
                "Phone": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "ParentKey": { // Could be key for Company or Individual
                    "$EQ": "QWJFbnRyeQkyNDA2MTEyNTAyNTI1NjEzOTAwMDJDCTA="
                }
            },
            "Top": 3
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}

Read - Contacts and parent from specific parent (Company or Individual)

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "MrMs": 1,
                "FirstName": 1,
                "LastName": 1,
                "Parent": 1, // Parent Company/Individual of the Contact. It's an AbEntry object so it can be expanded using any AbEntry property
                "CompanyName": 1, // Company name of parent
                "Email": 1,
                "Phone": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "Key": {
                    "$EQ": {
                        "Body": "Q29tcGFueQkyMjA1MDUyNTIyMjczODY2NDAwMjlDCTA=", // Key for Company/Individual (parent)
                        "OrRelated": true // Retrieve the Company/Individual record and also all related Contacts
                    }
                }
            },
            "Top": 3
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}

Read - Contacts who report to a certain contact

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "Type": 1,
                "FullName": 1,
                "Email": 1,
                "ReportsToKey": 1,
                "Phone": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                // Specify an AbEntryKey of a Contact  
                "ReportsToKey": {
                    "$EQ": "QWJFbnRyeQkyNDA2MjkyNTAxMTI1OTg4MDAwMDRDCTA="
                }
            },
            "Top": 3
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": {
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.AbEntrySearcher"
        }
    }
}

Read - AbEntries using $PHRASE operator

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "Type": 1,
                "FullName": 1,
                "Parent": 1, // Parent company/individual of a contact. It's an AbEntry object so it can be expanded using any AbEntry property
                "Email": 1,
                "Phone": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "$PHRASE": "Jackson" // Specify the text User wants to search for. 
                //API will search for all AbEntries having such text in the Full Name 
                // - CompanyName for Companies or Individuals
                // - FirstName and LastName for Contacts or Individuals
            },
            "Top": 5
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}

Read - Last contacted AbEntries

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "Type": 1, // Type of the AbEntry (Company, Individual, Contact)
                "FullName": 1, // Full name of the person for contacts, full name of the person + company name for individuals or company name for companies
                "LastContactDate": 1
            }
        },
        "Criteria": {
            "SearchQuery": {},
            "Top": 10 // Number of entries you want
        },
        "OrderBy": {
            "Fields": [
                {
                    "LastContactDate": "DESC" // Returns the data in descending order of LastContactedDate 
                }
            ]
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for ordering by LastContactDate
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}

Read - AbEntry profile picture (Step 1 - get documentKey)

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
// To get the profile picture of an AbEntry first you must get the related DocumentKey, below payload will return that
{
    "Document": {
        "Scope": {
            "Fields": {
                "Key": 1 // Document key needed for Step 2
            }
        },
        "Criteria": {
            "SearchQuery": {
                "$AND": [
                    {
                        "ParentKey": {
                            "$EQ": "QWJFbnRyeQkyNDA2MjkyNTAxMTI1OTg4MDAwMDRDCTU=" // Key of the AbEntry you want to get the profile picture
                        }
                    },
                    {
                        "Type": {
                            "$EQ": 14
                        }
                    }
                ]
            }
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": {
        "Drivers": {
            "IDocumentSearcher": "Maximizer.Model.Access.Sql.DocumentSearcher"
        }
    }
}

Read - AbEntry profile picture (Step 2 - download binary)

// GET https://api.maximizer.com/octopus/DocumentDownload/RG9jdW1lbnQJMzcwMDUzNzMz
// Authorization: Bearer <token>
// To get the profile picture of an AbEntry first you must get the related DocumentKey. If you don't have that one then go to "Read - AbEntry profile picture (Step 1 - get documentKey)".

// After having the documentKey just add that one to the URL and you should get the binary after calling such endpoint

Read - AbEntry object using $INBOUND operator

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "Type": 1,
                "FullName": 1,
                "Parent": 1, // Parent company/individual of a contact. It's an AbEntry object so it can be expanded by using any AbEntry property
                "Email": 1,
                "Phone": 1,
                "Address": {
                    "AddressLine1": 1,
                    "AddressLine2": 1,
                    "City": 1,
                    "StateProvince": 1,
                    "ZipCode": 1,
                    "Country": 1,
                    "Description": 1
                }
            }
        },
        "Criteria": {
            "SearchQuery": {
                //Search for ab entries by geolocation polygon
                //Returns true\false if geolocation field is inside specified polygon
                //At least 4 points needs to be provided (for triangle)
                "$INBOUND(address/location, -125:50, -121:49, -125:49, -125:50)": {
                    "$EQ": true
                }
            },
            "Top": 10
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}

Read - AbEntry object with custom Globalization

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "Type": 1, // Type of the AbEntry (Company, Individual, Contact)
                "FirstName": 1, // Type of the AbEntry (Company, Individual, Contact)
                "LastName": 1, // Type of the AbEntry (Company, Individual, Contact)
                "FullName": 1, // Full name of the person for contacts, full name of the person + company name for individuals or company name for companies
                "Parent": 1, // For contacts it will contain the company/individual parent of such contact. It's an abEntry object so it can be expanded using any AbEntry property
                "LastContactDate": {
                    "Value": 1,
                    "DisplayValue": 1 // Will be affected by Globalization section
                }
            }
        },
        "Criteria": {
            "SearchQuery": {},
            "Top": 3
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    },
    // Globalization affects how the DisplayValue of date fields is formatted.
    // In this example, the DisplayValue for any date field (e.g., LastContactDate) will use the locale defined for the user in Maximizer CRM
    "Globalization": {
        "Culture": "$CURRENTUSER()"
    }
}

Metadata

Read AbEntry metadata (simple)

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "Schema": {
        "Scope": {
            "Fields": 1
        },
        "Criteria": {
            "SearchQuery": {
                "Key": {
                    "$TREE": "/AbEntry"
                }
            }
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}

Read AbEntry metadata (more)

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "Schema": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "Alias": 1,
                "Type": 1,
                "Name": 1,
                "AppliesTo": 1,
                "Sortable": 1,
                "Nullable": 1,
                "Assignable": 1,
                "Queryable": 1,
                "Mandatory": 1,
                "Attributes": 1,
                "HasOption": 1,
                "DisplayValue": 1,
                "Inactive": 1
            }
        },
        "Criteria": {
            "SearchQuery": {
                "Key": {
                    "$TREE": "/AbEntry"
                }
            }
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}

FieldOptions

Read AbEntry FieldOptions - Type

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    // Applicable to all those properties which have "HasOption": true
    "AbEntry": {
        "FieldOptions": {
            "Type": [
                {
                    "Key": 1,
                    "DisplayValue": 1
                }
            ]
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}

Read AbEntry FieldOptions - MrMs

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    // Applicable to all those properties which have "HasOption": true
    "AbEntry": {
        "FieldOptions": {
            "MrMs": [
                {
                    "Key": 1,
                    "DisplayValue": 1
                }
            ]
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}

Read AbEntry FieldOptions - Salutation

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    // Applicable to all those properties which have "HasOption": true
    "AbEntry": {
        "FieldOptions": {
            "Salutation": [
                {
                    "Key": 1,
                    "DisplayValue": 1
                }
            ]
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}

Read AbEntry FieldOptions - Division

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    // Applicable to all those properties which have "HasOption": true
    "AbEntry": {
        "FieldOptions": {
            "Division": [
                {
                    "Key": 1,
                    "DisplayValue": 1
                }
            ]
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}

Read AbEntry FieldOptions - Department

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    // Applicable to all those properties which have "HasOption": true
    "AbEntry": {
        "FieldOptions": {
            "Department": [
                {
                    "Key": 1,
                    "DisplayValue": 1
                }
            ]
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}

Read AbEntry FieldOptions - Position

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    // Applicable to all those properties which have "HasOption": true
    "AbEntry": {
        "FieldOptions": {
            "Position": [
                {
                    "Key": 1,
                    "DisplayValue": 1
                }
            ]
        }
    },
    "Compatibility": {
        "SchemaObject": "1.0"
    }
}

AbEntry CRUD

Create - AbEntry

// POST https://api.maximizer.com/octopus/Create
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Data": {
            "Key": null,
            // Type of AbEntries supported (Company, Individual, Contact)
            // Mandatory for Individual
            // If is not included but ParentKey is included then assumed as Contact
            // If is not included and ParentKey is also not included then assumed as Company
            "Type": "Company",
            "Email": "[email protected]",
            "Phone": "123456789",
            "Website": "www.example.com",
            "Address": {
                "AddressLine1": "1234 Main St.",
                "City": "Anytown",
                "StateProvince": "BC",
                "ZipCode": "12345",
                "Country": "CAN"
            },
            // ATTENTION
            // Below fields are mandatory based on the Type defined
            "CompanyName": "E. Brown Enterprises", // Mandatory for Type=Company
            "ParentKey": "QWJFbnRyeQkyMjA1MDUyNTE1MzY1OTg0NTAwMDVDCTA=", // Mandatory for Type=Contact - Must be AbEntryKey of Company or Individual
            "LastName": "McFly" // Mandatory for Type=Contact and Type=Individual
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}

Read - AbEntry

// POST https://api.maximizer.com/octopus/Read
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Scope": {
            "Fields": {
                "Key": 1,
                "Type": 1, // Type of the AbEntry (Company, Individual, Contact)
                "FullName": 1, // Full name of the person for contacts, full name of the person + company name for individuals or company name for companies
                "Parent": 1, // For contacts it will contain the company/individual parent of such contact. It's an abEntry object so it can be expanded using any AbEntry property
                "Website": 1,
                "Email": 1, // Default email set for the AbEntry
                "Phone": 1, // Default phone set for the AbEntry
                "Address": { // Main address set for the AbEntry
                    "AddressLine1": 1,
                    "AddressLine2": 1,
                    "City": 1,
                    "StateProvince": 1,
                    "ZipCode": 1,
                    "Country": 1,
                    "Description": 1
                }
            }
        },
        "Criteria": {
            "SearchQuery": {},
            "Top": 3
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    },
    "Configuration": { // Needed for displaying Parent property
        "Drivers": {
            "IAbEntrySearcher": "Maximizer.Model.Access.Sql.AbEntrySearcher"
        }
    }
}

Update - AbEntry

// POST https://api.maximizer.com/octopus/Update
// Authorization: Bearer <token>
{
    // ParentKey, Type CANNOT be updated
    "AbEntry": {
        "Data": {
            "Key": "Q29tcGFueQkyNDA3MDkyNTEwMTAxMTY4ODAwMDFDCTA=", // Mandatory
            "WebSite": "http://www.newsiteupdated.com",
            //Include here any other field you want to update
            // ATTENTION
            // Some fields can only be updated if the key corresponds to an specific abEntry Type
            "CompanyName": "CompanyName updated", // Can be updated only if Type=Company or Type=Individual
            "FirstName": "FirstName updated", // Can be updated only if Type=Contact or Type=Individual
            "LastName": "LastName updated" // Can be updated only if Type=Contact or Type=Individual
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}

Delete - AbEntry

// POST https://api.maximizer.com/octopus/Delete
// Authorization: Bearer <token>
{
    "AbEntry": {
        "Data": {
            "Key": "QWJFbnRyeQkyMjA1MDUyNTIyMjczODY2NDAwMjlDCTE=" // Mandatory
        }
    },
    "Compatibility": {
        "AbEntryKey": "2.0"
    }
}