Evo Voice

<back to all web services

NewIntegration

Creates a new integration

The following routes are available for this service:
POST/integrations
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using Voice.Api.Integrations;
using Voice.Api;
using Voice.Api.Customers;
using Voice.Api.Flows.Data;
using Voice.Api.Endpoints;

namespace Voice.Api
{
    public partial class EntityInfo
    {
        ///<summary>
        ///The ID of the object
        ///</summary>
        [ApiMember(Description="The ID of the object")]
        public virtual string Id { get; set; }

        ///<summary>
        ///The date the object was created
        ///</summary>
        [ApiMember(Description="The date the object was created")]
        public virtual string DateCreated { get; set; }

        ///<summary>
        ///The date the object was last modified
        ///</summary>
        [ApiMember(Description="The date the object was last modified")]
        public virtual string DateLastModified { get; set; }

        ///<summary>
        ///The user that created this object
        ///</summary>
        [ApiMember(Description="The user that created this object")]
        public virtual string CreatedBy { get; set; }

        ///<summary>
        ///The user that last modified this object
        ///</summary>
        [ApiMember(Description="The user that last modified this object")]
        public virtual string LastModifiedBy { get; set; }
    }

}

namespace Voice.Api.Customers
{
    public partial class CustomerBreadcrumb
    {
        public virtual string Id { get; set; }
        public virtual string Name { get; set; }
    }

}

namespace Voice.Api.Endpoints
{
    public enum UserDataFieldModes
    {
        Hidden,
        ReadOnly,
        ReadWrite,
    }

}

namespace Voice.Api.Flows.Data
{
    public partial class DataField
    {
        public virtual string Id { get; set; }
        public virtual string Name { get; set; }
        public virtual ValueTypes Type { get; set; }
        public virtual UIHints UIHint { get; set; }
        public virtual string UITab { get; set; }
        public virtual bool IsAsync { get; set; }
        public virtual bool DisableBinding { get; set; }
        public virtual DataType StructType { get; set; }
        public virtual DataType ListType { get; set; }
        public virtual string Description { get; set; }
        public virtual List<string> PossibleValues { get; set; }
        public virtual bool IsOutput { get; set; }
        public virtual string CustomFieldValuesUrl { get; set; }
        public virtual Value DefaultValue { get; set; }
        public virtual string TransitionNameFormat { get; set; }
        public virtual DataFieldUniqueness Uniqueness { get; set; }
        public virtual bool VoiceOnly { get; set; }
        public virtual string ConditionalVisibilityField { get; set; }
        public virtual string ConditionalVisibilityValue { get; set; }
        public virtual bool NoEvalTemplate { get; set; }
        public virtual UserDataFieldModes UserMode { get; set; }
        public virtual bool AnyValueType { get; set; }
    }

    public enum DataFieldUniqueness
    {
        NotUnique,
        Unique,
        UniqueToCustomer,
    }

    public partial class DataType
    {
        public virtual string TypeName { get; set; }
        public virtual List<DataField> Fields { get; set; }
    }

    public partial class Struct
        : Dictionary<string, Value>
    {
    }

    public enum UIHints
    {
        None,
        LargeText,
        InlineForm,
        Password,
        InlineStruct,
    }

    public partial class Value
    {
        public virtual bool? BoolValue { get; set; }
        public virtual string StringValue { get; set; }
        public virtual double? NumberValue { get; set; }
        public virtual List<Struct> ListValue { get; set; }
        public virtual Struct StructValue { get; set; }
    }

    public enum ValueTypes
    {
        NotSpecified,
        String,
        Boolean,
        Number,
        List,
        Struct,
        Transition,
        Custom,
        Date,
        AudioFile,
        TimeZoneId,
        PhoneNumber,
        User,
        Endpoint,
        Time,
        File,
        FaxNumber,
        EmailAccount,
        Customer,
        Flow,
        Team,
        FlowReference,
        Integration,
        Assistant,
    }

}

namespace Voice.Api.Integrations
{
    public enum IntegrationFeatures
    {
        CrmSync,
        OAuth2,
    }

