EverReal
  • Introduction
  • Authentication
    • API ClientID and ClientSecret
    • Authentication limitations
  • Rate limiting
  • Helpers
    • Errors
    • Pagination
    • Formatting
  • How to guide
    • EverReal Data Import Process
      • Connect an Integration
      • Import Mappers
      • Ideal CSV Structure
      • Debug Imports
      • FAQ
    • Data import via GraphQL
  • Endpoints
    • Account users / members
    • Owners
      • Owners Query
      • Owners Mutation
    • Property Groups
      • Property Groups Query
      • Property Group Mutation
    • Properties
      • Properties Query
      • Properties Mutation
    • Units
      • Units Query
      • Units Mutation
    • Listing
      • Listing Query
      • Listing Mutation
    • Candidates
      • Candidates Query
      • Candidate Mutation
    • Messages
    • Contact Activites
    • Tenants
      • Tenants Query
      • Tenant Mutation
    • Contract
      • Contract Query
      • Contract Mutation
    • Contacts
      • Contact Mutation
      • Contact Query
    • Document management
      • Document management
      • Simple file upload
    • Tasks
      • Tasks Query
    • Protocols
      • Protocol Query
  • Webhooks
    • Owner Events
      • OWNER_CREATED
      • OWNER_UPDATED
      • OWNER_DELETED
    • Property Events
      • PROPERTY_CREATED
      • PROPERTY_UPDATED
      • PROPERTY_DELETED
    • Unit Events
      • UNIT_CREATED
      • UNIT_UPDATED
      • UNIT_DELETED
    • Listing Events
      • LISTING_ACTIVATED
      • LISTING_ARCHIVED
      • LISTING_UPDATED
      • LISTING_DEACTIVATED
      • LISTING_CREATED
      • LISTING_PUBLISHED_TO_CHANNEL
      • LISTING_UNPUBLISHED_FROM_CHANNEL
    • Candidates Events
      • CANDIDATE_PARSED
      • LISTING_CANDIDATE_APPLIED
    • Listing Contracting Events
      • LISTING_CONTRACT_FLOW_SIGNED
      • LISTING_CONTRACT_FLOW_PARTIALLY_SIGNED
      • LISTING_CONTRACT_FLOW_WITHDRAWN
      • LISTING_CONTRACT_FLOW_STARTED
    • Listing Scheduling Events
      • LISTING_CANDIDATE_SCHEDULE_TIMESLOT_BOOKING_REMOVED_CANDIDATE
      • LISTING_CANDIDATE_SCHEDULE_TIMESLOT_BOOKING_REMOVED_ADMIN
      • LISTING_CANDIDATE_SCHEDULE_TIMESLOT_BOOKED_CANDIDATE
      • LISTING_CANDIDATE_SCHEDULE_TIMESLOT_BOOKED_ADMIN
      • LISTING_CANDIDATE_SCHEDULE_NEW_TIMESLOTS_REQUESTED
      • LISTING_CANDIDATE_SCHEDULE_INVITED_VIEWING
    • Protocol Events
      • PROTOCOL_COMPLETED
  • Change log
    • Releases
      • Introducing Mappers
      • Enhancements for GraphQL
      • Enhancements for Querying
      • Enhancements for Webhooks
    • Upcoming
      • Introduced Querying Protocol in GraphQL
Powered by GitBook
On this page
  • Mutation Types
  • Schema Definition

Was this helpful?

  1. Endpoints
  2. Owners

Owners Mutation

Mutation enables to create or update owner in EverReal

Mutation Types

Mutations are responsible to insert or update a specific register, the operation insert or update is defined by externalId, in case this owner was imported previously, this mutation will updated the resource, otherwise will create the property.

type Mutation {
    upsertOwner(owner:OwnerInput!)  
    deleteOwner(externalId: String!)  
}

Here are details on the capabilities of different mutations

  • The upsertOwner mutation is used to create or update an owner in Everreal system and owners added to the system cannot be modified by Everreal and if needs to be modified it should be done via the same endpoint itself.

  • The deleteOwner mutation is used to delete the owner relation with the external integration source, doing this will not delete the owner but instead it will remain as a detached owner from integration and can be modified using Everreal.

Schema Definition

items with ! notation are required

input OwnerInput {
  meta: MetaInformation!
  externalOwnerId: String! #externalId by which the owner is identified
  firstName: String!
  lastName: String!
  companyName: String
  email: String!
  phoneNo: String
  address: PersonalAddress
  bankDepositInformation: BankDepositInformation
  bankInformation: BankIformation
}

input PersonalAddress {
  streetName: String
  streetNumber: String
  zipCode: String
  city: String
  country: String
}

input BankDepositInformation {
  iban: String
  bic: String
  bankName: String
  accountHolderName: String
}

input BankIformation {
  bankName: String
  bankAddress: String
  bic: String
  iban: String
}

input MetaInformation {
  source: String! # source should be the integration source, so logo is visible in everreal
}

Below we are providing a full example how to create or update an owner, all this information is not required, only the ones that was using ! notation previously.

mutation {
  upsertOwner(
    owner: {
      meta: { source: "INTEGRATION_SOURCE" }
      externalOwnerId: "91001+002242"
      firstName: "Ivana"
      lastName: "Maric"
      email: "ivana.maric@everreal.com"
      companyName: "Everreal Gmbh"
      phoneNo: "+49 123 1231 1237"
      address: {
        streetName: "Villenallee"
        streetNumber: "21"
        zipCode: "40211"
        city: "Düsseldorf"
        country: "DE"
      }
    }
  ) {id}
}
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer ....");
myHeaders.append("Content-Type", "application/json");

var graphql = JSON.stringify({
  query: "mutation {\r\n  upsertOwner(\r\n    owner: {\r\n      meta: { source: \"INTEGRATION_SOURCE\" }\r\n      externalOwnerId: \"91001+002242\"\r\n      firstName: \"Ivana\"\r\n      lastName: \"Maric\"\r\n      email: \"ivana.maric@everreal.com\"\r\n      companyName: \"Everreal Gmbh\"\r\n      phoneNo: \"+49 123 1231 1237\"\r\n      address: {\r\n        streetName: \"Villenallee\"\r\n        streetNumber: \"21\"\r\n        zipCode: \"40211\"\r\n        city: \"Düsseldorf\"\r\n        country: \"DE\"\r\n      }\r\n    }\r\n  ) {\r\n    id\r\n  }\r\n}\r\n\r\n",
  variables: {}
})
var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: graphql,
  redirect: 'follow'
};

fetch("http://{subdomain}.everreal.co/api/reporting/graphql", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error))
PreviousOwners QueryNextProperty Groups

Last updated 2 years ago

Was this helpful?