Sometimes it's convenient to share requests for signatures among the members of a group. For example, it might be convenient to treat the pharmacists in a particular pharmacy as a group, so that any available member of the group can sign the paperwork for a patient's prescriptions.

In Conga Sign, a Signer Group is a set of Conga Sign users who can act as a single signer from the point of view of the package creator. Users who can become group members must already be members of the associated Conga Sign account.

Conga Sign group members receive an email invitation to sign a related document package. Among those members, signing is on a first-come, first-serve basis. When one member is signing, all other members are locked out.

Any member who signs does so on behalf of the group, but their name will be stamped on the documents they sign. Anyone verifying the document through the Audit Trail will see the individual member's signature information and identity.

All group members can monitor the progress of the group's transactions, which helps ensure that those transactions are completed on time.

Creating Groups

The sample code below will create a group with two members. It is important to note that these members have to be Senders in your account.

HTTP Request

POST /api/cs-groups
JS

HTTP Headers

Accept: application/json
Content-Type: application/json
Authorization: Bearer access_token
JS

Request Payload

{
  "email": "your_group_email@example.com",
  "name": "your_group_name",
        "members": [
    {
      "pending": true,
      "email": "signer1@example.com",
      "memberType": "REGULAR",
      "firstName": "John",
      "lastName": "Smith"
    },
    {
      "pending": true,
      "email": "signer2@example.com",
      "memberType": "REGULAR",
      "firstName": "Mary",
      "lastName": "Doe"
    }
  ]
}
JS

Response Payload

{
    "id": "bc65203e-99df-47b4-a51c-33e8082780c5",
    "members": [
        {
            "userId": "2q37oSloj5AD",
            "pending": false,
            "lastName": "Drake",
            "email": "signer3@example.com",
            "firstName": "Bill",
            "memberType": "REGULAR"
        },
        {
            "userId": "FxktNzFzmkIY",
            "pending": false,
            "lastName": "Mann",
            "email": "signer4@example.com",
            "firstName": "Audrey",
            "memberType": "REGULAR"
        }
    ],
    "emailMembers": false,
    "reciprocalDelegation": false,
    "data": null,
    "account": {
        "id": "3vD0Dc9Fh7wQ",
        "data": null,
        "updated": "2017-11-20T19:03:28Z",
        "company": {
            "id": "",
            "data": null,
            "address": null,
            "name": ""
        },
        "licenses": [],
        "logoUrl": "",
        "providers": null,
        "customFields": [],
        "created": "2017-11-20T19:03:28Z",
        "owner": "",
        "name": ""
    },
    "updated": "2017-11-20T19:03:28Z",
    "email": "your_group_email@example.com",
    "created": "2017-11-20T19:03:28Z",
    "name": "your_group_name"
}
JS

You can also create an empty group, and invite members to join your group at a later date.

HTTP Request

POST /api/cs-groups
JS

HTTP Headers

Accept: application/json
Content-Type: application/json
Authorization: Bearer access_token
JS

Request Payload

{
    "email": "invitee@email.com",
    "name": "REST Developers"
}
JS

Response Payload

{
    "id": "540b86f9-2d93-4498-bdb4-b7b320540bb6",
    "members": [],
    "emailMembers": false,
    "reciprocalDelegation": false,
    "data": null,
    "account": {
        "id": "3vD0Dc9Fh7wQ",
        "data": null,
        "updated": "2017-11-20T19:04:38Z",
        "company": {
            "id": "",
            "data": null,
            "address": null,
            "name": ""
        },
        "licenses": [],
        "logoUrl": "",
        "providers": null,
        "customFields": [],
        "created": "2017-11-20T19:04:38Z",
        "owner": "",
        "name": ""
    },
    "updated": "2017-11-20T19:04:38Z",
    "email": "invitee@email.com",
    "created": "2017-11-20T19:04:38Z",
    "name": "REST Developers"
}
JS

Retrieving Groups

Retrieving your groups can come in handy when you wish to invite members to your group. It is important to note that the group id is required when sending invitations.

HTTP Request

GET /api/groups
JS

HTTP Headers

Accept: application/json
Content-Type: application/json
Authorization: Bearer access_token
JS