    public partial class IntegrationInfo
        : EntityInfo
    {
        ///<summary>
        ///The ID of the account associated with this integration
        ///</summary>
        [ApiMember(Description="The ID of the account associated with this integration")]
        public virtual string AccountId { get; set; }

        ///<summary>
        ///The ID of the customer this integration is associated with
        ///</summary>
        [ApiMember(Description="The ID of the customer this integration is associated with")]
        public virtual string CustomerId { get; set; }

        ///<summary>
        ///The name of the customer this integration is associated with
        ///</summary>
        [ApiMember(Description="The name of the customer this integration is associated with")]
        public virtual string CustomerName { get; set; }

        ///<summary>
        ///The date the integration was sync'd last
        ///</summary>
        [ApiMember(Description="The date the integration was sync'd last")]
        public virtual string DateLastSync { get; set; }

        ///<summary>
        ///The breadcrumb to the customer for this integration
        ///</summary>
        [ApiMember(Description="The breadcrumb to the customer for this integration")]
        public virtual List<CustomerBreadcrumb> CustomerBreadcrumb { get; set; }

        ///<summary>
        ///The name of the integration (e.g. HostedSuite Dallas)
        ///</summary>
        [ApiMember(Description="The name of the integration (e.g. HostedSuite Dallas)")]
        public virtual string Name { get; set; }

        ///<summary>
        ///Automatically create new customers / users when sync'ing with CRM?
        ///</summary>
        [ApiMember(Description="Automatically create new customers / users when sync'ing with CRM?")]
        public virtual bool AutomaticallyCreateCustomers { get; set; }

        ///<summary>
        ///The type of integration
        ///</summary>
        [ApiMember(Description="The type of integration")]
        public virtual IntegrationTypes Type { get; set; }

        ///<summary>
        ///The status of the integration
        ///</summary>
        [ApiMember(Description="The status of the integration")]
        public virtual IntegrationStatuses Status { get; set; }

        ///<summary>
        ///The status of the integration
        ///</summary>
        [ApiMember(Description="The status of the integration")]
        public virtual string StatusMessage { get; set; }

        ///<summary>
        ///The settings type for this integration
        ///</summary>
        [ApiMember(Description="The settings type for this integration")]
        public virtual DataType SettingsDataType { get; set; }

        ///<summary>
        ///The settings for this integration
        ///</summary>
        [ApiMember(Description="The settings for this integration")]
        public virtual Struct Settings { get; set; }

        ///<summary>
        ///The features supported by this integration
        ///</summary>
        [ApiMember(Description="The features supported by this integration")]
        public virtual List<IntegrationFeatures> Features { get; set; }

        ///<summary>
        ///Is this integration authorized (OAuth)?
        ///</summary>
        [ApiMember(Description="Is this integration authorized (OAuth)?")]
        public virtual bool IsAuthorized { get; set; }
    }

    public enum IntegrationStatuses
    {
        NotConfigured,
        Error,
        OK,
    }

    public enum IntegrationTypes
    {
        HostedSuite,
        OfficeRnd,
        Zoho,
    }

    ///<summary>
    ///Creates a new integration
    ///</summary>
    [Api(Description="Creates a new integration")]
    public partial class NewIntegration
        : IPost
    {
        ///<summary>
        ///The account ID to associate this integration with
        ///</summary>
        [ApiMember(Description="The account ID to associate this integration with")]
        public virtual string AccountId { get; set; }

        ///<summary>
        ///The type of integration
        ///</summary>
        [ApiMember(Description="The type of integration")]
        public virtual IntegrationTypes Type { get; set; }

        ///<summary>
        ///The name of the integration
        ///</summary>
        [ApiMember(Description="The name of the integration")]
        public virtual string Name { get; set; }

        ///<summary>
        ///The parent customer for this integration
        ///</summary>
        [ApiMember(Description="The parent customer for this integration")]
        public virtual string CustomerId { get; set; }
    }

}

C# NewIntegration DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /integrations HTTP/1.1 
Host: team.evovoice.io 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<NewIntegration xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Voice.Api.Integrations">
  <AccountId>String</AccountId>
  <CustomerId>String</CustomerId>
  <Name>String</Name>
  <Type>HostedSuite</Type>
</NewIntegration>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<IntegrationInfo xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Voice.Api.Integrations">
  <CreatedBy xmlns="http://schemas.datacontract.org/2004/07/Voice.Api">String</CreatedBy>
  <DateCreated xmlns="http://schemas.datacontract.org/2004/07/Voice.Api">String</DateCreated>
  <DateLastModified xmlns="http://schemas.datacontract.org/2004/07/Voice.Api">String</DateLastModified>
  <Id xmlns="http://schemas.datacontract.org/2004/07/Voice.Api">String</Id>
  <LastModifiedBy xmlns="http://schemas.datacontract.org/2004/07/Voice.Api">String</LastModifiedBy>
  <AccountId>String</AccountId>
  <AutomaticallyCreateCustomers>false</AutomaticallyCreateCustomers>
  <CustomerBreadcrumb xmlns:d2p1="http://schemas.datacontract.org/2004/07/Voice.Api.Customers">
    <d2p1:CustomerBreadcrumb>
      <d2p1:Id>String</d2p1:Id>
      <d2p1:Name>String</d2p1:Name>
    </d2p1:CustomerBreadcrumb>
  </CustomerBreadcrumb>
  <CustomerId>String</CustomerId>
  <CustomerName>String</CustomerName>
  <DateLastSync>String</DateLastSync>
  <Features>
    <IntegrationFeatures>CrmSync</IntegrationFeatures>
  </Features>
  <IsAuthorized>false</IsAuthorized>
  <Name>String</Name>
  <Settings xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" />
  <SettingsDataType xmlns:d2p1="http://schemas.datacontract.org/2004/07/Voice.Api.Flows.Data" i:nil="true" />
  <Status>NotConfigured</Status>
  <StatusMessage>String</StatusMessage>
  <Type>HostedSuite</Type>
</IntegrationInfo>