> ## Documentation Index
> Fetch the complete documentation index at: https://docs.superoffice.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Contact Selection From Shadow Selection

> Creates a new contact selection based on contact selection members from an existing shadow sale, appointment, project or document selection.

The new selection will always be static even if the original selection is dynamic.
NsApiSlow threshold: 5000 ms.



## OpenAPI

````yaml /openapi/agent/openapi-v3-SelectionAgent.json post /api/v1/Agents/Selection/CreateContactSelectionFromShadowSelection
openapi: 3.0.0
info:
  version: v1-Agents
  title: SuperOffice Agent API v1
  description: SuperOffice Agent API - SelectionAgent
  contact:
    name: SuperOffice DevNet
    url: https://docs.superoffice.com/en/api/index.html
    email: sdk@superoffice.com
servers:
  - url: http://localhost:56350
  - url: https://localhost:56350
security: []
tags: []
externalDocs:
  description: >-
    The SuperOffice DevNet Community has more documentation, examples, and
    discussion forums.
  url: https://community.superoffice.com/en/developer/
paths:
  /api/v1/Agents/Selection/CreateContactSelectionFromShadowSelection:
    post:
      tags:
        - Selection_Agent
      summary: Create Contact Selection From Shadow Selection
      description: "Creates a new contact selection based on contact selection members from an existing shadow sale, appointment, project or document selection.\n\nThe new selection will always be static even if the original selection is dynamic.\r\nNsApiSlow threshold: 5000 ms."
      operationId: v1SelectionAgent_CreateContactSelectionFromShadowSelection
      parameters:
        - name: $select
          in: query
          description: >-
            Optional comma separated list of properties to include in the
            result. Other fields are then nulled out to reduce payload size:
            "Name,department,category". Default = show all fields.
          required: false
          schema:
            type: string
        - name: Accept-Language
          in: header
          description: >-
            Convert string references and multi-language values into a specified
            language (iso2) code.
          required: false
          schema:
            type: string
        - name: SO-Language
          in: header
          description: >-
            Convert string references and multi-language values into a specified
            language (iso2) code. Overrides Accept-Language value.
          required: false
          schema:
            type: string
        - name: SO-Culture
          in: header
          description: >-
            Number, date formatting in a specified culture (iso2 language) code.
            Partially overrides SO-Language/Accept-Language value. Ignored if no
            Language set.
          required: false
          schema:
            type: string
        - name: SO-TimeZone
          in: header
          description: >-
            Specify the timezone code that you would like date/time responses
            converted to.
          required: false
          schema:
            type: string
        - name: SO-AppToken
          in: header
          description: >-
            The application token that identifies the partner app. Used when
            calling Online WebAPI from a server.
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/SuperOffice.WebApi.v1.Carriers.SelectionCarriers.CreateContactSelectionFromShadowSelectionRequest
          text/json:
            schema:
              $ref: >-
                #/components/schemas/SuperOffice.WebApi.v1.Carriers.SelectionCarriers.CreateContactSelectionFromShadowSelectionRequest
          application/xml:
            schema:
              $ref: >-
                #/components/schemas/SuperOffice.WebApi.v1.Carriers.SelectionCarriers.CreateContactSelectionFromShadowSelectionRequest
          text/xml:
            schema:
              $ref: >-
                #/components/schemas/SuperOffice.WebApi.v1.Carriers.SelectionCarriers.CreateContactSelectionFromShadowSelectionRequest
          application/x-www-form-urlencoded:
            schema:
              $ref: >-
                #/components/schemas/SuperOffice.WebApi.v1.Carriers.SelectionCarriers.CreateContactSelectionFromShadowSelectionRequest
          application/json-patch+json:
            schema:
              $ref: >-
                #/components/schemas/SuperOffice.WebApi.v1.Carriers.SelectionCarriers.CreateContactSelectionFromShadowSelectionRequest
          application/merge-patch+json:
            schema:
              $ref: >-
                #/components/schemas/SuperOffice.WebApi.v1.Carriers.SelectionCarriers.CreateContactSelectionFromShadowSelectionRequest
        description: SelectionId, Name
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuperOffice.CRM.Services.SelectionEntity'
            text/json:
              schema:
                $ref: '#/components/schemas/SuperOffice.CRM.Services.SelectionEntity'
            application/xml:
              schema:
                $ref: '#/components/schemas/SuperOffice.CRM.Services.SelectionEntity'
            text/xml:
              schema:
                $ref: '#/components/schemas/SuperOffice.CRM.Services.SelectionEntity'
            application/json-patch+json:
              schema:
                $ref: '#/components/schemas/SuperOffice.CRM.Services.SelectionEntity'
            application/merge-patch+json:
              schema:
                $ref: '#/components/schemas/SuperOffice.CRM.Services.SelectionEntity'
      security:
        - SuperOffice_Password: []
          SuperId_Authentication: []