Response Payload

{
  "count": 1,
  "results": [
    {
      "account": {
        "providers": null,
        "updated": "2016-01-07T18:49:19Z",
        "company": {
          "id": "",
          "address": null,
          "data": null,
          "name": ""
        },
        "licenses": [],
        "logoUrl": "",
        "customFields": [],
        "created": "2016-01-07T18:49:19Z",
        "owner": "",
        "id": "zRcJCHV3ztIB",
        "data": null,
        "name": ""
      },
      "updated": "2016-01-07T13:58:33Z",
      "email": "group@email.com",
      "members": [
        {
          "userId": "1XyqlkXM9uIX",
          "email": "john.smith@email.com",
          "firstName": "John",
          "lastName": "Smith",
          "memberType": "REGULAR",
          "pending": false
        },
        {
          "userId": "kVooKpofKuUK",
          "email": "mary.doe@email.com",
          "firstName": "Mary",
          "lastName": "Doe",
          "memberType": "REGULAR",
          "pending": false
        }
      ],
      "emailMembers": false,
      "reciprocalDelegation": false,
      "created": "2016-01-07T13:58:33Z",
      "id": "4a8868d7-1968-4172-aedb-0a9dc8edb683",
      "data": null,
      "name": "REST Developers"
    }
  ]
}
JS

Adding a Group signer

Once your group has been created, you can now then add a group signer to your package. The code below shows you how to edit the signer block in order to add a group signer.

If you need a comparison to the basic document object creation or if this is the first time creating a package with the REST API, see this guide.

HTTP Request

POST /api/cs-packages
JS

HTTP Headers

Accept: application/json
Content-Type: multipart/form-data
Authorization: Bearer access_token
JS

Request Payload

------WebKitFormBoundary1bNO60n7FqP5WO4t
Content-Disposition: form-data; name="file"; filename="testDocumentExtraction.pdf"
Content-Type: application/pdf
%PDF-1.5
%µµµµ
1 0 obj
<>>>
endobj.... 
------WebKitFormBoundary1bNO60n7FqP5WO4t
Content-Disposition: form-data; name="payload"
{
  "roles": [
    {
      "id": "1945f2e1-3390-4297-bc3b-89af3c92e567",
      "type": "SIGNER",
      "index": 0,
      "signers": [
        {
          "group": {
            "id": "540b86f9-2d93-4498-bdb4-b7b320540bb6",
            "email": "invitee@email.com",
            "name": "REST Developers"
          },
          "id": "98b9db64-39ca-4b5b-a1eb-629e49c46dec",
          "email": "540b86f9-2d93-4498-bdb4-b7b320540bb6@groups.e-signlive.com",
          "firstName": "REST Developers",
          "lastName": ""
        }
      ],
      "name": "Signer1"
    }
  ],
  "status": "DRAFT",
  "language": "en",
  "documents": [
    {
      "id": "90277a614bf73b783fe2a5e04b68a99d4badf449b33ecfbf",
      "approvals": [
        {
          "id": "cVvJzBDX7lwP",
          "role": "1945f2e1-3390-4297-bc3b-89af3c92e567",
          "fields": [
            {
              "subtype": "FULLNAME",
              "height": 52,
              "extract": false,
              "width": 235,
              "left": 217,
              "top": 512,
              "type": "SIGNATURE"
            }
          ]
        }
      ],
      "name": "sample_contract"
    }
  ],
  "visibility": "ACCOUNT",
  "type": "PACKAGE",
  "name": "Group Signature Example"
}
------WebKitFormBoundary1bNO60n7FqP5WO4t--
JS

Response Payload

{
    "id": "9sKhW-h-qS9m6Ho3zRv3n2a-rkI="
}
JS

Request Payload Table

PropertyTypeEditableRequiredDefaultSample Values
emailstringYesNon/ayour_group_email@example.com 
namestringYesNon/ayour_group_name 
members
pendingbooleanNoNon/atrue / false 
emailstringYesNon/ajohn.smith@example.com 
memberTypestringYesNoREGULARREGULAR / MANAGER 
firstNamestringYesNon/aJohn 
lastNamestringYesNon/aSmith