components:
  schemas:
    SuperOffice.WebApi.v1.Carriers.SelectionCarriers.CreateContactSelectionFromShadowSelectionRequest:
      description: >-
        CreateContactSelectionFromShadowSelection: Creates a new contact
        selection based on contact selection members from an existing shadow
        sale, appointment, project or document selection. The new selection will
        always be static even if the original selection is dynamic.
      type: object
      properties:
        SelectionId:
          format: int32
          type: integer
        Name:
          type: string
    SuperOffice.CRM.Services.SelectionEntity:
      description: "Carrier object for SelectionEntity.\r\nServices for the SelectionEntity Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.ISelectionAgent\">Selection Agent</see>."
      type: object
      properties:
        Description:
          description: >-
            The actual text, max 2047 significant characters even though it is
            stored as a larger data type on some databases
          type: string
        Postit:
          description: >-
            The actual text, max 2047 significant characters even though it is
            stored as a larger data type on some databases
          type: string
        Associate:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Associate'
        CreatedBy:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Associate'
        UpdatedBy:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Associate'
        SelectionCategory:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.SelectionCategory'
        GroupIdx:
          format: int32
          description: Original primary user group of associate
          type: integer
        IncludePerson:
          format: int32
          description: >-
            0 = Include first person, 1 = Include all persons, 2 = Include no
            persons
          type: integer
        MemberCount:
          format: int64
          description: >-
            How many selectionmembers (for progress bar calculations) -
            estimate, -1 (or 4294967295) means we don't know
          type: integer
        Name:
          description: Name of selection, freetext indexed
          type: string
        PostitTextId:
          format: int32
          description: Postit text record id.
          type: integer
        CreatedDate:
          format: date-time
          description: Registered when  in UTC.
          type: string
        SelectionId:
          format: int32
          description: Primary key
          type: integer
        SoundEx:
          description: What the name sounds like, for duplicate detection
          type: string
        Source:
          format: int32
          description: How did we get this selection? For future integration needs
          type: integer
        TextId:
          format: int32
          description: Description text record id
          type: integer
        UpdatedDate:
          format: date-time
          description: Last updated when  in UTC.
          type: string
        UpdatedCount:
          format: int32
          description: Number of updates made to this record
          type: integer
        Visibility:
          format: int32
          description: Obsolete, but still maintained denormalization of visiblefor
          type: integer
        SelectionType:
          description: Static/Dynamic/Combined?
          enum:
            - Static
            - Dynamic
            - Combined
          type: string
        CompanyUnique:
          description: Filter out duplicate members based on company?
          type: boolean
        TargetTableNumber:
          format: int32
          description: >-
            TargetTableNumber defines the type of selection members this
            selection contains. e.g. the table number for 'contact', or
            'project' or 'sale'
          type: integer
        TargetTableName:
          description: >-
            TargetTableName contains the name of the table in lowercase. defines
            the type of selection members this selection contains. e.g.
            'contact', or 'project' or 'sale'
          type: string
        Completed:
          description: The Completed state.
          type: boolean
        LeftSelectionId:
          format: int32
          description: >-
            LeftSelectionId is used in combination with RightSelectionId and
            CombinationType to define an union of two selections when
            SelectionType=Combined.
          type: integer
        RightSelectionId:
          format: int32
          description: >-
            RightSelectionId  is used in combination with LeftSelectionId and
            CombinationType to define an union of two selections when
            SelectionType=Combined.
          type: integer
        SelectionUnionType:
          description: How to combine the two selections when SelectionType = Combined.
          enum:
            - Unknown
            - SubtractRightFromLeft
            - SubtractLeftFromRight
            - Intersect
            - XOR
            - Union
          type: string
        MainProviderName:
          description: >-
            The name of the Archive Provider that will deliver the content of
            the archive - the actual entity rows
          type: string
        ShadowProviderName:
          description: >-
            The name, if relevant, of the Archive Provider that will deliver the
            Shadow rows: contact/person rows related to the actual entity. Can
            be blank, indicating that there is no shadow archive
          type: string
        ChartKey:
          description: ID/key of the last-used chart tile on this selection
          type: string
        LastLoaded:
          format: date-time
          description: >-
            The date/time this selection was last loaded (selectionentity
            fetched)
          type: string
        LastLoadedBy:
          format: int32
          description: Who last loaded this selection
          type: integer
        LastLoadedByAssociate:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Associate'
        LastMembershipChange:
          format: date-time
          description: >-
            The date/time the membership the selection last changed. Dynamic:
            change of criteria; Static: add/remove members; Combined: change of
            algorithm
          type: string
        LastMembershipChangeBy:
          format: int32
          description: Who last changed the membership
          type: integer
        LastMembershipChangeByAssociate:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Associate'
        MainHeading:
          description: >-
            'Static selection of Companies', or whatever else is appropriate,
            made by combining text resources for the type and the entity (plural
            form); this string will contain resource references
          type: string
        MemberTabHeading:
          description: >-
            'Companies', or whatever else is appropriate - the plural form of
            the entity name; this string will contain resource references
          type: string
        MailingsProviderName:
          description: >-
            The name of the provider for the Mailings tab, if relevant; this
            string will contain resource references
          type: string
        DashboardTileDefinitionId:
          format: int32
          description: The associated tile definition
          type: integer
        VisibleFor:
          description: The set of users or groups the record is visible for
          type: array
          items:
            $ref: '#/components/schemas/SuperOffice.CRM.Services.VisibleFor'
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.Associate:
      description: "Carrier object for Associate.\r\nServices for the Associate Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IAssociateAgent\">Associate Agent</see>."
      type: object
      properties:
        AssociateId:
          format: int32
          description: Primary key
          type: integer
        Name:
          description: Initials, also login name, possibly database user name
          type: string
        PersonId:
          format: int32
          description: "Owning person record \r\n<para>Use MDO List name \"person\" to get list items.</para>"
          type: integer
        Rank:
          format: int32
          description: Rank order
          type: integer
        Tooltip:
          description: Tooltip or other description
          type: string
        Type:
          description: >-
            User type - 1 = internal user, 2 = resource, 3 = external user, 4 =
            anonymous, 5 = system
          enum:
            - Unknown
            - InternalAssociate
            - ResourceAssociate
            - ExternalAssociate
            - AnonymousAssociate
            - SystemAssociate
          type: string
        GroupIdx:
          format: int32
          description: >-
            Primary group membership, see UserGroupLink for secondary
            memberships
          type: integer
        FullName:
          description: >-
            The associate's culture formatted fullname (firstname, middleName
            and lastname)
          type: string
        FormalName:
          description: >-
            The associate's culture formatted formalname (firstname, middleName
            and lastname, title, mrmrs)
          type: string
        Deleted:
          description: >-
            If true, the user is retired and should have no rights, not appear
            in lists, etc.
          type: boolean
        EjUserId:
          format: int32
          description: >-
            ID of the ej user record corresponding to this associate; 0 for
            associates that are not ej users
          type: integer
        UserName:
          description: User name
          type: string
        ExtraFields:
          description: "Deprecated: Use {SuperOffice.CRM.Services.Associate.CustomFields} instead.\r\nExtra fields added to the carrier. This could be data from Plug-ins, the foreign key system, external applications, etc."
          type: object
          additionalProperties:
            type: string
        CustomFields:
          description: "Udef + Extra fields added to the carrier. Extra fields as defined by changes to database schema + user-defined fields as defined by admin.\r\nCustom fields combines user defined fields and extra fields into one bucket. \r\nThe individual {SuperOffice.CRM.Services.Associate.ExtraFields} and <see cref=\"!:UserDefinedFields\">UserDefinedFields</see> properties are deprecated in favor of this\r\ncombined collection."
          type: object
          additionalProperties:
            type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.SelectionCategory:
      description: "Carrier object for SelectionCategory.\r\nServices for the SelectionCategory Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IListAgent\">List Agent</see>."
      type: object
      properties:
        Id:
          format: int32
          description: The List Item Id
          type: integer
        Value:
          description: The List Item Value
          type: string
        Tooltip:
          description: The List Item Tooltip
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.VisibleFor:
      description: "Carrier object for VisibleFor.\r\nServices for the VisibleFor Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.ISentryAgent\">Sentry Agent</see>."
      type: object
      properties:
        VisibleId:
          format: int32
          description: ''
          type: integer
        Visibility:
          description: ''
          enum:
            - All
            - Associate
            - Group
          type: string
        DisplayValue:
          description: ''
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Security.TableRight:
      description: "Wraps a table right together with an explanatory reason.\r\nCode can indicate why access is restricted."
      type: object
      properties:
        Mask:
          type: string
        Reason:
          type: string
    SuperOffice.CRM.Security.FieldProperty:
      description: >-
        Class holding properties like field length, field type about a field in
        the carrier.
      type: object
      properties:
        FieldRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldRight'
        FieldType:
          type: string
        FieldLength:
          format: int32
          description: ''
          type: integer
    SuperOffice.CRM.Security.FieldRight:
      description: "Wraps the field right together with an explanatory reason.\r\nAlso adds logical operators to the field rights so that they can be easily combined."
      type: object
      properties:
        Mask:
          type: string
        Reason:
          type: string

````

## Related topics

- [SuperOffice.WebApi.Data.Selection CreateContactSelectionFromShadowSelectionRequest](/en/api/reference/webapi/SuperOffice.WebApi.Data.Selection_CreateContactSelectionFromShadowSelectionRequest.md)
- [NSSelectionAgent](/en/automation/crmscript/reference/CRMScript.NetServer.NSSelectionAgent.md)
- [SuperOffice.WebApi.Agents.SelectionAgent](/en/api/reference/webapi/SuperOffice.WebApi.Agents.SelectionAgent.md)
- [SuperOffice.WebApi.Agents.ISelectionAgent](/en/api/reference/webapi/SuperOffice.WebApi.Agents.ISelectionAgent.md)
- [ShadowSelection](/en/api/archive-providers/reference/shadowselection.md)
- [Create Contact Selection From Selection](/en/api/reference/restful/agent/selection_agent/create-contact-selection-from-selection.md)
