GraphQL API Reference
Welcome to the Anvil GraphQL API reference! This reference includes the complete set of GraphQL types, queries, mutations, and their parameters for e-sign packets, workflows, PDF filling, and PDF generation. For more tutorial-oriented API documentation, please check out our API Guide.
Learn how to authenticate to the API in the Getting Started guide.
Anvil API support: support@useanvil.com
Schema SDL: https://app.useanvil.com/graphql/sdl
Terms of Service: https://www.useanvil.com/terms
API Endpoints
Production:
https://graphql.useanvil.com
Queries
cast
Cast
. A Cast
is a PDF Template. See our
terminology guide for more info. Cast
Name | Description |
---|---|
eid -
String!
|
|
versionNumber -
Int
|
Optional argument to request a specific version of the Providing |
Example
Query
query cast($eid: String!, $versionNumber: Int) {
cast(eid: $eid, versionNumber: $versionNumber) {
versionNumber
versionId
latestDraftVersionNumber
publishedNumber
publishedAt
hasUnpublishedChanges
hasBeenPublished
id
eid
type
name
title
isTemplate
exampleData
allowedAliasIds
fieldInfo
config
organization {
...OrganizationFragment
}
parentCast {
...CastFragment
}
createdAt
updatedAt
archivedAt
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi",
"versionNumber": 987
}
Response
{
"data": {
"cast": {
"versionNumber": 123,
"versionId": 987,
"latestDraftVersionNumber": 123,
"publishedNumber": 123,
"publishedAt": "2022-11-25T17:55:44.910Z",
"hasUnpublishedChanges": false,
"hasBeenPublished": true,
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"type": "application/pdf",
"name": "Cast Name",
"title": "Cast Title",
"isTemplate": true,
"exampleData": {},
"allowedAliasIds": ["xyz789"],
"fieldInfo": {},
"config": {},
"organization": Organization,
"parentCast": Cast,
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2023-05-25T16:55:44.910Z"
}
}
}
currentUser
currentUser
query is useful to fetch objects in your organization. e.g. your Organization
, its Weld
s, etc. Example
Query
query currentUser {
currentUser {
id
eid
email
name
firstName
lastName
role
verifiedEmail
preferences {
...UserPreferencesFragment
}
organizations {
...OrganizationFragment
}
organizationUsers {
...OrganizationUserFragment
}
createdAt
updatedAt
extra
numSentEtchPackets
}
}
Response
{
"data": {
"currentUser": {
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"email": "user@domain.com",
"name": "User Name",
"firstName": "Bobby",
"lastName": "Jones",
"role": "user",
"verifiedEmail": true,
"preferences": UserPreferences,
"organizations": [Organization],
"organizationUsers": [OrganizationUser],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"extra": {},
"numSentEtchPackets": 123
}
}
}
etchPacket
EtchPacket
. An EtchPacket
represents a signature packet containing PDFs, signers, signed documents. This is the result of createEtchPacket
. See the
e-signature API guide for more info. Example
Query
query etchPacket($eid: String!) {
etchPacket(eid: $eid) {
id
eid
name
status
isTest
containsFillData
payload
numberRemainingSigners
detailsURL
webhookURL
organization {
...OrganizationFragment
}
documentGroup {
...DocumentGroupFragment
}
etchTemplate {
...EtchTemplateFragment
}
userUploads {
...UserUploadFragment
}
etchLogEvents {
...EtchLogFragment
}
webhookLogs {
...WebhookLogFragment
}
createdAt
updatedAt
archivedAt
completedAt
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi"
}
Response
{
"data": {
"etchPacket": {
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "EtchPacket Name",
"status": "completed",
"isTest": true,
"containsFillData": false,
"payload": {
"myPDFId": {
"textColor": #000000,
"data": {"email": hello@example.com}
}
},
"numberRemainingSigners": 123,
"detailsURL": "https://app.useanvil.com/org/my-org/etch/nA1jH49FVUWrrE60hMbi",
"webhookURL": "https://yoursite.com/webhooks/anvil",
"organization": Organization,
"documentGroup": DocumentGroup,
"etchTemplate": EtchTemplate,
"userUploads": [UserUpload],
"etchLogEvents": [EtchLog],
"webhookLogs": [WebhookLog],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2022-11-25T17:55:44.910Z",
"completedAt": "2022-11-25T17:55:44.910Z"
}
}
}
forge
Fetch a single Forge
by specifying
either (but not both) of the following argument sets:
- Just the
eid
for the Forge if you know it. - Both the
organizationSlug
andeidOrSlug
.
A Forge
holds configuration for a single webform. A Forge
defines a webform's fields, the page fields are on, their types, webform logic, etc. Each Forge will be a member of only one Weld
(Workflow). See our
terminology guide for more info.
A better way to fetch Forge
s is via the weld
query. For example:
weld (eid: weldEid) {
forges {
eid
slug
name
}
}
Forge
Name | Description |
---|---|
organizationSlug -
String
|
|
eidOrSlug -
String
|
|
eid -
String
|
If you are authenticated and know the EID, you can use this argument. Be sure to omit the organizationSlug and eidOrSlug arguments if passing eid . |
weldDataEid -
String
|
If you want to recieve the Forge and its related, versioned items in the version associated with a specific
WeldData then pass that WeldData EID here. |
submissionEid -
String
|
If you want to recieve the Forge and its related, versioned items in the version associated with a specific
Submission then pass that Submission EID here. |
versionNumber -
Int
|
Optional argument to request a specific version of the All Providing |
Example
Query
query forge($organizationSlug: String, $eidOrSlug: String, $eid: String, $weldDataEid: String, $submissionEid: String, $versionNumber: Int) {
forge(organizationSlug: $organizationSlug, eidOrSlug: $eidOrSlug, eid: $eid, weldDataEid: $weldDataEid, submissionEid: $submissionEid, versionNumber: $versionNumber) {
versionNumber
versionId
latestDraftVersionNumber
publishedNumber
publishedAt
hasUnpublishedChanges
hasBeenPublished
id
eid
name
slug
isRequired
config
fieldInfo
weld {
...WeldFragment
}
organization {
...OrganizationFragment
}
userUploads {
...UserUploadFragment
}
createdAt
updatedAt
archivedAt
examplePayload
stylesheetURL
}
}
Variables
{
"organizationSlug": "organization-slug",
"eidOrSlug": "kQp2qd9FVUWrrE60hMbi",
"eid": "kQp2qd9FVUWrrE60hMbi",
"weldDataEid": "kQp2qd9FVUWrrE60hMbi",
"submissionEid": "kQp2qd9FVUWrrE60hMbi",
"versionNumber": 987
}
Response
{
"data": {
"forge": {
"versionNumber": 123,
"versionId": 123,
"latestDraftVersionNumber": 987,
"publishedNumber": 123,
"publishedAt": "2023-05-25T16:55:44.910Z",
"hasUnpublishedChanges": true,
"hasBeenPublished": false,
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "Forge Name",
"slug": "forge-name",
"isRequired": false,
"config": {},
"fieldInfo": {},
"weld": Weld,
"organization": Organization,
"userUploads": [UserUpload],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2022-11-25T17:55:44.910Z",
"examplePayload": {},
"stylesheetURL": "https://domain.com/page.html"
}
}
}
organization
Fetch a single Organization
. You obviously will only be able to access organizations you are a part of.
A better way to fetch this information is via the currentUser
query. For example:
currentUser {
organizations {
eid
slug
name
}
}
Example
Query
query organization($organizationSlug: String!) {
organization(organizationSlug: $organizationSlug) {
id
eid
name
logo
logoURL
stylesheetURL
parentOrganization {
...OrganizationFragment
}
billingEmail
supportEmail
slug
users {
...UserFragment
}
adminUsers {
...UserFragment
}
organizationUsers {
...OrganizationUserFragment
}
organizationUserInvites {
...OrganizationUserInviteFragment
}
isPersonal
isInternal
isSubscribed
useTestSignatureProvider
config
createdAt
updatedAt
welds {
...WeldFragment
}
etchTemplates {
...EtchTemplateFragment
}
etchPackets {
...EtchPacketPageFragment
}
weldGroups {
...WeldGroupFragment
}
forges {
...ForgeFragment
}
forgeMaps {
...ForgeMapFragment
}
casts {
...CastFragment
}
paymentMethods {
...PaymentMethodFragment
}
webhook {
...WebhookFragment
}
webhookActions {
...WebhookActionFragment
}
webhookLogs {
...WebhookLogPageFragment
}
childOrganizations {
...OrganizationFragment
}
relatedOrganizations {
...OrganizationFragment
}
subscribedPlanFeatures
subscriptionActivity
currentInvoice {
...InvoiceFragment
}
totalUsedUnits
weldCompleteWebhookStats
weldCompleteStats
etchCompleteStats
remainingSubmissions
remainingEtchCompletions
signatureProviderType
availableSignatureProviderTypes
}
}
Variables
{
"organizationSlug": "organization-slug"
}
Response
{
"data": {
"organization": {
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "Organization Name",
"logo": {},
"logoURL": "https://app.useanvil.com/uploads/nA1jH49FVUWrrE60hMbi.png",
"stylesheetURL": "https://example.com/anvil-styles.css",
"parentOrganization": Organization,
"billingEmail": "user@domain.com",
"supportEmail": "user@domain.com",
"slug": "organization-name",
"users": [User],
"adminUsers": [User],
"organizationUsers": [OrganizationUser],
"organizationUserInvites": [OrganizationUserInvite],
"isPersonal": false,
"isInternal": false,
"isSubscribed": false,
"useTestSignatureProvider": true,
"config": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"welds": [Weld],
"etchTemplates": [EtchTemplate],
"etchPackets": EtchPacketPage,
"weldGroups": [WeldGroup],
"forges": [Forge],
"forgeMaps": [ForgeMap],
"casts": [Cast],
"paymentMethods": [PaymentMethod],
"webhook": Webhook,
"webhookActions": [WebhookAction],
"webhookLogs": WebhookLogPage,
"childOrganizations": [Organization],
"relatedOrganizations": [Organization],
"subscribedPlanFeatures": {},
"subscriptionActivity": {},
"currentInvoice": Invoice,
"totalUsedUnits": 987,
"weldCompleteWebhookStats": {},
"weldCompleteStats": {},
"etchCompleteStats": {},
"remainingSubmissions": {},
"remainingEtchCompletions": {},
"signatureProviderType": "abc123",
"availableSignatureProviderTypes": ["xyz789"]
}
}
}
signer
Fetches a single Signer
.
An alternate way to fetch signers is via a DocumentGroup
object. For example, use the etchPacket
or weldData
query, then dig down to the signers in your query.
Example
Query
query signer($eid: String!) {
signer(eid: $eid) {
id
eid
aliasId
status
provider
name
email
routingOrder
signActionType
user {
...UserFragment
}
submission {
...SubmissionFragment
}
documentGroup {
...DocumentGroupFragment
}
signerTokens {
...SignerTokenFragment
}
createdAt
updatedAt
completedAt
clientUserId
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi"
}
Response
{
"data": {
"signer": {
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"aliasId": "signer1",
"status": "sent",
"provider": "etch",
"name": "Signer Name",
"email": "user@domain.com",
"routingOrder": 987,
"signActionType": "email",
"user": User,
"submission": Submission,
"documentGroup": DocumentGroup,
"signerTokens": [SignerToken],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"completedAt": "2022-11-25T17:55:44.910Z",
"clientUserId": "mySigner1"
}
}
}
submission
Fetches a single Submission
. A Submission
holds data submitted to a webform. See our
terminology guide for more info.
A better way to fetch submissions is via the weldData
query. For example:
weldData (eid: weldDataEid) {
displayTitle
submissions {
eid
resolvedPayload
}
}
Submission
Name | Description |
---|---|
organizationSlug -
String!
|
|
forgeEidOrSlug -
String!
|
|
eid -
String!
|
|
forceCreate -
Boolean
|
|
timezone -
String
|
Example
Query
query submission($organizationSlug: String!, $forgeEidOrSlug: String!, $eid: String!, $forceCreate: Boolean, $timezone: String) {
submission(organizationSlug: $organizationSlug, forgeEidOrSlug: $forgeEidOrSlug, eid: $eid, forceCreate: $forceCreate, timezone: $timezone) {
id
eid
status
resolvedPayload
payload
payloadValue
currentStep
totalSteps
continueURL
weldData {
...WeldDataFragment
}
forge {
...ForgeFragment
}
user {
...UserFragment
}
signer {
...SignerFragment
}
reviewData
completionPercentage
isExcluded
touchedByUser
requestMeta
createdAt
updatedAt
completedAt
}
}
Variables
{
"organizationSlug": "organization-slug",
"forgeEidOrSlug": "kQp2qd9FVUWrrE60hMbi",
"eid": "kQp2qd9FVUWrrE60hMbi",
"forceCreate": true,
"timezone": "America/Los_Angeles"
}
Response
{
"data": {
"submission": {
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"status": "in-progress",
"resolvedPayload": {
"email": {
"id": f162136372633517,
"aliasId": email,
"type": email,
"label": Email,
"value": hello@example.com
}
},
"payload": {
"f162136372633517": {
"type": email,
"value": hello@example.com
}
},
"payloadValue": {
"f162136372633517": hello@example.com
},
"currentStep": 987,
"totalSteps": 123,
"continueURL": "https://app.useanvil.com/form/demo/my-form/nA1jH49FVUWrrE60hMbi",
"weldData": WeldData,
"forge": Forge,
"user": User,
"signer": Signer,
"reviewData": {},
"completionPercentage": 33.33,
"isExcluded": true,
"touchedByUser": true,
"requestMeta": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"completedAt": "2022-11-25T17:55:44.910Z"
}
}
}
weld
Fetch a single Weld
. This query is a good way to fetch all of a Workflow's submissions (WeldData
s). See the Weld
's weldDatas
resolver.
Specify either the Weld
's eid
or both the Weld
's slug
and the Weld
's organizationSlug
.
See the Workflow API guide for more information on query usage.
Weld
Name | Description |
---|---|
eid -
String
|
|
slug -
String
|
|
organizationSlug -
String
|
|
versionNumber -
Int
|
Optional argument to request a specific version of the All Providing |
Example
Query
query weld($eid: String, $slug: String, $organizationSlug: String, $versionNumber: Int) {
weld(eid: $eid, slug: $slug, organizationSlug: $organizationSlug, versionNumber: $versionNumber) {
versionNumber
versionId
latestDraftVersionNumber
publishedNumber
publishedAt
hasUnpublishedChanges
hasBeenPublished
id
eid
slug
name
visibility
config
organization {
...OrganizationFragment
}
hasSigners
forges {
...ForgeFragment
}
casts {
...CastFragment
}
weldGroups {
...WeldGroupFragment
}
weldDatas {
...WeldDataPageFragment
}
signatureProviderType
availableSignatureProviderTypes
remainingSubmissions
createdAt
updatedAt
archivedAt
expiresAt
stylesheetURL
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi",
"slug": "weld-name",
"organizationSlug": "organization-slug",
"versionNumber": 123
}
Response
{
"data": {
"weld": {
"versionNumber": 987,
"versionId": 987,
"latestDraftVersionNumber": 987,
"publishedNumber": 123,
"publishedAt": "2022-11-25T17:55:44.910Z",
"hasUnpublishedChanges": false,
"hasBeenPublished": false,
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"slug": "weld-name",
"name": "Weld Name",
"visibility": "live",
"config": {},
"organization": Organization,
"hasSigners": true,
"forges": [Forge],
"casts": [Cast],
"weldGroups": [WeldGroup],
"weldDatas": WeldDataPage,
"signatureProviderType": "etch",
"availableSignatureProviderTypes": [
[etch, docusign]
],
"remainingSubmissions": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2022-11-25T17:55:44.910Z",
"expiresAt": "2022-11-25T17:55:44.910Z",
"stylesheetURL": "https://domain.com/page.html"
}
}
}
weldData
Fetch a single WeldData
(Workflow submission). If you need to fetch all WeldData
s for a given Weld
, see the weld
query.
See the Workflow API guide for more information on query usage.
Example
Query
query weldData($eid: String!) {
weldData(eid: $eid) {
id
eid
displayTitle
status
isTest
isExpired
isComplete
isCompleteAndSigned
continueURL
webhookURL
completionPercentage
numberRemainingSigners
payloadCanBeUpdated
hasSigners
nextSigner {
...SignerFragment
}
hasPin
pin
agents
files
excludedFiles
weld {
...WeldFragment
}
weldVersionId
submissions {
...SubmissionFragment
}
documentGroup {
...DocumentGroupFragment
}
webhookLogs {
...WebhookLogFragment
}
etchLogEvents {
...EtchLogFragment
}
weldDataLogEvents {
...WeldDataLogFragment
}
userUploads {
...UserUploadFragment
}
forgesRequiringCompletion {
...ForgeFragment
}
weldDataGroup {
...WeldDataGroupFragment
}
createdAt
updatedAt
dataUpdatedAt
expiresAt
archivedAt
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi"
}
Response
{
"data": {
"weldData": {
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"displayTitle": "Sally's workflow submission",
"status": "in-progress",
"isTest": true,
"isExpired": false,
"isComplete": false,
"isCompleteAndSigned": true,
"continueURL": "https://app.useanvil.com/form/demo/my-form/nA1jH49FVUWrrE60hMbi",
"webhookURL": "https://yoursite.com/webhooks/anvil",
"completionPercentage": 0.2,
"numberRemainingSigners": 123,
"payloadCanBeUpdated": false,
"hasSigners": false,
"nextSigner": Signer,
"hasPin": true,
"pin": "9876",
"agents": {},
"files": [
[
{
"downloadURL": https://app.useanvil.com/api/document-group/nA1jH49FVUWrrE60hMbi/Hello-World.pdf,
"filename": Hello-World.pdf,
"name": Hello World,
"type": pdf
}
]
],
"excludedFiles": [
[
{
"downloadURL": https://app.useanvil.com/api/document-group/nA1jH49FVUWrrE60hMbi/Dont-Sign-Me.pdf,
"filename": Dont-Sign-Me.pdf,
"name": Do not sign this doc,
"type": pdf
}
]
],
"weld": Weld,
"weldVersionId": 987,
"submissions": [Submission],
"documentGroup": DocumentGroup,
"webhookLogs": [WebhookLog],
"etchLogEvents": [EtchLog],
"weldDataLogEvents": [WeldDataLog],
"userUploads": [UserUpload],
"forgesRequiringCompletion": [Forge],
"weldDataGroup": WeldDataGroup,
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"dataUpdatedAt": "2022-11-25T17:55:44.910Z",
"expiresAt": "2022-11-25T17:55:44.910Z",
"archivedAt": "2022-11-25T17:55:44.910Z"
}
}
}
Mutations
createCast
Cast
with the specified properties. This will require you to publish the Cast
via the
publishCast
mutation before it will go live. Cast
Name | Description |
---|---|
organizationEid -
String
|
|
title -
String
|
|
file -
Upload!
|
|
isTemplate -
Boolean
|
Default = true |
allowedAliasIds -
[String]
|
Example
Query
mutation createCast($organizationEid: String, $title: String, $file: Upload!, $isTemplate: Boolean, $allowedAliasIds: [String]) {
createCast(organizationEid: $organizationEid, title: $title, file: $file, isTemplate: $isTemplate, allowedAliasIds: $allowedAliasIds) {
versionNumber
versionId
latestDraftVersionNumber
publishedNumber
publishedAt
hasUnpublishedChanges
hasBeenPublished
id
eid
type
name
title
isTemplate
exampleData
allowedAliasIds
fieldInfo
config
organization {
...OrganizationFragment
}
parentCast {
...CastFragment
}
createdAt
updatedAt
archivedAt
}
}
Variables
{
"organizationEid": "kQp2qd9FVUWrrE60hMbi",
"title": "Cast Title",
"file": Upload,
"isTemplate": true,
"allowedAliasIds": ["abc123"]
}
Response
{
"data": {
"createCast": {
"versionNumber": 987,
"versionId": 123,
"latestDraftVersionNumber": 987,
"publishedNumber": 987,
"publishedAt": "2022-11-25T17:55:44.910Z",
"hasUnpublishedChanges": true,
"hasBeenPublished": true,
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"type": "application/pdf",
"name": "Cast Name",
"title": "Cast Title",
"isTemplate": false,
"exampleData": {},
"allowedAliasIds": ["xyz789"],
"fieldInfo": {},
"config": {},
"organization": Organization,
"parentCast": Cast,
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2023-05-25T16:55:44.910Z"
}
}
}
createEtchPacket
EtchPacket
Name | Description |
---|---|
name -
String
|
|
organizationEid -
String
|
|
isDraft -
Boolean
|
When set to false , the packet will immediately be sent to the first signer. When set to true , the resulting EtchPacket will not be immediately sent. You will need to send the packet via the UI or the
sendEtchPacket mutation. |
isTest -
Boolean
|
When true , the resulting packet will be in test mode. You will not be charged for test packets. Test packets will not use valid signatures. |
files -
[EtchFile!]
|
Specifies files that will be in the resulting packet. See the guide for details. |
signers -
[JSON!]
|
Specifies signers who will sign documents in the files array. See the guide for details. |
data -
JSON
|
Specifies data to fill documents in the files array. See the guide for details. |
replyToName -
String
|
Overrides the replyTo header on emails sent to signers. By default, this will be your organization name. |
replyToEmail -
String
|
Overrides the replyTo header on emails sent to signers. By default, this will be the support email listed in your organization settings. |
signatureEmailSubject -
String
|
Customizes the email subject on signer emails |
signatureEmailBody -
String
|
Customizes the email body on signer emails |
signaturePageOptions -
JSON
|
Allows customization and whitelabeling of the signature page. See the guide for details. |
enableEmails -
JSON
|
Enable all, none, or specific emails for this packet. When enabled, an email type will adhere to the organization settings for that email type. For example, when Possible values: The default is |
createCastTemplatesFromUploads -
Boolean
|
Set to true to save uploaded PDFs to your PDF templates. |
duplicateCasts -
Boolean
|
Set to true to duplicate all referenced PDF templates on packet creation. Setting to true is useful if you would like to edit the PDFs in the UI after packet creation. Default = false |
mergePDFs -
Boolean
|
When enabled, merges all PDFs before users sign. All signers will sign one (potentially large) PDF. |
webhookURL -
String
|
Allows you to set a webhook URL called specifically for actions on the resulting EtchPacket |
signatureProvider -
String
|
Example
Query
mutation createEtchPacket($name: String, $organizationEid: String, $isDraft: Boolean, $isTest: Boolean, $files: [EtchFile!], $signers: [JSON!], $data: JSON, $replyToName: String, $replyToEmail: String, $signatureEmailSubject: String, $signatureEmailBody: String, $signaturePageOptions: JSON, $enableEmails: JSON, $createCastTemplatesFromUploads: Boolean, $duplicateCasts: Boolean, $mergePDFs: Boolean, $webhookURL: String, $signatureProvider: String) {
createEtchPacket(name: $name, organizationEid: $organizationEid, isDraft: $isDraft, isTest: $isTest, files: $files, signers: $signers, data: $data, replyToName: $replyToName, replyToEmail: $replyToEmail, signatureEmailSubject: $signatureEmailSubject, signatureEmailBody: $signatureEmailBody, signaturePageOptions: $signaturePageOptions, enableEmails: $enableEmails, createCastTemplatesFromUploads: $createCastTemplatesFromUploads, duplicateCasts: $duplicateCasts, mergePDFs: $mergePDFs, webhookURL: $webhookURL, signatureProvider: $signatureProvider) {
id
eid
name
status
isTest
containsFillData
payload
numberRemainingSigners
detailsURL
webhookURL
organization {
...OrganizationFragment
}
documentGroup {
...DocumentGroupFragment
}
etchTemplate {
...EtchTemplateFragment
}
userUploads {
...UserUploadFragment
}
etchLogEvents {
...EtchLogFragment
}
webhookLogs {
...WebhookLogFragment
}
createdAt
updatedAt
archivedAt
completedAt
}
}
Variables
{
"name": "EtchPacket Name",
"organizationEid": "kQp2qd9FVUWrrE60hMbi",
"isDraft": false,
"isTest": true,
"files": [EtchFile],
"signers": [{}],
"data": {},
"replyToName": "abc123",
"replyToEmail": "user@domain.com",
"signatureEmailSubject": "abc123",
"signatureEmailBody": "abc123",
"signaturePageOptions": {},
"enableEmails": {},
"createCastTemplatesFromUploads": false,
"duplicateCasts": false,
"mergePDFs": false,
"webhookURL": "https://domain.com/page.html",
"signatureProvider": "abc123"
}
Response
{
"data": {
"createEtchPacket": {
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "EtchPacket Name",
"status": "completed",
"isTest": true,
"containsFillData": true,
"payload": {
"myPDFId": {
"textColor": #000000,
"data": {"email": hello@example.com}
}
},
"numberRemainingSigners": 123,
"detailsURL": "https://app.useanvil.com/org/my-org/etch/nA1jH49FVUWrrE60hMbi",
"webhookURL": "https://yoursite.com/webhooks/anvil",
"organization": Organization,
"documentGroup": DocumentGroup,
"etchTemplate": EtchTemplate,
"userUploads": [UserUpload],
"etchLogEvents": [EtchLog],
"webhookLogs": [WebhookLog],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2023-05-25T16:55:44.910Z",
"completedAt": "2023-05-25T16:55:44.910Z"
}
}
}
createForge
Forge
with the specified properties. This will require you to publish the Weld
via the
publishWeld
mutation before it will go live with the Workflow. Forge
Name | Description |
---|---|
weldEid -
String!
|
|
name -
String!
|
|
slug -
String!
|
|
config -
JSON
|
|
castEid -
String
|
|
castFieldIds -
JSON
|
Example
Query
mutation createForge($weldEid: String!, $name: String!, $slug: String!, $config: JSON, $castEid: String, $castFieldIds: JSON) {
createForge(weldEid: $weldEid, name: $name, slug: $slug, config: $config, castEid: $castEid, castFieldIds: $castFieldIds) {
versionNumber
versionId
latestDraftVersionNumber
publishedNumber
publishedAt
hasUnpublishedChanges
hasBeenPublished
id
eid
name
slug
isRequired
config
fieldInfo
weld {
...WeldFragment
}
organization {
...OrganizationFragment
}
userUploads {
...UserUploadFragment
}
createdAt
updatedAt
archivedAt
examplePayload
stylesheetURL
}
}
Variables
{
"weldEid": "kQp2qd9FVUWrrE60hMbi",
"name": "Forge Name",
"slug": "forge-name",
"config": {},
"castEid": "kQp2qd9FVUWrrE60hMbi",
"castFieldIds": {}
}
Response
{
"data": {
"createForge": {
"versionNumber": 987,
"versionId": 987,
"latestDraftVersionNumber": 987,
"publishedNumber": 987,
"publishedAt": "2022-11-25T17:55:44.910Z",
"hasUnpublishedChanges": false,
"hasBeenPublished": false,
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "Forge Name",
"slug": "forge-name",
"isRequired": false,
"config": {},
"fieldInfo": {},
"weld": Weld,
"organization": Organization,
"userUploads": [UserUpload],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2023-05-25T16:55:44.910Z",
"examplePayload": {},
"stylesheetURL": "https://domain.com/page.html"
}
}
}
createSubmission
Example
Query
mutation createSubmission($forgeEid: String!, $weldDataEid: String!) {
createSubmission(forgeEid: $forgeEid, weldDataEid: $weldDataEid) {
id
eid
status
resolvedPayload
payload
payloadValue
currentStep
totalSteps
continueURL
weldData {
...WeldDataFragment
}
forge {
...ForgeFragment
}
user {
...UserFragment
}
signer {
...SignerFragment
}
reviewData
completionPercentage
isExcluded
touchedByUser
requestMeta
createdAt
updatedAt
completedAt
}
}
Variables
{
"forgeEid": "kQp2qd9FVUWrrE60hMbi",
"weldDataEid": "kQp2qd9FVUWrrE60hMbi"
}
Response
{
"data": {
"createSubmission": {
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"status": "in-progress",
"resolvedPayload": {
"email": {
"id": f162136372633517,
"aliasId": email,
"type": email,
"label": Email,
"value": hello@example.com
}
},
"payload": {
"f162136372633517": {
"type": email,
"value": hello@example.com
}
},
"payloadValue": {
"f162136372633517": hello@example.com
},
"currentStep": 987,
"totalSteps": 123,
"continueURL": "https://app.useanvil.com/form/demo/my-form/nA1jH49FVUWrrE60hMbi",
"weldData": WeldData,
"forge": Forge,
"user": User,
"signer": Signer,
"reviewData": {},
"completionPercentage": 33.33,
"isExcluded": true,
"touchedByUser": false,
"requestMeta": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"completedAt": "2022-11-25T17:55:44.910Z"
}
}
}
createWebhook
Organization
Name | Description |
---|---|
organizationEid -
String
|
|
organizationSlug -
String
|
|
url -
String
|
Example
Query
mutation createWebhook($organizationEid: String, $organizationSlug: String, $url: String) {
createWebhook(organizationEid: $organizationEid, organizationSlug: $organizationSlug, url: $url) {
id
eid
name
logo
logoURL
stylesheetURL
parentOrganization {
...OrganizationFragment
}
billingEmail
supportEmail
slug
users {
...UserFragment
}
adminUsers {
...UserFragment
}
organizationUsers {
...OrganizationUserFragment
}
organizationUserInvites {
...OrganizationUserInviteFragment
}
isPersonal
isInternal
isSubscribed
useTestSignatureProvider
config
createdAt
updatedAt
welds {
...WeldFragment
}
etchTemplates {
...EtchTemplateFragment
}
etchPackets {
...EtchPacketPageFragment
}
weldGroups {
...WeldGroupFragment
}
forges {
...ForgeFragment
}
forgeMaps {
...ForgeMapFragment
}
casts {
...CastFragment
}
paymentMethods {
...PaymentMethodFragment
}
webhook {
...WebhookFragment
}
webhookActions {
...WebhookActionFragment
}
webhookLogs {
...WebhookLogPageFragment
}
childOrganizations {
...OrganizationFragment
}
relatedOrganizations {
...OrganizationFragment
}
subscribedPlanFeatures
subscriptionActivity
currentInvoice {
...InvoiceFragment
}
totalUsedUnits
weldCompleteWebhookStats
weldCompleteStats
etchCompleteStats
remainingSubmissions
remainingEtchCompletions
signatureProviderType
availableSignatureProviderTypes
}
}
Variables
{
"organizationEid": "kQp2qd9FVUWrrE60hMbi",
"organizationSlug": "organization-slug",
"url": "https://domain.com/page.html"
}
Response
{
"data": {
"createWebhook": {
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "Organization Name",
"logo": {},
"logoURL": "https://app.useanvil.com/uploads/nA1jH49FVUWrrE60hMbi.png",
"stylesheetURL": "https://example.com/anvil-styles.css",
"parentOrganization": Organization,
"billingEmail": "user@domain.com",
"supportEmail": "user@domain.com",
"slug": "organization-name",
"users": [User],
"adminUsers": [User],
"organizationUsers": [OrganizationUser],
"organizationUserInvites": [OrganizationUserInvite],
"isPersonal": false,
"isInternal": false,
"isSubscribed": false,
"useTestSignatureProvider": false,
"config": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"welds": [Weld],
"etchTemplates": [EtchTemplate],
"etchPackets": EtchPacketPage,
"weldGroups": [WeldGroup],
"forges": [Forge],
"forgeMaps": [ForgeMap],
"casts": [Cast],
"paymentMethods": [PaymentMethod],
"webhook": Webhook,
"webhookActions": [WebhookAction],
"webhookLogs": WebhookLogPage,
"childOrganizations": [Organization],
"relatedOrganizations": [Organization],
"subscribedPlanFeatures": {},
"subscriptionActivity": {},
"currentInvoice": Invoice,
"totalUsedUnits": 987,
"weldCompleteWebhookStats": {},
"weldCompleteStats": {},
"etchCompleteStats": {},
"remainingSubmissions": {},
"remainingEtchCompletions": {},
"signatureProviderType": "xyz789",
"availableSignatureProviderTypes": ["xyz789"]
}
}
}
createWebhookAction
Create a Webhook Action to subscribe to events on objects.
Here is a list of all the actions and the object types that are supported by them:
-
etchPacketComplete
=>EtchPacket
-
forgeComplete
=>Forge
,Submission
,WeldData
,Weld
-
signerUpdateStatus
=>Signer
,EtchPacket
,WeldData
,Weld
-
signerComplete
=>Signer
,EtchPacket
,WeldData
,Weld
-
weldCreate
=>Organization
-
weldComplete
=>WeldData
,Weld
See the Webhook Action documentation for usage information.
WebhookAction
Name | Description |
---|---|
action -
String!
|
The action you'd like to subscribe to on the object(s). You can also use * to monitor all actions. |
objectType -
String!
|
The type of object that you'd like to monitor for events. You can also use * to monitor all object types. |
objectEid -
String!
|
The eid of the specific object you'd like to monitor. You can also use * to monitor all objects of the specified type(s). |
config -
WebhookActionConfigInput
|
|
webhookEid -
String
|
The eid of a pre-existing
Webhook that you'd like to use for this Webhook Action. A new Webhook can be created as well. |
organizationEid -
String
|
If you want to create a new
Webhook on-the-fly, you must specify the Organization eid here. |
url -
String
|
If you want to create a new
Webhook on-the-fly, you must specify the URL here. |
Example
Query
mutation createWebhookAction($action: String!, $objectType: String!, $objectEid: String!, $config: WebhookActionConfigInput, $webhookEid: String, $organizationEid: String, $url: String) {
createWebhookAction(action: $action, objectType: $objectType, objectEid: $objectEid, config: $config, webhookEid: $webhookEid, organizationEid: $organizationEid, url: $url) {
eid
webhook {
...WebhookFragment
}
action
objectEid
objectType
config
createdAt
updatedAt
creationUser {
...UserFragment
}
}
}
Variables
{
"action": "weldComplete",
"objectType": "Weld",
"objectEid": "kQp2qd9FVUWrrE60hMbi",
"config": {"encryptData": false},
"webhookEid": "kQp2qd9FVUWrrE60hMbi",
"organizationEid": "kQp2qd9FVUWrrE60hMbi",
"url": "https://domain.com/page.html"
}
Response
{
"data": {
"createWebhookAction": {
"eid": "kQp2qd9FVUWrrE60hMbi",
"webhook": Webhook,
"action": "xyz789",
"objectEid": "kQp2qd9FVUWrrE60hMbi",
"objectType": "xyz789",
"config": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"creationUser": User
}
}
}
createWeld
Weld
with the specified properties. This will require you to publish the Weld
via the
publishWeld
mutation before it will go live. Weld
Name | Description |
---|---|
organizationEid -
String!
|
|
name -
String
|
|
slug -
String
|
|
visibility -
String
|
|
draftStep -
String
|
|
config -
JSON
|
|
castEid -
String
|
|
files -
[WeldFile]
|
|
createCastTemplatesFromUploads -
Boolean
|
Set to true to save uploaded PDFs to your PDF templates. |
Example
Query
mutation createWeld($organizationEid: String!, $name: String, $slug: String, $visibility: String, $draftStep: String, $config: JSON, $castEid: String, $files: [WeldFile], $createCastTemplatesFromUploads: Boolean) {
createWeld(organizationEid: $organizationEid, name: $name, slug: $slug, visibility: $visibility, draftStep: $draftStep, config: $config, castEid: $castEid, files: $files, createCastTemplatesFromUploads: $createCastTemplatesFromUploads) {
versionNumber
versionId
latestDraftVersionNumber
publishedNumber
publishedAt
hasUnpublishedChanges
hasBeenPublished
id
eid
slug
name
visibility
config
organization {
...OrganizationFragment
}
hasSigners
forges {
...ForgeFragment
}
casts {
...CastFragment
}
weldGroups {
...WeldGroupFragment
}
weldDatas {
...WeldDataPageFragment
}
signatureProviderType
availableSignatureProviderTypes
remainingSubmissions
createdAt
updatedAt
archivedAt
expiresAt
stylesheetURL
}
}
Variables
{
"organizationEid": "kQp2qd9FVUWrrE60hMbi",
"name": "Weld Name",
"slug": "weld-name",
"visibility": "xyz789",
"draftStep": "abc123",
"config": {},
"castEid": "kQp2qd9FVUWrrE60hMbi",
"files": [WeldFile],
"createCastTemplatesFromUploads": false
}
Response
{
"data": {
"createWeld": {
"versionNumber": 123,
"versionId": 123,
"latestDraftVersionNumber": 123,
"publishedNumber": 987,
"publishedAt": "2022-11-25T17:55:44.910Z",
"hasUnpublishedChanges": false,
"hasBeenPublished": false,
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"slug": "weld-name",
"name": "Weld Name",
"visibility": "live",
"config": {},
"organization": Organization,
"hasSigners": false,
"forges": [Forge],
"casts": [Cast],
"weldGroups": [WeldGroup],
"weldDatas": WeldDataPage,
"signatureProviderType": "etch",
"availableSignatureProviderTypes": [
[etch, docusign]
],
"remainingSubmissions": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2022-11-25T17:55:44.910Z",
"expiresAt": "2023-05-25T16:55:44.910Z",
"stylesheetURL": "https://domain.com/page.html"
}
}
}
createWeldData
WeldData
Name | Description |
---|---|
weldEid -
String!
|
|
weldDataGroupEid -
String
|
|
isTest -
Boolean
|
Default = false |
webhookURL -
String
|
Example
Query
mutation createWeldData($weldEid: String!, $weldDataGroupEid: String, $isTest: Boolean, $webhookURL: String) {
createWeldData(weldEid: $weldEid, weldDataGroupEid: $weldDataGroupEid, isTest: $isTest, webhookURL: $webhookURL) {
id
eid
displayTitle
status
isTest
isExpired
isComplete
isCompleteAndSigned
continueURL
webhookURL
completionPercentage
numberRemainingSigners
payloadCanBeUpdated
hasSigners
nextSigner {
...SignerFragment
}
hasPin
pin
agents
files
excludedFiles
weld {
...WeldFragment
}
weldVersionId
submissions {
...SubmissionFragment
}
documentGroup {
...DocumentGroupFragment
}
webhookLogs {
...WebhookLogFragment
}
etchLogEvents {
...EtchLogFragment
}
weldDataLogEvents {
...WeldDataLogFragment
}
userUploads {
...UserUploadFragment
}
forgesRequiringCompletion {
...ForgeFragment
}
weldDataGroup {
...WeldDataGroupFragment
}
createdAt
updatedAt
dataUpdatedAt
expiresAt
archivedAt
}
}
Variables
{
"weldEid": "kQp2qd9FVUWrrE60hMbi",
"weldDataGroupEid": "kQp2qd9FVUWrrE60hMbi",
"isTest": false,
"webhookURL": "https://domain.com/page.html"
}
Response
{
"data": {
"createWeldData": {
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"displayTitle": "Sally's workflow submission",
"status": "in-progress",
"isTest": false,
"isExpired": false,
"isComplete": false,
"isCompleteAndSigned": true,
"continueURL": "https://app.useanvil.com/form/demo/my-form/nA1jH49FVUWrrE60hMbi",
"webhookURL": "https://yoursite.com/webhooks/anvil",
"completionPercentage": 0.2,
"numberRemainingSigners": 123,
"payloadCanBeUpdated": false,
"hasSigners": false,
"nextSigner": Signer,
"hasPin": true,
"pin": "9876",
"agents": {},
"files": [
[
{
"downloadURL": https://app.useanvil.com/api/document-group/nA1jH49FVUWrrE60hMbi/Hello-World.pdf,
"filename": Hello-World.pdf,
"name": Hello World,
"type": pdf
}
]
],
"excludedFiles": [
[
{
"downloadURL": https://app.useanvil.com/api/document-group/nA1jH49FVUWrrE60hMbi/Dont-Sign-Me.pdf,
"filename": Dont-Sign-Me.pdf,
"name": Do not sign this doc,
"type": pdf
}
]
],
"weld": Weld,
"weldVersionId": 987,
"submissions": [Submission],
"documentGroup": DocumentGroup,
"webhookLogs": [WebhookLog],
"etchLogEvents": [EtchLog],
"weldDataLogEvents": [WeldDataLog],
"userUploads": [UserUpload],
"forgesRequiringCompletion": [Forge],
"weldDataGroup": WeldDataGroup,
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"dataUpdatedAt": "2023-05-25T16:55:44.910Z",
"expiresAt": "2023-05-25T16:55:44.910Z",
"archivedAt": "2022-11-25T17:55:44.910Z"
}
}
}
destroySubmission
Example
Query
mutation destroySubmission($eid: String!) {
destroySubmission(eid: $eid)
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi"
}
Response
{"data": {"destroySubmission": false}}
disconnectDocusign
Example
Query
mutation disconnectDocusign($organizationSlug: String!) {
disconnectDocusign(organizationSlug: $organizationSlug) {
id
eid
name
logo
logoURL
stylesheetURL
parentOrganization {
...OrganizationFragment
}
billingEmail
supportEmail
slug
users {
...UserFragment
}
adminUsers {
...UserFragment
}
organizationUsers {
...OrganizationUserFragment
}
organizationUserInvites {
...OrganizationUserInviteFragment
}
isPersonal
isInternal
isSubscribed
useTestSignatureProvider
config
createdAt
updatedAt
welds {
...WeldFragment
}
etchTemplates {
...EtchTemplateFragment
}
etchPackets {
...EtchPacketPageFragment
}
weldGroups {
...WeldGroupFragment
}
forges {
...ForgeFragment
}
forgeMaps {
...ForgeMapFragment
}
casts {
...CastFragment
}
paymentMethods {
...PaymentMethodFragment
}
webhook {
...WebhookFragment
}
webhookActions {
...WebhookActionFragment
}
webhookLogs {
...WebhookLogPageFragment
}
childOrganizations {
...OrganizationFragment
}
relatedOrganizations {
...OrganizationFragment
}
subscribedPlanFeatures
subscriptionActivity
currentInvoice {
...InvoiceFragment
}
totalUsedUnits
weldCompleteWebhookStats
weldCompleteStats
etchCompleteStats
remainingSubmissions
remainingEtchCompletions
signatureProviderType
availableSignatureProviderTypes
}
}
Variables
{
"organizationSlug": "organization-slug"
}
Response
{
"data": {
"disconnectDocusign": {
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "Organization Name",
"logo": {},
"logoURL": "https://app.useanvil.com/uploads/nA1jH49FVUWrrE60hMbi.png",
"stylesheetURL": "https://example.com/anvil-styles.css",
"parentOrganization": Organization,
"billingEmail": "user@domain.com",
"supportEmail": "user@domain.com",
"slug": "organization-name",
"users": [User],
"adminUsers": [User],
"organizationUsers": [OrganizationUser],
"organizationUserInvites": [OrganizationUserInvite],
"isPersonal": true,
"isInternal": true,
"isSubscribed": false,
"useTestSignatureProvider": true,
"config": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"welds": [Weld],
"etchTemplates": [EtchTemplate],
"etchPackets": EtchPacketPage,
"weldGroups": [WeldGroup],
"forges": [Forge],
"forgeMaps": [ForgeMap],
"casts": [Cast],
"paymentMethods": [PaymentMethod],
"webhook": Webhook,
"webhookActions": [WebhookAction],
"webhookLogs": WebhookLogPage,
"childOrganizations": [Organization],
"relatedOrganizations": [Organization],
"subscribedPlanFeatures": {},
"subscriptionActivity": {},
"currentInvoice": Invoice,
"totalUsedUnits": 987,
"weldCompleteWebhookStats": {},
"weldCompleteStats": {},
"etchCompleteStats": {},
"remainingSubmissions": {},
"remainingEtchCompletions": {},
"signatureProviderType": "abc123",
"availableSignatureProviderTypes": ["abc123"]
}
}
}
duplicateCast
Cast
Name | Description |
---|---|
eid -
String!
|
|
organizationEid -
String!
|
|
name -
String
|
|
title -
String
|
Example
Query
mutation duplicateCast($eid: String!, $organizationEid: String!, $name: String, $title: String) {
duplicateCast(eid: $eid, organizationEid: $organizationEid, name: $name, title: $title) {
versionNumber
versionId
latestDraftVersionNumber
publishedNumber
publishedAt
hasUnpublishedChanges
hasBeenPublished
id
eid
type
name
title
isTemplate
exampleData
allowedAliasIds
fieldInfo
config
organization {
...OrganizationFragment
}
parentCast {
...CastFragment
}
createdAt
updatedAt
archivedAt
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi",
"organizationEid": "kQp2qd9FVUWrrE60hMbi",
"name": "Cast Name",
"title": "Cast Title"
}
Response
{
"data": {
"duplicateCast": {
"versionNumber": 987,
"versionId": 123,
"latestDraftVersionNumber": 123,
"publishedNumber": 987,
"publishedAt": "2022-11-25T17:55:44.910Z",
"hasUnpublishedChanges": true,
"hasBeenPublished": true,
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"type": "application/pdf",
"name": "Cast Name",
"title": "Cast Title",
"isTemplate": true,
"exampleData": {},
"allowedAliasIds": ["xyz789"],
"fieldInfo": {},
"config": {},
"organization": Organization,
"parentCast": Cast,
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2022-11-25T17:55:44.910Z"
}
}
}
duplicateWeld
Weld
Name | Description |
---|---|
eid -
String!
|
|
organizationEid -
String!
|
|
visibility -
String
|
|
name -
String
|
|
slug -
String
|
Example
Query
mutation duplicateWeld($eid: String!, $organizationEid: String!, $visibility: String, $name: String, $slug: String) {
duplicateWeld(eid: $eid, organizationEid: $organizationEid, visibility: $visibility, name: $name, slug: $slug) {
versionNumber
versionId
latestDraftVersionNumber
publishedNumber
publishedAt
hasUnpublishedChanges
hasBeenPublished
id
eid
slug
name
visibility
config
organization {
...OrganizationFragment
}
hasSigners
forges {
...ForgeFragment
}
casts {
...CastFragment
}
weldGroups {
...WeldGroupFragment
}
weldDatas {
...WeldDataPageFragment
}
signatureProviderType
availableSignatureProviderTypes
remainingSubmissions
createdAt
updatedAt
archivedAt
expiresAt
stylesheetURL
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi",
"organizationEid": "kQp2qd9FVUWrrE60hMbi",
"visibility": "xyz789",
"name": "Weld Name",
"slug": "weld-name"
}
Response
{
"data": {
"duplicateWeld": {
"versionNumber": 987,
"versionId": 987,
"latestDraftVersionNumber": 123,
"publishedNumber": 987,
"publishedAt": "2022-11-25T17:55:44.910Z",
"hasUnpublishedChanges": false,
"hasBeenPublished": false,
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"slug": "weld-name",
"name": "Weld Name",
"visibility": "live",
"config": {},
"organization": Organization,
"hasSigners": true,
"forges": [Forge],
"casts": [Cast],
"weldGroups": [WeldGroup],
"weldDatas": WeldDataPage,
"signatureProviderType": "etch",
"availableSignatureProviderTypes": [
[etch, docusign]
],
"remainingSubmissions": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2023-05-25T16:55:44.910Z",
"expiresAt": "2022-11-25T17:55:44.910Z",
"stylesheetURL": "https://domain.com/page.html"
}
}
}
expireSessionToken
UserToken
associated with the provided requestTokenEid
. Any authentication attempts made using that token will be rejected. Boolean
Name | Description |
---|---|
requestTokenEid -
String!
|
The EID of the request token that was returned from the
generateEmbedURL mutation. Used to determine which session token to invalidate. |
Example
Query
mutation expireSessionToken($requestTokenEid: String!) {
expireSessionToken(requestTokenEid: $requestTokenEid)
}
Variables
{
"requestTokenEid": "kQp2qd9FVUWrrE60hMbi"
}
Response
{"data": {"expireSessionToken": true}}
expireSignerTokens
Expires all valid SignerTokens
for a specific Signer
. Signers who visit links with expired tokens will be shown a "Token Expired" error, or will be
redirected to your service if there is a redirectURL
set on the signer.
If the Signer
has already completed signing, this mutation will throw an error. If you would like the Signer
to be able to sign again, email signers will need to be notified via sendEtchPacket
, and embedded signers will need a new signing link generated by generateEtchSignURL
.
Example
Query
mutation expireSignerTokens($signerEid: String!) {
expireSignerTokens(signerEid: $signerEid) {
id
eid
aliasId
status
provider
name
email
routingOrder
signActionType
user {
...UserFragment
}
submission {
...SubmissionFragment
}
documentGroup {
...DocumentGroupFragment
}
signerTokens {
...SignerTokenFragment
}
createdAt
updatedAt
completedAt
clientUserId
}
}
Variables
{
"signerEid": "kQp2qd9FVUWrrE60hMbi"
}
Response
{
"data": {
"expireSignerTokens": {
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"aliasId": "signer1",
"status": "sent",
"provider": "etch",
"name": "Signer Name",
"email": "user@domain.com",
"routingOrder": 987,
"signActionType": "email",
"user": User,
"submission": Submission,
"documentGroup": DocumentGroup,
"signerTokens": [SignerToken],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"completedAt": "2022-11-25T17:55:44.910Z",
"clientUserId": "mySigner1"
}
}
}
forgeSubmit
Submits data to a Workflow's webform (a Forge
). You can use this mutation to start a Workflow with data from your system and submit data to an
existing Submission
.
See the Workflow API guide for more information on usage scenarios.
Submission
Name | Description |
---|---|
forgeEid -
String!
|
|
weldDataEid -
String
|
|
submissionEid -
String
|
|
payload -
JSON!
|
A Data is additive: you only need to submit data you wish to update. |
enforcePayloadValidOnCreate -
Boolean
|
Default = true |
currentStep -
Int
|
|
complete -
Boolean
|
|
isTest -
Boolean
|
Default = false |
timezone -
String
|
|
webhookURL -
String
|
|
groupArrayId -
String
|
|
groupArrayIndex -
Int
|
Example
Query
mutation forgeSubmit($forgeEid: String!, $weldDataEid: String, $submissionEid: String, $payload: JSON!, $enforcePayloadValidOnCreate: Boolean, $currentStep: Int, $complete: Boolean, $isTest: Boolean, $timezone: String, $webhookURL: String, $groupArrayId: String, $groupArrayIndex: Int) {
forgeSubmit(forgeEid: $forgeEid, weldDataEid: $weldDataEid, submissionEid: $submissionEid, payload: $payload, enforcePayloadValidOnCreate: $enforcePayloadValidOnCreate, currentStep: $currentStep, complete: $complete, isTest: $isTest, timezone: $timezone, webhookURL: $webhookURL, groupArrayId: $groupArrayId, groupArrayIndex: $groupArrayIndex) {
id
eid
status
resolvedPayload
payload
payloadValue
currentStep
totalSteps
continueURL
weldData {
...WeldDataFragment
}
forge {
...ForgeFragment
}
user {
...UserFragment
}
signer {
...SignerFragment
}
reviewData
completionPercentage
isExcluded
touchedByUser
requestMeta
createdAt
updatedAt
completedAt
}
}
Variables
{
"forgeEid": "kQp2qd9FVUWrrE60hMbi",
"weldDataEid": "kQp2qd9FVUWrrE60hMbi",
"submissionEid": "kQp2qd9FVUWrrE60hMbi",
"payload": {},
"enforcePayloadValidOnCreate": true,
"currentStep": 987,
"complete": false,
"isTest": false,
"timezone": "America/Los_Angeles",
"webhookURL": "https://domain.com/page.html",
"groupArrayId": "xyz789",
"groupArrayIndex": 123
}
Response
{
"data": {
"forgeSubmit": {
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"status": "in-progress",
"resolvedPayload": {
"email": {
"id": f162136372633517,
"aliasId": email,
"type": email,
"label": Email,
"value": hello@example.com
}
},
"payload": {
"f162136372633517": {
"type": email,
"value": hello@example.com
}
},
"payloadValue": {
"f162136372633517": hello@example.com
},
"currentStep": 123,
"totalSteps": 987,
"continueURL": "https://app.useanvil.com/form/demo/my-form/nA1jH49FVUWrrE60hMbi",
"weldData": WeldData,
"forge": Forge,
"user": User,
"signer": Signer,
"reviewData": {},
"completionPercentage": 33.33,
"isExcluded": false,
"touchedByUser": false,
"requestMeta": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"completedAt": "2023-05-25T16:55:44.910Z"
}
}
}
generateEmbedURL
GenerateEmbedURLResponse
Name | Description |
---|---|
type -
String!
|
The type of object you want to create an embedded URL for. Allowed values are edit-etch-packet , edit-pdf-template , edit-weld , submit-webform , edit-workflow |
eid -
String!
|
The EID of the object you want to give embedded access to. |
validUntil -
String
|
An ISO compliant date-time string such as Must provide either |
validForSeconds -
Int
|
The number of seconds from now that the embedded access will be valid for. Must provide either |
metadata -
JSON
|
Any information that you would like to associate with this embedded URL request |
Example
Query
mutation generateEmbedURL($type: String!, $eid: String!, $validUntil: String, $validForSeconds: Int, $metadata: JSON) {
generateEmbedURL(type: $type, eid: $eid, validUntil: $validUntil, validForSeconds: $validForSeconds, metadata: $metadata) {
requestTokenEid
url
}
}
Variables
{
"type": "submit-webform",
"eid": "kQp2qd9FVUWrrE60hMbi",
"validUntil": "2023-11-25T16:55:32+00:00",
"validForSeconds": 86400,
"metadata": {"internalUserId": 123}
}
Response
{
"data": {
"generateEmbedURL": {
"requestTokenEid": "INM8tVRLy6u5NJafWMpP",
"url": "https://app.useanvil.com/auth/tokenized/login?token=INM8tVRLy6u5NJafWMpP"
}
}
}
generateEtchSignURL
String
Name | Description |
---|---|
signerEid -
String!
|
|
clientUserId -
String!
|
Your id for the person signing: a way to trace this signer back to a user in your system. |
Example
Query
mutation generateEtchSignURL($signerEid: String!, $clientUserId: String!) {
generateEtchSignURL(signerEid: $signerEid, clientUserId: $clientUserId)
}
Variables
{
"signerEid": "kQp2qd9FVUWrrE60hMbi",
"clientUserId": "abc123"
}
Response
{"data": {"generateEtchSignURL": "xyz789"}}
mergeWelds
Weld
Name | Description |
---|---|
weldEids -
[String!]
|
|
deduplicateWebformFields -
Boolean!
|
|
name -
String!
|
|
slug -
String!
|
|
organizationEid -
String!
|
|
autoPublish -
Boolean
|
|
autoPublishTitle -
String
|
|
autoPublishDescription -
String
|
Example
Query
mutation mergeWelds($weldEids: [String!], $deduplicateWebformFields: Boolean!, $name: String!, $slug: String!, $organizationEid: String!, $autoPublish: Boolean, $autoPublishTitle: String, $autoPublishDescription: String) {
mergeWelds(weldEids: $weldEids, deduplicateWebformFields: $deduplicateWebformFields, name: $name, slug: $slug, organizationEid: $organizationEid, autoPublish: $autoPublish, autoPublishTitle: $autoPublishTitle, autoPublishDescription: $autoPublishDescription) {
versionNumber
versionId
latestDraftVersionNumber
publishedNumber
publishedAt
hasUnpublishedChanges
hasBeenPublished
id
eid
slug
name
visibility
config
organization {
...OrganizationFragment
}
hasSigners
forges {
...ForgeFragment
}
casts {
...CastFragment
}
weldGroups {
...WeldGroupFragment
}
weldDatas {
...WeldDataPageFragment
}
signatureProviderType
availableSignatureProviderTypes
remainingSubmissions
createdAt
updatedAt
archivedAt
expiresAt
stylesheetURL
}
}
Variables
{
"weldEids": ["xyz789"],
"deduplicateWebformFields": true,
"name": "Weld Name",
"slug": "weld-name",
"organizationEid": "kQp2qd9FVUWrrE60hMbi",
"autoPublish": false,
"autoPublishTitle": "xyz789",
"autoPublishDescription": "xyz789"
}
Response
{
"data": {
"mergeWelds": {
"versionNumber": 987,
"versionId": 987,
"latestDraftVersionNumber": 123,
"publishedNumber": 123,
"publishedAt": "2022-11-25T17:55:44.910Z",
"hasUnpublishedChanges": true,
"hasBeenPublished": false,
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"slug": "weld-name",
"name": "Weld Name",
"visibility": "live",
"config": {},
"organization": Organization,
"hasSigners": true,
"forges": [Forge],
"casts": [Cast],
"weldGroups": [WeldGroup],
"weldDatas": WeldDataPage,
"signatureProviderType": "etch",
"availableSignatureProviderTypes": [
[etch, docusign]
],
"remainingSubmissions": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2022-11-25T17:55:44.910Z",
"expiresAt": "2022-11-25T17:55:44.910Z",
"stylesheetURL": "https://domain.com/page.html"
}
}
}
publishCast
Publish a Cast
by updating the Cast
with all un-published changes.
This is required to have any changes from an
updateCast
take effect.
Example
Query
mutation publishCast($eid: String, $title: String, $description: String) {
publishCast(eid: $eid, title: $title, description: $description) {
versionNumber
versionId
latestDraftVersionNumber
publishedNumber
publishedAt
hasUnpublishedChanges
hasBeenPublished
id
eid
type
name
title
isTemplate
exampleData
allowedAliasIds
fieldInfo
config
organization {
...OrganizationFragment
}
parentCast {
...CastFragment
}
createdAt
updatedAt
archivedAt
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi",
"title": "Cast Title",
"description": "abc123"
}
Response
{
"data": {
"publishCast": {
"versionNumber": 123,
"versionId": 987,
"latestDraftVersionNumber": 987,
"publishedNumber": 987,
"publishedAt": "2022-11-25T17:55:44.910Z",
"hasUnpublishedChanges": true,
"hasBeenPublished": true,
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"type": "application/pdf",
"name": "Cast Name",
"title": "Cast Title",
"isTemplate": true,
"exampleData": {},
"allowedAliasIds": ["xyz789"],
"fieldInfo": {},
"config": {},
"organization": Organization,
"parentCast": Cast,
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2023-05-25T16:55:44.910Z"
}
}
}
publishWeld
Publish a Weld
by updating the Weld
with all un-published changes.
This is required to have any changes from an
updateWeld
take effect.
Weld
Name | Description |
---|---|
eid -
String
|
|
title -
String
|
|
description -
String
|
|
migrateOpenWeldDatas -
Boolean
|
A boolean indicating whether you'd like to migrate all open workflow submissions to the new published version, or leave them pegged to the version under which they were created. Default = true |
Example
Query
mutation publishWeld($eid: String, $title: String, $description: String, $migrateOpenWeldDatas: Boolean) {
publishWeld(eid: $eid, title: $title, description: $description, migrateOpenWeldDatas: $migrateOpenWeldDatas) {
versionNumber
versionId
latestDraftVersionNumber
publishedNumber
publishedAt
hasUnpublishedChanges
hasBeenPublished
id
eid
slug
name
visibility
config
organization {
...OrganizationFragment
}
hasSigners
forges {
...ForgeFragment
}
casts {
...CastFragment
}
weldGroups {
...WeldGroupFragment
}
weldDatas {
...WeldDataPageFragment
}
signatureProviderType
availableSignatureProviderTypes
remainingSubmissions
createdAt
updatedAt
archivedAt
expiresAt
stylesheetURL
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi",
"title": "Weld Title",
"description": "xyz789",
"migrateOpenWeldDatas": true
}
Response
{
"data": {
"publishWeld": {
"versionNumber": 123,
"versionId": 987,
"latestDraftVersionNumber": 987,
"publishedNumber": 123,
"publishedAt": "2022-11-25T17:55:44.910Z",
"hasUnpublishedChanges": false,
"hasBeenPublished": false,
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"slug": "weld-name",
"name": "Weld Name",
"visibility": "live",
"config": {},
"organization": Organization,
"hasSigners": true,
"forges": [Forge],
"casts": [Cast],
"weldGroups": [WeldGroup],
"weldDatas": WeldDataPage,
"signatureProviderType": "etch",
"availableSignatureProviderTypes": [
[etch, docusign]
],
"remainingSubmissions": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2023-05-25T16:55:44.910Z",
"expiresAt": "2023-05-25T16:55:44.910Z",
"stylesheetURL": "https://domain.com/page.html"
}
}
}
removeEtchPacket
Example
Query
mutation removeEtchPacket($eid: String!) {
removeEtchPacket(eid: $eid)
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi"
}
Response
{"data": {"removeEtchPacket": true}}
removeWebhook
Example
Query
mutation removeWebhook($eid: String!) {
removeWebhook(eid: $eid) {
id
eid
name
logo
logoURL
stylesheetURL
parentOrganization {
...OrganizationFragment
}
billingEmail
supportEmail
slug
users {
...UserFragment
}
adminUsers {
...UserFragment
}
organizationUsers {
...OrganizationUserFragment
}
organizationUserInvites {
...OrganizationUserInviteFragment
}
isPersonal
isInternal
isSubscribed
useTestSignatureProvider
config
createdAt
updatedAt
welds {
...WeldFragment
}
etchTemplates {
...EtchTemplateFragment
}
etchPackets {
...EtchPacketPageFragment
}
weldGroups {
...WeldGroupFragment
}
forges {
...ForgeFragment
}
forgeMaps {
...ForgeMapFragment
}
casts {
...CastFragment
}
paymentMethods {
...PaymentMethodFragment
}
webhook {
...WebhookFragment
}
webhookActions {
...WebhookActionFragment
}
webhookLogs {
...WebhookLogPageFragment
}
childOrganizations {
...OrganizationFragment
}
relatedOrganizations {
...OrganizationFragment
}
subscribedPlanFeatures
subscriptionActivity
currentInvoice {
...InvoiceFragment
}
totalUsedUnits
weldCompleteWebhookStats
weldCompleteStats
etchCompleteStats
remainingSubmissions
remainingEtchCompletions
signatureProviderType
availableSignatureProviderTypes
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi"
}
Response
{
"data": {
"removeWebhook": {
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "Organization Name",
"logo": {},
"logoURL": "https://app.useanvil.com/uploads/nA1jH49FVUWrrE60hMbi.png",
"stylesheetURL": "https://example.com/anvil-styles.css",
"parentOrganization": Organization,
"billingEmail": "user@domain.com",
"supportEmail": "user@domain.com",
"slug": "organization-name",
"users": [User],
"adminUsers": [User],
"organizationUsers": [OrganizationUser],
"organizationUserInvites": [OrganizationUserInvite],
"isPersonal": true,
"isInternal": true,
"isSubscribed": true,
"useTestSignatureProvider": false,
"config": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"welds": [Weld],
"etchTemplates": [EtchTemplate],
"etchPackets": EtchPacketPage,
"weldGroups": [WeldGroup],
"forges": [Forge],
"forgeMaps": [ForgeMap],
"casts": [Cast],
"paymentMethods": [PaymentMethod],
"webhook": Webhook,
"webhookActions": [WebhookAction],
"webhookLogs": WebhookLogPage,
"childOrganizations": [Organization],
"relatedOrganizations": [Organization],
"subscribedPlanFeatures": {},
"subscriptionActivity": {},
"currentInvoice": Invoice,
"totalUsedUnits": 123,
"weldCompleteWebhookStats": {},
"weldCompleteStats": {},
"etchCompleteStats": {},
"remainingSubmissions": {},
"remainingEtchCompletions": {},
"signatureProviderType": "abc123",
"availableSignatureProviderTypes": ["abc123"]
}
}
}
removeWebhookAction
Example
Query
mutation removeWebhookAction($eid: String!) {
removeWebhookAction(eid: $eid)
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi"
}
Response
{"data": {"removeWebhookAction": true}}
removeWeldData
Example
Query
mutation removeWeldData($eid: String!) {
removeWeldData(eid: $eid)
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi"
}
Response
{"data": {"removeWeldData": true}}
retryWebhookLog
Example
Query
mutation retryWebhookLog($eid: String!) {
retryWebhookLog(eid: $eid) {
id
eid
action
isError
isRetry
statusCode
millisecondsToFinish
objectEid
rootObjectType
rootObjectURL
objectMetadata
organization {
...OrganizationFragment
}
originalWebhookLog {
...WebhookLogFragment
}
createdAt
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi"
}
Response
{
"data": {
"retryWebhookLog": {
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"action": "weldComplete",
"isError": true,
"isRetry": false,
"statusCode": 987,
"millisecondsToFinish": 987,
"objectEid": "kQp2qd9FVUWrrE60hMbi",
"rootObjectType": "WeldData",
"rootObjectURL": "https://app.useanvil.com/org/my-org/w/my-workflow/iXLRleX92vhwF8cIhsk2",
"objectMetadata": {},
"organization": Organization,
"originalWebhookLog": WebhookLog,
"createdAt": "2023-05-25T16:55:45.190Z"
}
}
}
sendEtchPacket
This will move a draft
EtchPacket
into sent mode (status
== sent
). If the first signer is an email signer, this will kick off an email, with a link to sign their portion of the packet.
You can call this mutation after a packet is sent to "resend" signature emails to your email signers. For example, you can send a new email via sendEtchPacket
if they lose the email, or if they have an email with an expired token. This mutation will always email the first signer who has not yet signed.
When your signers are set up as embedded
signers, they will
not be emailed. You must generate signing URLs via the
generateEtchSignURL
mutation. See
our e-signature guide on embedded signers for more info.
Example
Query
mutation sendEtchPacket($eid: String!) {
sendEtchPacket(eid: $eid) {
id
eid
name
status
isTest
containsFillData
payload
numberRemainingSigners
detailsURL
webhookURL
organization {
...OrganizationFragment
}
documentGroup {
...DocumentGroupFragment
}
etchTemplate {
...EtchTemplateFragment
}
userUploads {
...UserUploadFragment
}
etchLogEvents {
...EtchLogFragment
}
webhookLogs {
...WebhookLogFragment
}
createdAt
updatedAt
archivedAt
completedAt
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi"
}
Response
{
"data": {
"sendEtchPacket": {
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "EtchPacket Name",
"status": "completed",
"isTest": false,
"containsFillData": true,
"payload": {
"myPDFId": {
"textColor": #000000,
"data": {"email": hello@example.com}
}
},
"numberRemainingSigners": 987,
"detailsURL": "https://app.useanvil.com/org/my-org/etch/nA1jH49FVUWrrE60hMbi",
"webhookURL": "https://yoursite.com/webhooks/anvil",
"organization": Organization,
"documentGroup": DocumentGroup,
"etchTemplate": EtchTemplate,
"userUploads": [UserUpload],
"etchLogEvents": [EtchLog],
"webhookLogs": [WebhookLog],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2022-11-25T17:55:44.910Z",
"completedAt": "2023-05-25T16:55:44.910Z"
}
}
}
skipSigner
Example
Query
mutation skipSigner($signerEid: String!) {
skipSigner(signerEid: $signerEid) {
id
eid
aliasId
status
provider
name
email
routingOrder
signActionType
user {
...UserFragment
}
submission {
...SubmissionFragment
}
documentGroup {
...DocumentGroupFragment
}
signerTokens {
...SignerTokenFragment
}
createdAt
updatedAt
completedAt
clientUserId
}
}
Variables
{
"signerEid": "kQp2qd9FVUWrrE60hMbi"
}
Response
{
"data": {
"skipSigner": {
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"aliasId": "signer1",
"status": "sent",
"provider": "etch",
"name": "Signer Name",
"email": "user@domain.com",
"routingOrder": 123,
"signActionType": "email",
"user": User,
"submission": Submission,
"documentGroup": DocumentGroup,
"signerTokens": [SignerToken],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"completedAt": "2022-11-25T17:55:44.910Z",
"clientUserId": "mySigner1"
}
}
}
updateCast
Update a Cast
with new properties. This will create a new CastVersion
and:
- If this being used as a Template, it will require you to publish the
Cast
via thepublishCast
mutation before it will go live. - If the
Cast
is part of a Workflow, it will require you to publish theWeld
via thepublishWeld
mutation
Cast
Name | Description |
---|---|
eid -
String!
|
|
name -
String
|
|
title -
String
|
|
isTemplate -
Boolean
|
|
organizationEid -
String
|
|
config -
JSON
|
|
configFile -
Upload
|
|
file -
Upload
|
|
isArchived -
Boolean
|
|
versionNumber -
Int
|
Used to ensure that the Cast is still at the version that you believed it is. Helps to prevent performing an update without being aware that an update has already occurred in the meantime. |
allowedAliasIds -
[String]
|
Example
Query
mutation updateCast($eid: String!, $name: String, $title: String, $isTemplate: Boolean, $organizationEid: String, $config: JSON, $configFile: Upload, $file: Upload, $isArchived: Boolean, $versionNumber: Int, $allowedAliasIds: [String]) {
updateCast(eid: $eid, name: $name, title: $title, isTemplate: $isTemplate, organizationEid: $organizationEid, config: $config, configFile: $configFile, file: $file, isArchived: $isArchived, versionNumber: $versionNumber, allowedAliasIds: $allowedAliasIds) {
versionNumber
versionId
latestDraftVersionNumber
publishedNumber
publishedAt
hasUnpublishedChanges
hasBeenPublished
id
eid
type
name
title
isTemplate
exampleData
allowedAliasIds
fieldInfo
config
organization {
...OrganizationFragment
}
parentCast {
...CastFragment
}
createdAt
updatedAt
archivedAt
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "Cast Name",
"title": "Cast Title",
"isTemplate": false,
"organizationEid": "kQp2qd9FVUWrrE60hMbi",
"config": {},
"configFile": Upload,
"file": Upload,
"isArchived": true,
"versionNumber": 987,
"allowedAliasIds": ["xyz789"]
}
Response
{
"data": {
"updateCast": {
"versionNumber": 987,
"versionId": 987,
"latestDraftVersionNumber": 987,
"publishedNumber": 123,
"publishedAt": "2022-11-25T17:55:44.910Z",
"hasUnpublishedChanges": true,
"hasBeenPublished": true,
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"type": "application/pdf",
"name": "Cast Name",
"title": "Cast Title",
"isTemplate": false,
"exampleData": {},
"allowedAliasIds": ["abc123"],
"fieldInfo": {},
"config": {},
"organization": Organization,
"parentCast": Cast,
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2023-05-25T16:55:44.910Z"
}
}
}
updateEtchFree
EtchTemplate
Name | Description |
---|---|
etchTemplateEid -
String!
|
|
token -
String!
|
|
isEditing -
Boolean
|
|
name -
String
|
|
ownerName -
String
|
|
ownerEmail -
String
|
|
signers -
JSON
|
|
fields -
[JSON]
|
|
castFields -
[JSON]
|
Example
Query
mutation updateEtchFree($etchTemplateEid: String!, $token: String!, $isEditing: Boolean, $name: String, $ownerName: String, $ownerEmail: String, $signers: JSON, $fields: [JSON], $castFields: [JSON]) {
updateEtchFree(etchTemplateEid: $etchTemplateEid, token: $token, isEditing: $isEditing, name: $name, ownerName: $ownerName, ownerEmail: $ownerEmail, signers: $signers, fields: $fields, castFields: $castFields) {
id
eid
name
isFree
isRepeatable
config
organization {
...OrganizationFragment
}
casts {
...CastFragment
}
etchPackets {
...EtchPacketFragment
}
userUploads {
...UserUploadFragment
}
createdAt
updatedAt
}
}
Variables
{
"etchTemplateEid": "kQp2qd9FVUWrrE60hMbi",
"token": "abc123",
"isEditing": false,
"name": "EtchTemplate Name",
"ownerName": "xyz789",
"ownerEmail": "user@domain.com",
"signers": {},
"fields": [{}],
"castFields": [{}]
}
Response
{
"data": {
"updateEtchFree": {
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "EtchTemplate Name",
"isFree": true,
"isRepeatable": true,
"config": {},
"organization": Organization,
"casts": [Cast],
"etchPackets": [EtchPacket],
"userUploads": [UserUpload],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z"
}
}
}
updateEtchPacket
EtchPacket
Name | Description |
---|---|
eid -
String!
|
|
token -
String
|
|
isArchived -
Boolean
|
|
name -
String
|
|
webhookURL -
String
|
|
payload -
JSON
|
Example
Query
mutation updateEtchPacket($eid: String!, $token: String, $isArchived: Boolean, $name: String, $webhookURL: String, $payload: JSON) {
updateEtchPacket(eid: $eid, token: $token, isArchived: $isArchived, name: $name, webhookURL: $webhookURL, payload: $payload) {
id
eid
name
status
isTest
containsFillData
payload
numberRemainingSigners
detailsURL
webhookURL
organization {
...OrganizationFragment
}
documentGroup {
...DocumentGroupFragment
}
etchTemplate {
...EtchTemplateFragment
}
userUploads {
...UserUploadFragment
}
etchLogEvents {
...EtchLogFragment
}
webhookLogs {
...WebhookLogFragment
}
createdAt
updatedAt
archivedAt
completedAt
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi",
"token": "abc123",
"isArchived": false,
"name": "EtchPacket Name",
"webhookURL": "https://domain.com/page.html",
"payload": {}
}
Response
{
"data": {
"updateEtchPacket": {
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "EtchPacket Name",
"status": "completed",
"isTest": true,
"containsFillData": false,
"payload": {
"myPDFId": {
"textColor": #000000,
"data": {"email": hello@example.com}
}
},
"numberRemainingSigners": 987,
"detailsURL": "https://app.useanvil.com/org/my-org/etch/nA1jH49FVUWrrE60hMbi",
"webhookURL": "https://yoursite.com/webhooks/anvil",
"organization": Organization,
"documentGroup": DocumentGroup,
"etchTemplate": EtchTemplate,
"userUploads": [UserUpload],
"etchLogEvents": [EtchLog],
"webhookLogs": [WebhookLog],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2023-05-25T16:55:44.910Z",
"completedAt": "2022-11-25T17:55:44.910Z"
}
}
}
updateEtchTemplate
EtchTemplate
Name | Description |
---|---|
eid -
String!
|
|
isRepeatable -
Boolean
|
|
name -
String
|
|
config -
JSON
|
Example
Query
mutation updateEtchTemplate($eid: String!, $isRepeatable: Boolean, $name: String, $config: JSON) {
updateEtchTemplate(eid: $eid, isRepeatable: $isRepeatable, name: $name, config: $config) {
id
eid
name
isFree
isRepeatable
config
organization {
...OrganizationFragment
}
casts {
...CastFragment
}
etchPackets {
...EtchPacketFragment
}
userUploads {
...UserUploadFragment
}
createdAt
updatedAt
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi",
"isRepeatable": false,
"name": "EtchTemplate Name",
"config": {}
}
Response
{
"data": {
"updateEtchTemplate": {
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "EtchTemplate Name",
"isFree": false,
"isRepeatable": false,
"config": {},
"organization": Organization,
"casts": [Cast],
"etchPackets": [EtchPacket],
"userUploads": [UserUpload],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z"
}
}
}
updateForge
Forge
with new properties. This will create a new ForgeVersion
and will require you to publish the Weld
via the
publishWeld
mutation before it will go live. Forge
Name | Description |
---|---|
eid -
String!
|
|
name -
String
|
|
slug -
String
|
|
config -
JSON
|
|
configFile -
Upload
|
|
isArchived -
Boolean
|
|
isRequired -
Boolean
|
|
title -
String
|
|
organizationRole -
String
|
|
unauthenticatedAuthType -
String
|
|
versionNumber -
Int
|
Used to ensure that the Forge is still at the version that you believed it is. Helps to prevent performing an update without being aware that an update has already occurred in the meantime. |
Example
Query
mutation updateForge($eid: String!, $name: String, $slug: String, $config: JSON, $configFile: Upload, $isArchived: Boolean, $isRequired: Boolean, $title: String, $organizationRole: String, $unauthenticatedAuthType: String, $versionNumber: Int) {
updateForge(eid: $eid, name: $name, slug: $slug, config: $config, configFile: $configFile, isArchived: $isArchived, isRequired: $isRequired, title: $title, organizationRole: $organizationRole, unauthenticatedAuthType: $unauthenticatedAuthType, versionNumber: $versionNumber) {
versionNumber
versionId
latestDraftVersionNumber
publishedNumber
publishedAt
hasUnpublishedChanges
hasBeenPublished
id
eid
name
slug
isRequired
config
fieldInfo
weld {
...WeldFragment
}
organization {
...OrganizationFragment
}
userUploads {
...UserUploadFragment
}
createdAt
updatedAt
archivedAt
examplePayload
stylesheetURL
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "Forge Name",
"slug": "forge-name",
"config": {},
"configFile": Upload,
"isArchived": true,
"isRequired": true,
"title": "Forge Title",
"organizationRole": "xyz789",
"unauthenticatedAuthType": "xyz789",
"versionNumber": 123
}
Response
{
"data": {
"updateForge": {
"versionNumber": 987,
"versionId": 987,
"latestDraftVersionNumber": 123,
"publishedNumber": 987,
"publishedAt": "2022-11-25T17:55:44.910Z",
"hasUnpublishedChanges": true,
"hasBeenPublished": false,
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "Forge Name",
"slug": "forge-name",
"isRequired": false,
"config": {},
"fieldInfo": {},
"weld": Weld,
"organization": Organization,
"userUploads": [UserUpload],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2022-11-25T17:55:44.910Z",
"examplePayload": {},
"stylesheetURL": "https://domain.com/page.html"
}
}
}
updateOrganization
Organization
Name | Description |
---|---|
organizationSlug -
String!
|
|
name -
String
|
|
logo -
Upload
|
|
billingEmail -
String
|
|
supportEmail -
String
|
|
slug -
String
|
|
defaultSourceId -
String
|
|
signatureProvider -
String
|
|
config -
JSON
|
|
usePDFFillingAPI -
Boolean
|
|
weldCompleteEmailRecipients -
JSON
|
|
signerViewEmailRecipients -
JSON
|
|
signerCompleteEmailRecipients -
JSON
|
|
etchCompleteEmailRecipients -
JSON
|
|
weldCompleteEmailEnableForTest -
Boolean
|
|
stylesheetURL -
String
|
Example
Query
mutation updateOrganization($organizationSlug: String!, $name: String, $logo: Upload, $billingEmail: String, $supportEmail: String, $slug: String, $defaultSourceId: String, $signatureProvider: String, $config: JSON, $usePDFFillingAPI: Boolean, $weldCompleteEmailRecipients: JSON, $signerViewEmailRecipients: JSON, $signerCompleteEmailRecipients: JSON, $etchCompleteEmailRecipients: JSON, $weldCompleteEmailEnableForTest: Boolean, $stylesheetURL: String) {
updateOrganization(organizationSlug: $organizationSlug, name: $name, logo: $logo, billingEmail: $billingEmail, supportEmail: $supportEmail, slug: $slug, defaultSourceId: $defaultSourceId, signatureProvider: $signatureProvider, config: $config, usePDFFillingAPI: $usePDFFillingAPI, weldCompleteEmailRecipients: $weldCompleteEmailRecipients, signerViewEmailRecipients: $signerViewEmailRecipients, signerCompleteEmailRecipients: $signerCompleteEmailRecipients, etchCompleteEmailRecipients: $etchCompleteEmailRecipients, weldCompleteEmailEnableForTest: $weldCompleteEmailEnableForTest, stylesheetURL: $stylesheetURL) {
id
eid
name
logo
logoURL
stylesheetURL
parentOrganization {
...OrganizationFragment
}
billingEmail
supportEmail
slug
users {
...UserFragment
}
adminUsers {
...UserFragment
}
organizationUsers {
...OrganizationUserFragment
}
organizationUserInvites {
...OrganizationUserInviteFragment
}
isPersonal
isInternal
isSubscribed
useTestSignatureProvider
config
createdAt
updatedAt
welds {
...WeldFragment
}
etchTemplates {
...EtchTemplateFragment
}
etchPackets {
...EtchPacketPageFragment
}
weldGroups {
...WeldGroupFragment
}
forges {
...ForgeFragment
}
forgeMaps {
...ForgeMapFragment
}
casts {
...CastFragment
}
paymentMethods {
...PaymentMethodFragment
}
webhook {
...WebhookFragment
}
webhookActions {
...WebhookActionFragment
}
webhookLogs {
...WebhookLogPageFragment
}
childOrganizations {
...OrganizationFragment
}
relatedOrganizations {
...OrganizationFragment
}
subscribedPlanFeatures
subscriptionActivity
currentInvoice {
...InvoiceFragment
}
totalUsedUnits
weldCompleteWebhookStats
weldCompleteStats
etchCompleteStats
remainingSubmissions
remainingEtchCompletions
signatureProviderType
availableSignatureProviderTypes
}
}
Variables
{
"organizationSlug": "organization-slug",
"name": "Organization Name",
"logo": Upload,
"billingEmail": "user@domain.com",
"supportEmail": "user@domain.com",
"slug": "organization-name",
"defaultSourceId": "xyz789",
"signatureProvider": "xyz789",
"config": {},
"usePDFFillingAPI": false,
"weldCompleteEmailRecipients": {},
"signerViewEmailRecipients": {},
"signerCompleteEmailRecipients": {},
"etchCompleteEmailRecipients": {},
"weldCompleteEmailEnableForTest": true,
"stylesheetURL": "https://domain.com/page.html"
}
Response
{
"data": {
"updateOrganization": {
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "Organization Name",
"logo": {},
"logoURL": "https://app.useanvil.com/uploads/nA1jH49FVUWrrE60hMbi.png",
"stylesheetURL": "https://example.com/anvil-styles.css",
"parentOrganization": Organization,
"billingEmail": "user@domain.com",
"supportEmail": "user@domain.com",
"slug": "organization-name",
"users": [User],
"adminUsers": [User],
"organizationUsers": [OrganizationUser],
"organizationUserInvites": [OrganizationUserInvite],
"isPersonal": true,
"isInternal": true,
"isSubscribed": false,
"useTestSignatureProvider": true,
"config": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"welds": [Weld],
"etchTemplates": [EtchTemplate],
"etchPackets": EtchPacketPage,
"weldGroups": [WeldGroup],
"forges": [Forge],
"forgeMaps": [ForgeMap],
"casts": [Cast],
"paymentMethods": [PaymentMethod],
"webhook": Webhook,
"webhookActions": [WebhookAction],
"webhookLogs": WebhookLogPage,
"childOrganizations": [Organization],
"relatedOrganizations": [Organization],
"subscribedPlanFeatures": {},
"subscriptionActivity": {},
"currentInvoice": Invoice,
"totalUsedUnits": 123,
"weldCompleteWebhookStats": {},
"weldCompleteStats": {},
"etchCompleteStats": {},
"remainingSubmissions": {},
"remainingEtchCompletions": {},
"signatureProviderType": "abc123",
"availableSignatureProviderTypes": ["xyz789"]
}
}
}
updateOrganizationUser
Organization
Name | Description |
---|---|
role -
String!
|
|
externalId -
String
|
|
organizationEid -
String!
|
|
userEid -
String!
|
Example
Query
mutation updateOrganizationUser($role: String!, $externalId: String, $organizationEid: String!, $userEid: String!) {
updateOrganizationUser(role: $role, externalId: $externalId, organizationEid: $organizationEid, userEid: $userEid) {
id
eid
name
logo
logoURL
stylesheetURL
parentOrganization {
...OrganizationFragment
}
billingEmail
supportEmail
slug
users {
...UserFragment
}
adminUsers {
...UserFragment
}
organizationUsers {
...OrganizationUserFragment
}
organizationUserInvites {
...OrganizationUserInviteFragment
}
isPersonal
isInternal
isSubscribed
useTestSignatureProvider
config
createdAt
updatedAt
welds {
...WeldFragment
}
etchTemplates {
...EtchTemplateFragment
}
etchPackets {
...EtchPacketPageFragment
}
weldGroups {
...WeldGroupFragment
}
forges {
...ForgeFragment
}
forgeMaps {
...ForgeMapFragment
}
casts {
...CastFragment
}
paymentMethods {
...PaymentMethodFragment
}
webhook {
...WebhookFragment
}
webhookActions {
...WebhookActionFragment
}
webhookLogs {
...WebhookLogPageFragment
}
childOrganizations {
...OrganizationFragment
}
relatedOrganizations {
...OrganizationFragment
}
subscribedPlanFeatures
subscriptionActivity
currentInvoice {
...InvoiceFragment
}
totalUsedUnits
weldCompleteWebhookStats
weldCompleteStats
etchCompleteStats
remainingSubmissions
remainingEtchCompletions
signatureProviderType
availableSignatureProviderTypes
}
}
Variables
{
"role": "abc123",
"externalId": "xyz789",
"organizationEid": "kQp2qd9FVUWrrE60hMbi",
"userEid": "kQp2qd9FVUWrrE60hMbi"
}
Response
{
"data": {
"updateOrganizationUser": {
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "Organization Name",
"logo": {},
"logoURL": "https://app.useanvil.com/uploads/nA1jH49FVUWrrE60hMbi.png",
"stylesheetURL": "https://example.com/anvil-styles.css",
"parentOrganization": Organization,
"billingEmail": "user@domain.com",
"supportEmail": "user@domain.com",
"slug": "organization-name",
"users": [User],
"adminUsers": [User],
"organizationUsers": [OrganizationUser],
"organizationUserInvites": [OrganizationUserInvite],
"isPersonal": false,
"isInternal": true,
"isSubscribed": false,
"useTestSignatureProvider": true,
"config": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"welds": [Weld],
"etchTemplates": [EtchTemplate],
"etchPackets": EtchPacketPage,
"weldGroups": [WeldGroup],
"forges": [Forge],
"forgeMaps": [ForgeMap],
"casts": [Cast],
"paymentMethods": [PaymentMethod],
"webhook": Webhook,
"webhookActions": [WebhookAction],
"webhookLogs": WebhookLogPage,
"childOrganizations": [Organization],
"relatedOrganizations": [Organization],
"subscribedPlanFeatures": {},
"subscriptionActivity": {},
"currentInvoice": Invoice,
"totalUsedUnits": 987,
"weldCompleteWebhookStats": {},
"weldCompleteStats": {},
"etchCompleteStats": {},
"remainingSubmissions": {},
"remainingEtchCompletions": {},
"signatureProviderType": "xyz789",
"availableSignatureProviderTypes": ["xyz789"]
}
}
}
updateSigner
Update a Signer
's name and email address. A signer's name and email can be updated as long as the signer has not completed signing or been skipped.
Name and email for a signer can be update updated after a previous signer has already signed. Documents will be updated with the new signer information. Only name and email fields that have been attached to a signer will be updated. An invisible signature will be added to each updated document indicating what changed and who changed it.
This mutation can be used on signers in EtchPackets
and in Workflows (attached to WeldData
objects).
Signer
Name | Description |
---|---|
eid -
String!
|
The eid of the Signer to update. |
name -
String
|
The signer's new name. |
email -
String
|
The signer's new email address. |
aliasId -
String
|
The Signer 's new user-specified id, if you'd like to provide one or update an exisitng one. This is specified as id in the
createEtchPacket mutation. |
Example
Query
mutation updateSigner($eid: String!, $name: String, $email: String, $aliasId: String) {
updateSigner(eid: $eid, name: $name, email: $email, aliasId: $aliasId) {
id
eid
aliasId
status
provider
name
email
routingOrder
signActionType
user {
...UserFragment
}
submission {
...SubmissionFragment
}
documentGroup {
...DocumentGroupFragment
}
signerTokens {
...SignerTokenFragment
}
createdAt
updatedAt
completedAt
clientUserId
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "Signer Name",
"email": "user@domain.com",
"aliasId": "signer1"
}
Response
{
"data": {
"updateSigner": {
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"aliasId": "signer1",
"status": "sent",
"provider": "etch",
"name": "Signer Name",
"email": "user@domain.com",
"routingOrder": 987,
"signActionType": "email",
"user": User,
"submission": Submission,
"documentGroup": DocumentGroup,
"signerTokens": [SignerToken],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"completedAt": "2022-11-25T17:55:44.910Z",
"clientUserId": "mySigner1"
}
}
}
updateSubmission
Example
Query
mutation updateSubmission($eid: String!, $isExcluded: Boolean) {
updateSubmission(eid: $eid, isExcluded: $isExcluded) {
id
eid
status
resolvedPayload
payload
payloadValue
currentStep
totalSteps
continueURL
weldData {
...WeldDataFragment
}
forge {
...ForgeFragment
}
user {
...UserFragment
}
signer {
...SignerFragment
}
reviewData
completionPercentage
isExcluded
touchedByUser
requestMeta
createdAt
updatedAt
completedAt
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi",
"isExcluded": true
}
Response
{
"data": {
"updateSubmission": {
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"status": "in-progress",
"resolvedPayload": {
"email": {
"id": f162136372633517,
"aliasId": email,
"type": email,
"label": Email,
"value": hello@example.com
}
},
"payload": {
"f162136372633517": {
"type": email,
"value": hello@example.com
}
},
"payloadValue": {
"f162136372633517": hello@example.com
},
"currentStep": 987,
"totalSteps": 987,
"continueURL": "https://app.useanvil.com/form/demo/my-form/nA1jH49FVUWrrE60hMbi",
"weldData": WeldData,
"forge": Forge,
"user": User,
"signer": Signer,
"reviewData": {},
"completionPercentage": 33.33,
"isExcluded": false,
"touchedByUser": false,
"requestMeta": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"completedAt": "2023-05-25T16:55:44.910Z"
}
}
}
updateWebhook
Example
Query
mutation updateWebhook($eid: String!, $url: String) {
updateWebhook(eid: $eid, url: $url) {
id
eid
name
logo
logoURL
stylesheetURL
parentOrganization {
...OrganizationFragment
}
billingEmail
supportEmail
slug
users {
...UserFragment
}
adminUsers {
...UserFragment
}
organizationUsers {
...OrganizationUserFragment
}
organizationUserInvites {
...OrganizationUserInviteFragment
}
isPersonal
isInternal
isSubscribed
useTestSignatureProvider
config
createdAt
updatedAt
welds {
...WeldFragment
}
etchTemplates {
...EtchTemplateFragment
}
etchPackets {
...EtchPacketPageFragment
}
weldGroups {
...WeldGroupFragment
}
forges {
...ForgeFragment
}
forgeMaps {
...ForgeMapFragment
}
casts {
...CastFragment
}
paymentMethods {
...PaymentMethodFragment
}
webhook {
...WebhookFragment
}
webhookActions {
...WebhookActionFragment
}
webhookLogs {
...WebhookLogPageFragment
}
childOrganizations {
...OrganizationFragment
}
relatedOrganizations {
...OrganizationFragment
}
subscribedPlanFeatures
subscriptionActivity
currentInvoice {
...InvoiceFragment
}
totalUsedUnits
weldCompleteWebhookStats
weldCompleteStats
etchCompleteStats
remainingSubmissions
remainingEtchCompletions
signatureProviderType
availableSignatureProviderTypes
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi",
"url": "https://domain.com/page.html"
}
Response
{
"data": {
"updateWebhook": {
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "Organization Name",
"logo": {},
"logoURL": "https://app.useanvil.com/uploads/nA1jH49FVUWrrE60hMbi.png",
"stylesheetURL": "https://example.com/anvil-styles.css",
"parentOrganization": Organization,
"billingEmail": "user@domain.com",
"supportEmail": "user@domain.com",
"slug": "organization-name",
"users": [User],
"adminUsers": [User],
"organizationUsers": [OrganizationUser],
"organizationUserInvites": [OrganizationUserInvite],
"isPersonal": true,
"isInternal": true,
"isSubscribed": true,
"useTestSignatureProvider": true,
"config": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"welds": [Weld],
"etchTemplates": [EtchTemplate],
"etchPackets": EtchPacketPage,
"weldGroups": [WeldGroup],
"forges": [Forge],
"forgeMaps": [ForgeMap],
"casts": [Cast],
"paymentMethods": [PaymentMethod],
"webhook": Webhook,
"webhookActions": [WebhookAction],
"webhookLogs": WebhookLogPage,
"childOrganizations": [Organization],
"relatedOrganizations": [Organization],
"subscribedPlanFeatures": {},
"subscriptionActivity": {},
"currentInvoice": Invoice,
"totalUsedUnits": 123,
"weldCompleteWebhookStats": {},
"weldCompleteStats": {},
"etchCompleteStats": {},
"remainingSubmissions": {},
"remainingEtchCompletions": {},
"signatureProviderType": "xyz789",
"availableSignatureProviderTypes": ["abc123"]
}
}
}
updateWeld
Weld
with new properties. This will create a new WeldVersion
and will require you to publish the Weld
via the
publishWeld
mutation before it will go live. Weld
Name | Description |
---|---|
eid -
String!
|
|
name -
String
|
|
slug -
String
|
|
organizationEid -
String
|
|
visibility -
String
|
|
config -
JSON
|
|
configFile -
Upload
|
|
isArchived -
Boolean
|
|
expiresAt -
String
|
|
draftStep -
String
|
|
entryForgeId -
Int
|
|
entryButtonText -
String
|
|
entryButtonCopyLink -
Boolean
|
|
signatureEmailSubject -
JSON
|
|
signatureEmailBody -
JSON
|
|
dataDisplayTitle -
JSON
|
|
signatureMode -
String
|
|
signatureProvider -
String
|
|
lockedTitleNew -
String
|
|
lockedDescriptionNew -
String
|
|
lockedTitleExisting -
String
|
|
lockedDescriptionExisting -
String
|
|
expireAfterDaysComplete -
Int
|
|
expireAfterDaysStart -
Int
|
|
planEid -
String
|
|
versionNumber -
Int
|
Used to ensure that the Weld is still at the version that you believed it is. Helps to prevent performing an update without being aware that an update has already occurred in the meantime. |
weldCompleteEmailRecipients -
JSON
|
|
weldCompleteEmailEnableForTest -
Boolean
|
|
mergePDFs -
Boolean
|
Example
Query
mutation updateWeld($eid: String!, $name: String, $slug: String, $organizationEid: String, $visibility: String, $config: JSON, $configFile: Upload, $isArchived: Boolean, $expiresAt: String, $draftStep: String, $entryForgeId: Int, $entryButtonText: String, $entryButtonCopyLink: Boolean, $signatureEmailSubject: JSON, $signatureEmailBody: JSON, $dataDisplayTitle: JSON, $signatureMode: String, $signatureProvider: String, $lockedTitleNew: String, $lockedDescriptionNew: String, $lockedTitleExisting: String, $lockedDescriptionExisting: String, $expireAfterDaysComplete: Int, $expireAfterDaysStart: Int, $planEid: String, $versionNumber: Int, $weldCompleteEmailRecipients: JSON, $weldCompleteEmailEnableForTest: Boolean, $mergePDFs: Boolean) {
updateWeld(eid: $eid, name: $name, slug: $slug, organizationEid: $organizationEid, visibility: $visibility, config: $config, configFile: $configFile, isArchived: $isArchived, expiresAt: $expiresAt, draftStep: $draftStep, entryForgeId: $entryForgeId, entryButtonText: $entryButtonText, entryButtonCopyLink: $entryButtonCopyLink, signatureEmailSubject: $signatureEmailSubject, signatureEmailBody: $signatureEmailBody, dataDisplayTitle: $dataDisplayTitle, signatureMode: $signatureMode, signatureProvider: $signatureProvider, lockedTitleNew: $lockedTitleNew, lockedDescriptionNew: $lockedDescriptionNew, lockedTitleExisting: $lockedTitleExisting, lockedDescriptionExisting: $lockedDescriptionExisting, expireAfterDaysComplete: $expireAfterDaysComplete, expireAfterDaysStart: $expireAfterDaysStart, planEid: $planEid, versionNumber: $versionNumber, weldCompleteEmailRecipients: $weldCompleteEmailRecipients, weldCompleteEmailEnableForTest: $weldCompleteEmailEnableForTest, mergePDFs: $mergePDFs) {
versionNumber
versionId
latestDraftVersionNumber
publishedNumber
publishedAt
hasUnpublishedChanges
hasBeenPublished
id
eid
slug
name
visibility
config
organization {
...OrganizationFragment
}
hasSigners
forges {
...ForgeFragment
}
casts {
...CastFragment
}
weldGroups {
...WeldGroupFragment
}
weldDatas {
...WeldDataPageFragment
}
signatureProviderType
availableSignatureProviderTypes
remainingSubmissions
createdAt
updatedAt
archivedAt
expiresAt
stylesheetURL
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "Weld Name",
"slug": "weld-name",
"organizationEid": "kQp2qd9FVUWrrE60hMbi",
"visibility": "xyz789",
"config": {},
"configFile": Upload,
"isArchived": true,
"expiresAt": "abc123",
"draftStep": "xyz789",
"entryForgeId": 987,
"entryButtonText": "abc123",
"entryButtonCopyLink": true,
"signatureEmailSubject": {},
"signatureEmailBody": {},
"dataDisplayTitle": {},
"signatureMode": "abc123",
"signatureProvider": "abc123",
"lockedTitleNew": "xyz789",
"lockedDescriptionNew": "abc123",
"lockedTitleExisting": "xyz789",
"lockedDescriptionExisting": "xyz789",
"expireAfterDaysComplete": 123,
"expireAfterDaysStart": 123,
"planEid": "kQp2qd9FVUWrrE60hMbi",
"versionNumber": 123,
"weldCompleteEmailRecipients": {},
"weldCompleteEmailEnableForTest": true,
"mergePDFs": true
}
Response
{
"data": {
"updateWeld": {
"versionNumber": 123,
"versionId": 987,
"latestDraftVersionNumber": 123,
"publishedNumber": 987,
"publishedAt": "2022-11-25T17:55:44.910Z",
"hasUnpublishedChanges": false,
"hasBeenPublished": false,
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"slug": "weld-name",
"name": "Weld Name",
"visibility": "live",
"config": {},
"organization": Organization,
"hasSigners": true,
"forges": [Forge],
"casts": [Cast],
"weldGroups": [WeldGroup],
"weldDatas": WeldDataPage,
"signatureProviderType": "etch",
"availableSignatureProviderTypes": [
[etch, docusign]
],
"remainingSubmissions": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2022-11-25T17:55:44.910Z",
"expiresAt": "2023-05-25T16:55:44.910Z",
"stylesheetURL": "https://domain.com/page.html"
}
}
}
updateWeldData
WeldData
Name | Description |
---|---|
eid -
String!
|
|
isTest -
Boolean
|
|
isArchived -
Boolean
|
|
isExpired -
Boolean
|
|
pin -
String
|
|
webhookURL -
String
|
Example
Query
mutation updateWeldData($eid: String!, $isTest: Boolean, $isArchived: Boolean, $isExpired: Boolean, $pin: String, $webhookURL: String) {
updateWeldData(eid: $eid, isTest: $isTest, isArchived: $isArchived, isExpired: $isExpired, pin: $pin, webhookURL: $webhookURL) {
id
eid
displayTitle
status
isTest
isExpired
isComplete
isCompleteAndSigned
continueURL
webhookURL
completionPercentage
numberRemainingSigners
payloadCanBeUpdated
hasSigners
nextSigner {
...SignerFragment
}
hasPin
pin
agents
files
excludedFiles
weld {
...WeldFragment
}
weldVersionId
submissions {
...SubmissionFragment
}
documentGroup {
...DocumentGroupFragment
}
webhookLogs {
...WebhookLogFragment
}
etchLogEvents {
...EtchLogFragment
}
weldDataLogEvents {
...WeldDataLogFragment
}
userUploads {
...UserUploadFragment
}
forgesRequiringCompletion {
...ForgeFragment
}
weldDataGroup {
...WeldDataGroupFragment
}
createdAt
updatedAt
dataUpdatedAt
expiresAt
archivedAt
}
}
Variables
{
"eid": "kQp2qd9FVUWrrE60hMbi",
"isTest": false,
"isArchived": true,
"isExpired": false,
"pin": "9876",
"webhookURL": "https://domain.com/page.html"
}
Response
{
"data": {
"updateWeldData": {
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"displayTitle": "Sally's workflow submission",
"status": "in-progress",
"isTest": false,
"isExpired": true,
"isComplete": false,
"isCompleteAndSigned": false,
"continueURL": "https://app.useanvil.com/form/demo/my-form/nA1jH49FVUWrrE60hMbi",
"webhookURL": "https://yoursite.com/webhooks/anvil",
"completionPercentage": 0.2,
"numberRemainingSigners": 123,
"payloadCanBeUpdated": true,
"hasSigners": false,
"nextSigner": Signer,
"hasPin": true,
"pin": "9876",
"agents": {},
"files": [
[
{
"downloadURL": https://app.useanvil.com/api/document-group/nA1jH49FVUWrrE60hMbi/Hello-World.pdf,
"filename": Hello-World.pdf,
"name": Hello World,
"type": pdf
}
]
],
"excludedFiles": [
[
{
"downloadURL": https://app.useanvil.com/api/document-group/nA1jH49FVUWrrE60hMbi/Dont-Sign-Me.pdf,
"filename": Dont-Sign-Me.pdf,
"name": Do not sign this doc,
"type": pdf
}
]
],
"weld": Weld,
"weldVersionId": 123,
"submissions": [Submission],
"documentGroup": DocumentGroup,
"webhookLogs": [WebhookLog],
"etchLogEvents": [EtchLog],
"weldDataLogEvents": [WeldDataLog],
"userUploads": [UserUpload],
"forgesRequiringCompletion": [Forge],
"weldDataGroup": WeldDataGroup,
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"dataUpdatedAt": "2023-05-25T16:55:44.910Z",
"expiresAt": "2023-05-25T16:55:44.910Z",
"archivedAt": "2023-05-25T16:55:44.910Z"
}
}
}
voidDocumentGroup
Example
Query
mutation voidDocumentGroup($weldDataEid: String, $eid: String, $voidedReason: String!) {
voidDocumentGroup(weldDataEid: $weldDataEid, eid: $eid, voidedReason: $voidedReason) {
id
eid
status
provider
currentRoutingStep
files
weldData {
...WeldDataFragment
}
etchPacket {
...EtchPacketFragment
}
signers {
...SignerFragment
}
providerConfig
finishPageConfig
signaturePageConfig
downloadZipURL
createdAt
updatedAt
completedAt
stylesheetURL
}
}
Variables
{
"weldDataEid": "kQp2qd9FVUWrrE60hMbi",
"eid": "kQp2qd9FVUWrrE60hMbi",
"voidedReason": "xyz789"
}
Response
{
"data": {
"voidDocumentGroup": {
"id": 987,
"eid": "nA1jH49FVUWrrE60hMbi",
"status": "completed",
"provider": "etch",
"currentRoutingStep": 987,
"files": [
[
{
"downloadURL": https://app.useanvil.com/api/document-group/nA1jH49FVUWrrE60hMbi/Hello-World.pdf,
"filename": Hello-World.pdf,
"name": Hello World,
"type": pdf
}
]
],
"weldData": WeldData,
"etchPacket": EtchPacket,
"signers": [Signer],
"providerConfig": {},
"finishPageConfig": {},
"signaturePageConfig": {},
"downloadZipURL": "http://app.useanvil.com/download/nA1jH49FVUWrrE60hMbi.zip",
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"completedAt": "2023-05-25T16:55:44.910Z",
"stylesheetURL": "https://domain.com/page.html"
}
}
}
Types
Cast
A Cast
holds configuration for a single PDF template. It defines the location of boxes on PDF pages, and the type of each box (e.g. date, phone number, etc.).
Cast
objects are used by several API features:
- The PDF filling endpoint
- Etch signature packets: see the Etch e-sign guide for more info
- Workflows: see the Workflow API guide for more info
Field Name | Description |
---|---|
versionNumber -
Int
|
Current version number of this Cast |
versionId -
Int
|
|
latestDraftVersionNumber -
Int
|
|
publishedNumber -
Int
|
Current published version number of this Cast |
publishedAt -
Date
|
|
hasUnpublishedChanges -
Boolean
|
|
hasBeenPublished -
Boolean
|
|
id -
Int!
|
|
eid -
String
|
|
type -
String
|
The file's mimetype. e.g. application/pdf |
name -
String
|
The file name |
title -
String
|
The title shown in the UI |
isTemplate -
Boolean
|
true when this Cast was created as a template. Template casts show up in the PDF Templates page on your dashboard. |
exampleData -
JSON
|
Example data payload to fill this PDF. Shown on the "API Info" tab for this template |
allowedAliasIds -
[String]
|
Allowed Cast field alias IDs |
fieldInfo -
JSON
|
A digestable array of objects with all the details about all fields in this PDF, sorted by page, top to bottom, left to right. Shown on the "API Info" tab for this template |
config -
JSON
|
|
Arguments |
|
organization -
Organization
|
|
parentCast -
Cast
|
If this Cast was originally copied from another Cast , this will be the original Cast . |
createdAt -
Date
|
|
updatedAt -
Date
|
|
archivedAt -
Date
|
Example
{
"versionNumber": 987,
"versionId": 987,
"latestDraftVersionNumber": 987,
"publishedNumber": 123,
"publishedAt": "2022-11-25T17:55:44.910Z",
"hasUnpublishedChanges": false,
"hasBeenPublished": true,
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"type": "application/pdf",
"name": "Cast Name",
"title": "Cast Title",
"isTemplate": true,
"exampleData": {},
"allowedAliasIds": ["abc123"],
"fieldInfo": {},
"config": {},
"organization": Organization,
"parentCast": Cast,
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2023-05-25T16:55:44.910Z"
}
CastPage
Field Name | Description |
---|---|
rowCount -
Int
|
Total number of rows found for the query before pagination |
pageCount -
Int
|
Total number of pages of results |
page -
Int
|
The requested page number |
pageSize -
Int
|
The requested number of rows per page |
items -
[Cast]
|
The actual records for the requested page |
Example
{
"rowCount": 20,
"pageCount": 2,
"page": 1,
"pageSize": 10,
"items": [Cast]
}
CastVersion
Field Name | Description |
---|---|
updatedColumns -
[String]
|
|
name -
String
|
|
type -
String
|
|
title -
String
|
|
config -
JSON
|
|
eid -
String!
|
|
publishedNumber -
Int
|
|
publishedTitle -
String
|
|
publishedDescription -
String
|
|
publishedAt -
Date
|
|
publishUpdatedAt -
Date
|
|
publishingUser -
User
|
Example
{
"updatedColumns": [config],
"name": "CastVersion Name",
"type": "application/pdf",
"title": "CastVersion Title",
"config": {},
"eid": "kQp2qd9FVUWrrE60hMbi",
"publishedNumber": 987,
"publishedTitle": "abc123",
"publishedDescription": "xyz789",
"publishedAt": "2022-11-25T17:55:44.910Z",
"publishUpdatedAt": "2023-05-25T16:55:44.910Z",
"publishingUser": User
}
CastVersionPage
Field Name | Description |
---|---|
rowCount -
Int
|
Total number of rows found for the query before pagination |
pageCount -
Int
|
Total number of pages of results |
page -
Int
|
The requested page number |
pageSize -
Int
|
The requested number of rows per page |
items -
[CastVersion]
|
The actual records for the requested page |
Example
{
"rowCount": 20,
"pageCount": 2,
"page": 1,
"pageSize": 10,
"items": [CastVersion]
}
DocumentGroup
A collection of all the final files generated with data from a WeldData
or EtchPacket
. When your users download a zip file of PDFs, that final collection of filled, generated, uploaded, and signed files is specified by the DocumentGroup
. A DocumentGroup
will be connected to either a WeldData
or a EtchPacket
, never both. A DocumentGroup
will only exist on these objects if it has been sent out for signature.
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
status -
String
|
Possible values: sent , delivered , partial , declined , voided , completed |
provider -
String
|
Possible values: etch or docusign |
currentRoutingStep -
Int
|
|
files -
[JSON]
|
A file listing of all files in the DocumentGroup |
weldData -
WeldData
|
The parent WeldData . This will only exist for DocumentGroups created by a Workflow. |
etchPacket -
EtchPacket
|
The parent EtchPacket . This will only exist for DocumentGroups created as part of an Etch signature packet. |
signers -
[Signer]
|
|
providerConfig -
JSON
|
|
finishPageConfig -
JSON
|
|
signaturePageConfig -
JSON
|
|
downloadZipURL -
String
|
The URL to download all documents as a zip file |
createdAt -
Date
|
|
updatedAt -
Date
|
|
completedAt -
Date
|
Timestamp of when all Signers have finished signing or when all forms have been filled when no signers. |
stylesheetURL -
String
|
Example
{
"id": 123,
"eid": "nA1jH49FVUWrrE60hMbi",
"status": "completed",
"provider": "etch",
"currentRoutingStep": 123,
"files": [
{
"downloadURL": https://app.useanvil.com/api/document-group/nA1jH49FVUWrrE60hMbi/Hello-World.pdf,
"filename": Hello-World.pdf,
"name": Hello World,
"type": pdf
}
],
"weldData": WeldData,
"etchPacket": EtchPacket,
"signers": [Signer],
"providerConfig": {},
"finishPageConfig": {},
"signaturePageConfig": {},
"downloadZipURL": "http://app.useanvil.com/download/nA1jH49FVUWrrE60hMbi.zip",
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"completedAt": "2023-05-25T16:55:44.910Z",
"stylesheetURL": "https://domain.com/page.html"
}
DocumentGroupPage
Field Name | Description |
---|---|
rowCount -
Int
|
Total number of rows found for the query before pagination |
pageCount -
Int
|
Total number of pages of results |
page -
Int
|
The requested page number |
pageSize -
Int
|
The requested number of rows per page |
items -
[DocumentGroup]
|
The actual records for the requested page |
Example
{
"rowCount": 20,
"pageCount": 2,
"page": 1,
"pageSize": 10,
"items": [DocumentGroup]
}
EtchFile
An object used by createEtchPacket
to specify a file. See the
Etch e-sign guide for more info.
Input Field | Description |
---|---|
id -
String!
|
An id string set when creating the |
title -
String
|
|
castEid -
String
|
|
file -
Upload
|
|
base64File -
Upload
|
|
fields -
[JSON!]
|
|
pageSizes -
[JSON!]
|
|
fontSize -
Int
|
|
textColor -
String
|
|
filename -
String
|
Filename set when creating the |
includeTimestamp -
Boolean
|
For generated PDFs, set to false to disable the "Generated at XXX" timestamp at the bottom of the document. |
logo -
JSON
|
For generated PDFs, you can specify a logo to be rendered at the top of the document. |
markup -
JSON
|
Holds HTML/CSS to generate PDF |
page -
JSON
|
Holds page customizations to generate PDF |
Example
{
"id": "myDocument",
"title": "My Document",
"castEid": "nA1jH49FVUWrrE60hMbi",
"file": Upload,
"base64File": Upload,
"fields": [{}],
"pageSizes": [{}],
"fontSize": 123,
"textColor": "abc123",
"filename": "my-document.pdf",
"includeTimestamp": true,
"logo": {
"src": https://example.com/mtnlogo.png,
"maxWidth": 200,
"maxHeight": 200
},
"markup": {
"html": <h1>Hello world!</h1>,
"css": h1 { color: red; }
},
"page": {
"width": 1000px,
"height": 800px,
"marginTop": 50px,
"marginBottom": 50px,
"marginLeft": 100px,
"marginRight": 100px,
"pageCount": bottomCenter
}
}
EtchLog
Represents a single action taken by a user during the signing process. For example, an EtchLog
object will be created when a user signs, downloads a file, voids the packet, etc.
All actions with a short description:
accessed: Viewed
archived: Archived
completed: Signed & completed
created: Created
download-csv-all: Downloaded CSV
download-csv-individual-file: Downloaded CSV file
download-file-individual: Downloaded file
download-files-zip: Downloaded zip
emailed-completed: Emailed
emailed-by-user: Emailed sign link
emailed: Emailed
locked: Locked
pin-code-changed: Changed PIN
pin-code-failed: Access failed
pin-code-set: Set PIN
pin-code-unset: Unset PIN
pin-code-verified: Access verified
reassigned-signer: Updated signer details
saved-form: Saved form
signed: Signed
unarchived: Unarchived
unlocked: Unlocked
upload-file-accessed: Accessed file
upload-file: Uploaded
voided: Voided
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
action -
String
|
The action taken. |
formattedLocation -
String
|
Location of the user taking the action. |
fileId -
String
|
String id, often a filename, of any file related to the action taken. |
metadata -
JSON
|
Any action-specific information. |
user -
User
|
The Anvil User who took this action, if applicable. |
signer -
Signer
|
The Signer who took the action, if applicable. |
createdAt -
Date
|
Example
{
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"action": "completed",
"formattedLocation": "San Francisco, CA",
"fileId": "some-form.pdf",
"metadata": {},
"user": User,
"signer": Signer,
"createdAt": "2023-05-25T16:55:45.190Z"
}
EtchPacket
An EtchPacket
represents a signature packet. EtchPackets
packets allow you to gather signatures from multiple signers on a collection of PDFs filled with your data (see payload
), and uploads such as images. See the
e-signature guide for usage.
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
name -
String
|
The name shown in the UI. |
status -
String
|
Possible values: draft , sent , delivered , partial , declined , voided , completed . |
isTest -
Boolean
|
true when it is a test packet. You will not be charged for test packets. Filled and signed files will be watermarked. |
containsFillData -
Boolean
|
true when payload contains data that will fill PDFs |
payload -
JSON
|
Data specified to fill PDFs in the packet. |
numberRemainingSigners -
Int
|
|
detailsURL -
String
|
URL to this EtchPacket in the dashboard. Any users in your organization can view this URL. |
webhookURL -
String
|
The specific webhook notification URL for this EtchPacket . We will POST to this URL when users take various actions. |
organization -
Organization
|
|
documentGroup -
DocumentGroup
|
A DocumentGroup contains the documents after they have been filled and sent out for signature. The DocumentGroup will only exist here when status != 'draft' , i.e when documents have been sent out for signature. See the DocumentGroup 's status for lifecycle information. |
etchTemplate -
EtchTemplate
|
The EtchTemplate holds configuration for signers and files in the packet. Each EtchPacket will have an EtchTemplate . |
userUploads -
[UserUpload]
|
Uploaded files like images included in the packet. |
etchLogEvents -
[EtchLog]
|
An array of actions during the signing process. Details actions when files are signed, downloaded, etc. |
webhookLogs -
[WebhookLog]
|
An array of webhook notification calls to your server related to this EtchPacket . Get the status codes, response times, and retry information from each WebhookLog . |
createdAt -
Date
|
|
updatedAt -
Date
|
|
archivedAt -
Date
|
|
completedAt -
Date
|
Example
{
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "EtchPacket Name",
"status": "completed",
"isTest": true,
"containsFillData": false,
"payload": {
"myPDFId": {
"textColor": #000000,
"data": {"email": hello@example.com}
}
},
"numberRemainingSigners": 987,
"detailsURL": "https://app.useanvil.com/org/my-org/etch/nA1jH49FVUWrrE60hMbi",
"webhookURL": "https://yoursite.com/webhooks/anvil",
"organization": Organization,
"documentGroup": DocumentGroup,
"etchTemplate": EtchTemplate,
"userUploads": [UserUpload],
"etchLogEvents": [EtchLog],
"webhookLogs": [WebhookLog],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2022-11-25T17:55:44.910Z",
"completedAt": "2023-05-25T16:55:44.910Z"
}
EtchPacketPage
Field Name | Description |
---|---|
rowCount -
Int
|
Total number of rows found for the query before pagination |
pageCount -
Int
|
Total number of pages of results |
page -
Int
|
The requested page number |
pageSize -
Int
|
The requested number of rows per page |
items -
[EtchPacket]
|
The actual records for the requested page |
Example
{
"rowCount": 20,
"pageCount": 2,
"page": 1,
"pageSize": 10,
"items": [EtchPacket]
}
EtchTemplate
An EtchTemplate
holds configuration for a signature packet. You should not need to interact directly with an EtchTemplate
very much. See the
e-signature guide for more info on sending documents out for signatures.
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
name -
String
|
|
isFree -
Boolean
|
|
isRepeatable -
Boolean
|
|
config -
JSON
|
|
organization -
Organization
|
|
casts -
[Cast]
|
All Cast objects (fillable pdfs) included in this template. |
etchPackets -
[EtchPacket]
|
An array of EtchPackets created from this template. At this time, this will be a 1-to-1 relationship. |
userUploads -
[UserUpload]
|
|
createdAt -
Date
|
|
updatedAt -
Date
|
Example
{
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "EtchTemplate Name",
"isFree": true,
"isRepeatable": true,
"config": {},
"organization": Organization,
"casts": [Cast],
"etchPackets": [EtchPacket],
"userUploads": [UserUpload],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z"
}
Float
The Float
scalar type represents signed double-precision fractional values as specified by
IEEE 754.
Example
123.45
Forge
A Forge
holds configuration for a single webform. A Forge
defines a webform's fields, the page fields are on, their types, webform logic, etc. Each Forge will be a member of only one Weld
(Workflow).
See our Workflow API guide for more info.
Field Name | Description |
---|---|
versionNumber -
Int
|
Current version number of this Forge |
versionId -
Int
|
|
latestDraftVersionNumber -
Int
|
|
publishedNumber -
Int
|
Current published version number of this Forge |
publishedAt -
Date
|
|
hasUnpublishedChanges -
Boolean
|
|
hasBeenPublished -
Boolean
|
|
id -
Int!
|
|
eid -
String
|
|
name -
String
|
|
slug -
String
|
|
isRequired -
Boolean
|
Is this forge required to complete the Workflow? |
config -
JSON
|
|
Arguments
|
|
fieldInfo -
JSON
|
A list of objects describing all the fields in this webform. The response is a more digestable way to get all the fields than digging in config . |
weld -
Weld
|
|
organization -
Organization
|
|
userUploads -
[UserUpload]
|
|
createdAt -
Date
|
|
updatedAt -
Date
|
|
archivedAt -
Date
|
|
examplePayload -
JSON
|
Example payload to fill this webform. Shown on the "API information" page for this webform's Workflow. |
stylesheetURL -
String
|
Example
{
"versionNumber": 987,
"versionId": 123,
"latestDraftVersionNumber": 987,
"publishedNumber": 123,
"publishedAt": "2023-05-25T16:55:44.910Z",
"hasUnpublishedChanges": true,
"hasBeenPublished": false,
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "Forge Name",
"slug": "forge-name",
"isRequired": false,
"config": {},
"fieldInfo": {},
"weld": Weld,
"organization": Organization,
"userUploads": [UserUpload],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2022-11-25T17:55:44.910Z",
"examplePayload": {},
"stylesheetURL": "https://domain.com/page.html"
}
ForgeMap
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
forgeA -
Forge
|
|
forgeB -
Forge
|
|
config -
JSON
|
|
createdAt -
Date
|
|
updatedAt -
Date
|
Example
{
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"forgeA": Forge,
"forgeB": Forge,
"config": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z"
}
ForgePage
Field Name | Description |
---|---|
rowCount -
Int
|
Total number of rows found for the query before pagination |
pageCount -
Int
|
Total number of pages of results |
page -
Int
|
The requested page number |
pageSize -
Int
|
The requested number of rows per page |
items -
[Forge]
|
The actual records for the requested page |
Example
{
"rowCount": 20,
"pageCount": 2,
"page": 1,
"pageSize": 10,
"items": [Forge]
}
ForgeVersion
Field Name | Description |
---|---|
updatedColumns -
[String]
|
|
name -
String
|
|
slug -
String
|
|
config -
JSON
|
|
eid -
String!
|
|
publishedNumber -
Int
|
|
publishedTitle -
String
|
|
publishedDescription -
String
|
|
publishedAt -
Date
|
|
publishUpdatedAt -
Date
|
|
publishingUser -
User
|
Example
{
"updatedColumns": ["abc123"],
"name": "ForgeVersion Name",
"slug": "forgeversion-name",
"config": {},
"eid": "kQp2qd9FVUWrrE60hMbi",
"publishedNumber": 987,
"publishedTitle": "xyz789",
"publishedDescription": "abc123",
"publishedAt": "2022-11-25T17:55:44.910Z",
"publishUpdatedAt": "2022-11-25T17:55:44.910Z",
"publishingUser": User
}
ForgeVersionPage
Field Name | Description |
---|---|
rowCount -
Int
|
Total number of rows found for the query before pagination |
pageCount -
Int
|
Total number of pages of results |
page -
Int
|
The requested page number |
pageSize -
Int
|
The requested number of rows per page |
items -
[ForgeVersion]
|
The actual records for the requested page |
Example
{
"rowCount": 20,
"pageCount": 2,
"page": 1,
"pageSize": 10,
"items": [ForgeVersion]
}
GenerateEmbedURLResponse
Field Name | Description |
---|---|
requestTokenEid -
String!
|
The EID for the token associated with the request you just made. Can be used later to expire the session that was created using it. |
url -
String!
|
The URL to send your embedded User to. They will be logged in and then redirected to the appropriate page for their embedded access. You can direct them back to this URL if they need to access their embedded experience again as long as their session has not expired. |
Example
{
"requestTokenEid": "INM8tVRLy6u5NJafWMpP",
"url": "https://app.useanvil.com/auth/tokenized/login?token=INM8tVRLy6u5NJafWMpP"
}
Int
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
987
Organization
An entity that encapsulates a set of Workflows, templates, users, etc.
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
name -
String
|
|
logo -
JSON
|
|
logoURL -
String
|
URL to your logo. You can update this on your organization settings page. |
stylesheetURL -
String
|
Your organization's white-label CSS stylesheet. You can update this on your organization settings page. |
parentOrganization -
Organization
|
|
billingEmail -
String
|
The email used for all billing related correspondence. |
supportEmail -
String
|
Your organization's support email address. Used as the reply-to address for emails sent to your users by Anvil. |
slug -
String
|
|
users -
[User]
|
|
adminUsers -
[User]
|
|
organizationUsers -
[OrganizationUser]
|
|
organizationUserInvites -
[OrganizationUserInvite]
|
|
isPersonal -
Boolean
|
|
isInternal -
Boolean
|
|
isSubscribed -
Boolean
|
|
useTestSignatureProvider -
Boolean
|
|
config -
JSON
|
|
createdAt -
Date
|
|
updatedAt -
Date
|
|
welds -
[Weld]
|
|
etchTemplates -
[EtchTemplate]
|
|
etchPackets -
EtchPacketPage
|
|
weldGroups -
[WeldGroup]
|
|
forges -
[Forge]
|
|
Arguments
|
|
forgeMaps -
[ForgeMap]
|
|
casts -
[Cast]
|
|
paymentMethods -
[PaymentMethod]
|
|
webhook -
Webhook
|
|
webhookActions -
[WebhookAction]
|
|
webhookLogs -
WebhookLogPage
|
|
childOrganizations -
[Organization]
|
|
relatedOrganizations -
[Organization]
|
|
Arguments
|
|
subscribedPlanFeatures -
JSON
|
|
subscriptionActivity -
JSON
|
|
currentInvoice -
Invoice
|
|
totalUsedUnits -
Int
|
|
weldCompleteWebhookStats -
JSON
|
|
weldCompleteStats -
JSON
|
|
etchCompleteStats -
JSON
|
|
remainingSubmissions -
JSON
|
|
remainingEtchCompletions -
JSON
|
|
signatureProviderType -
String
|
|
availableSignatureProviderTypes -
[String]
|
Example
{
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "Organization Name",
"logo": {},
"logoURL": "https://app.useanvil.com/uploads/nA1jH49FVUWrrE60hMbi.png",
"stylesheetURL": "https://example.com/anvil-styles.css",
"parentOrganization": Organization,
"billingEmail": "user@domain.com",
"supportEmail": "user@domain.com",
"slug": "organization-name",
"users": [User],
"adminUsers": [User],
"organizationUsers": [OrganizationUser],
"organizationUserInvites": [OrganizationUserInvite],
"isPersonal": false,
"isInternal": true,
"isSubscribed": false,
"useTestSignatureProvider": true,
"config": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"welds": [Weld],
"etchTemplates": [EtchTemplate],
"etchPackets": EtchPacketPage,
"weldGroups": [WeldGroup],
"forges": [Forge],
"forgeMaps": [ForgeMap],
"casts": [Cast],
"paymentMethods": [PaymentMethod],
"webhook": Webhook,
"webhookActions": [WebhookAction],
"webhookLogs": WebhookLogPage,
"childOrganizations": [Organization],
"relatedOrganizations": [Organization],
"subscribedPlanFeatures": {},
"subscriptionActivity": {},
"currentInvoice": Invoice,
"totalUsedUnits": 123,
"weldCompleteWebhookStats": {},
"weldCompleteStats": {},
"etchCompleteStats": {},
"remainingSubmissions": {},
"remainingEtchCompletions": {},
"signatureProviderType": "xyz789",
"availableSignatureProviderTypes": ["xyz789"]
}
OrganizationPage
Field Name | Description |
---|---|
rowCount -
Int
|
Total number of rows found for the query before pagination |
pageCount -
Int
|
Total number of pages of results |
page -
Int
|
The requested page number |
pageSize -
Int
|
The requested number of rows per page |
items -
[Organization]
|
The actual records for the requested page |
Example
{
"rowCount": 20,
"pageCount": 2,
"page": 1,
"pageSize": 10,
"items": [Organization]
}
OrganizationUser
Field Name | Description |
---|---|
id -
Int!
|
|
role -
String
|
Role of this user within your org. Possible values: viewer, editor, billingAdmin, admin, tokenized, api |
externalId -
String
|
A place to store your external system's unique identifier for this User. |
user -
User
|
|
organization -
Organization
|
|
createdAt -
Date
|
|
updatedAt -
Date
|
Example
{
"id": 987,
"role": "admin",
"externalId": "xyz789",
"user": User,
"organization": Organization,
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z"
}
OrganizationUserInvite
An invite sent for a user to join your organization. Once accepted, an OrganizationUser
will be created.
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
role -
String
|
Role of this user within your org. Possible values: viewer, editor, billingAdmin, admin, tokenized, api |
externalId -
String
|
A place to store your external system's unique identifier for this User. |
name -
String
|
|
email -
String
|
|
organization -
Organization
|
|
acceptedAt -
Date
|
|
revokedAt -
Date
|
|
createdAt -
Date
|
|
updatedAt -
Date
|
Example
{
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"role": "admin",
"externalId": "abc123",
"name": "OrganizationUserInvite Name",
"email": "user@domain.com",
"organization": Organization,
"acceptedAt": "2022-11-25T17:55:44.910Z",
"revokedAt": "2022-11-25T17:55:44.910Z",
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z"
}
PaymentMethod
Field Name | Description |
---|---|
id -
String!
|
|
type -
String
|
|
last4 -
String
|
|
providerName -
String
|
|
status -
String
|
|
expMonth -
Int
|
|
expYear -
Int
|
|
isDefault -
Boolean
|
Example
{
"id": "abc123",
"type": "abc123",
"last4": "abc123",
"providerName": "xyz789",
"status": "xyz789",
"expMonth": 123,
"expYear": 123,
"isDefault": false
}
Signer
Represents a single signer. See Signer.status
to indicate where a signer is in the signing process.
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
aliasId -
String
|
The Signer 's user-specified id set on packet creation. |
status -
String
|
Possible values: sent , viewed , delivered , voided , autoresponded , faxpending , created , skipped , declined , idCheckFailed , completed |
provider -
String
|
Possible values: etch or docusign . |
name -
String
|
|
email -
String
|
|
routingOrder -
Int
|
Numeric step in the signing process where this user signs. Signers are routed in sorted order. |
signActionType -
String
|
Indicates the method by which the user signs. Possible values: email , embedded , or in-person . |
user -
User
|
A Anvil User associated with this signer. |
submission -
Submission
|
An associated Submission . This wil exist for signers who sign at the end of a Workflow. |
documentGroup -
DocumentGroup
|
A DocumentGroup references all signers and the documents after they have been filled and sent out for signature. See the DocumentGroup 's status for lifecycle information. |
signerTokens -
[SignerToken]
|
Get all SignerTokens this signer has available. These can tell you when a signer's token will be expiring, which token was used for signing, etc. |
createdAt -
Date
|
|
updatedAt -
Date
|
|
completedAt -
Date
|
Timestamp when the Signer has finished signing. |
clientUserId -
String
|
Your id for the person signing: a way to trace this signer back to a user in your system. |
Example
{
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"aliasId": "signer1",
"status": "sent",
"provider": "etch",
"name": "Signer Name",
"email": "user@domain.com",
"routingOrder": 123,
"signActionType": "email",
"user": User,
"submission": Submission,
"documentGroup": DocumentGroup,
"signerTokens": [SignerToken],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"completedAt": "2022-11-25T17:55:44.910Z",
"clientUserId": "mySigner1"
}
SignerPage
Field Name | Description |
---|---|
rowCount -
Int
|
Total number of rows found for the query before pagination |
pageCount -
Int
|
Total number of pages of results |
page -
Int
|
The requested page number |
pageSize -
Int
|
The requested number of rows per page |
items -
[Signer]
|
The actual records for the requested page |
Example
{
"rowCount": 20,
"pageCount": 2,
"page": 1,
"pageSize": 10,
"items": [Signer]
}
SignerToken
Represents a token used to sign documents. See Signer.signerTokens
to fetch them.
We do not expose the token itself, but you can use this object to get an idea of what tokens the signer has available, whether they are valid, and their expiration dates (validUntil
).
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
type -
String
|
Type of token issued. Tells you how the token was issued. Values: api , sign-now , notify-signer , view |
validUntil -
Date
|
Date of token expiration. |
valid -
Boolean
|
true when this token is valid and can be used to sign. |
invalidatedAt -
Date
|
Date when the token was invalidated if explicitly invalidated. If invalid due to expiration, use validUntil . |
hasSigned -
Boolean
|
true when this token was used to sign the Signer 's documents. |
signedAt -
Date
|
Date when the token was used to sign documents. |
signer -
Signer
|
Example
{
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"type": "api",
"validUntil": "2023-05-25T16:55:44.910Z",
"valid": false,
"invalidatedAt": "2022-11-25T17:55:44.910Z",
"hasSigned": false,
"signedAt": "2023-05-25T16:55:44.910Z",
"signer": Signer
}
String
The String
scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Submission
An instance of a Forge
. A Submission
holds the data for one webform submission on a particular Forge
.
See our Workflow API guide for more info.
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
status -
String
|
Possible values: created , in-progress , waiting-to-sign , user-signed-and-waiting , users-turn-to-sign-ui , users-turn-to-sign-email , someone-else-signed-and-waiting , completed |
resolvedPayload -
JSON
|
The payload resolved with field aliases and field information. If you need to fetch the submission payload, use this. |
payload -
JSON
|
The raw payload |
payloadValue -
JSON
|
The raw payload without types |
currentStep -
Int
|
|
totalSteps -
Int
|
|
continueURL -
String
|
URL to the next step in this webform. |
weldData -
WeldData
|
|
forge -
Forge
|
|
user -
User
|
|
signer -
Signer
|
|
reviewData -
JSON
|
|
completionPercentage -
Float
|
|
isExcluded -
Boolean
|
|
touchedByUser -
Boolean
|
|
requestMeta -
JSON
|
|
createdAt -
Date
|
|
updatedAt -
Date
|
|
completedAt -
Date
|
Example
{
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"status": "in-progress",
"resolvedPayload": {
"email": {
"id": f162136372633517,
"aliasId": email,
"type": email,
"label": Email,
"value": hello@example.com
}
},
"payload": {
"f162136372633517": {
"type": email,
"value": hello@example.com
}
},
"payloadValue": {"f162136372633517": hello@example.com},
"currentStep": 987,
"totalSteps": 987,
"continueURL": "https://app.useanvil.com/form/demo/my-form/nA1jH49FVUWrrE60hMbi",
"weldData": WeldData,
"forge": Forge,
"user": User,
"signer": Signer,
"reviewData": {},
"completionPercentage": 33.33,
"isExcluded": false,
"touchedByUser": true,
"requestMeta": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"completedAt": "2023-05-25T16:55:44.910Z"
}
SubmissionPage
Field Name | Description |
---|---|
rowCount -
Int
|
Total number of rows found for the query before pagination |
pageCount -
Int
|
Total number of pages of results |
page -
Int
|
The requested page number |
pageSize -
Int
|
The requested number of rows per page |
items -
[Submission]
|
The actual records for the requested page |
Example
{
"rowCount": 20,
"pageCount": 2,
"page": 1,
"pageSize": 10,
"items": [Submission]
}
Upload
The Upload
scalar type represents a file upload. This can be either an object with data
, mimetype
, and filename
keys, or multipart request with a structure described by the
GraphQL multipart requests specification.
While sending up an object structure described in the example is considerably simpler than the multipart spec, we only support request payloads of up to 1MB. Content-Type application/json
requests with sizes over the 1MB size will result in a 419 Request Too Large
response.
If your request is larger than 1MB, use a multipart request. A very basic multipart GraphQL + Upload
example using curl
:
curl https://graphql.useanvil.com \ -F operations='[{ "query": "CreateCast ($file: Upload!) { createCast(file: $file) { id } }", "variables": { "file": null } }]' \
-F map='{ "0": ["0.variables.file"] }' \
-F 0=@my-file.pdf
Our Node API Client uses multipart uploads by default.
Example
{
"data": base64filestring===,
"mimetype": application/pdf,
"filename": my-file.pdf
}
User
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
email -
String
|
|
name -
String
|
|
firstName -
String
|
|
lastName -
String
|
|
role -
String
|
What type of role the User has. Either user or api . |
verifiedEmail -
Boolean
|
|
preferences -
UserPreferences!
|
|
organizations -
[Organization]
|
|
organizationUsers -
[OrganizationUser]
|
|
createdAt -
Date
|
|
updatedAt -
Date
|
|
extra -
JSON
|
|
numSentEtchPackets -
Int
|
Example
{
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"email": "user@domain.com",
"name": "User Name",
"firstName": "Bobby",
"lastName": "Jones",
"role": "user",
"verifiedEmail": false,
"preferences": UserPreferences,
"organizations": [Organization],
"organizationUsers": [OrganizationUser],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"extra": {},
"numSentEtchPackets": 123
}
UserPage
Field Name | Description |
---|---|
rowCount -
Int
|
Total number of rows found for the query before pagination |
pageCount -
Int
|
Total number of pages of results |
page -
Int
|
The requested page number |
pageSize -
Int
|
The requested number of rows per page |
items -
[User]
|
The actual records for the requested page |
Example
{
"rowCount": 20,
"pageCount": 2,
"page": 1,
"pageSize": 10,
"items": [User]
}
UserUpload
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
location -
String
|
|
user -
User
|
|
etchPacket -
EtchPacket
|
|
weldData -
WeldData
|
|
forge -
Forge
|
|
metadata -
JSON
|
|
createdAt -
Date
|
|
updatedAt -
Date
|
Example
{
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"location": "xyz789",
"user": User,
"etchPacket": EtchPacket,
"weldData": WeldData,
"forge": Forge,
"metadata": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z"
}
Webhook
A Webhook
represents a webhook URL. Anvil will POST to webhook URLs on specific actions. Both organization-wide and per-object webhook URLs are represented by this object. See the
webhooks guide for more information.
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
type -
String
|
Webhook URLs that accept notifications for any object will be prod . Per-object webhook URLs will have type adhoc . |
status -
String
|
Prossible values: active or inactive . |
url -
String
|
The URL Anvil will POST to. |
token -
String
|
Use this token to make sure the request is from Anvil. |
webhookActions -
[WebhookAction]
|
|
creationUser -
User
|
|
organization -
Organization
|
|
createdAt -
Date
|
|
updatedAt -
Date
|
Example
{
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"type": "prod",
"status": "active",
"url": "https://domain.com/page.html",
"token": "xyz789",
"webhookActions": [WebhookAction],
"creationUser": User,
"organization": Organization,
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z"
}
WebhookAction
A model that represents a subscription to actions on other objects in our system that would trigger a
Webhook
call.
Field Name | Description |
---|---|
eid -
String!
|
|
webhook -
Webhook!
|
|
action -
String!
|
|
objectEid -
String
|
|
objectType -
String
|
|
config -
JSON
|
|
createdAt -
Date!
|
|
updatedAt -
Date!
|
|
creationUser -
User!
|
Example
{
"eid": "kQp2qd9FVUWrrE60hMbi",
"webhook": Webhook,
"action": "abc123",
"objectEid": "kQp2qd9FVUWrrE60hMbi",
"objectType": "abc123",
"config": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"creationUser": User
}
WebhookActionConfigInput
Configuration options for a
Webhook Action
.
Input Field | Description |
---|---|
encryptData -
Boolean default = false |
Whether to encrypt the data payloads delivered by the
|
Example
{"encryptData": false}
WebhookLog
A WebhookLog
represents a single webhook call to your server. See the
webhooks guide for more information.
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
action -
String
|
The webhook action type, e.g. signerComplete . |
isError -
Boolean
|
true when this call was considered an error. It will be an error when the status code is >= 400, or the request timed out. |
isRetry -
Boolean
|
true when this call was a retry of a previous call. |
statusCode -
Int
|
The status code returned by your server for this call. |
millisecondsToFinish -
Int
|
Time it took to complete the webhook request. |
objectEid -
String
|
|
rootObjectType -
String
|
|
rootObjectURL -
String
|
Dashboard URL to the object that triggered the webhook event. e.g. it will link to a Workflow submission or an etch packet. |
objectMetadata -
JSON
|
|
organization -
Organization
|
|
originalWebhookLog -
WebhookLog
|
If this call was a retry, originalWebhookLog will be WebhookLog that was retried. |
createdAt -
Date
|
Example
{
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"action": "weldComplete",
"isError": false,
"isRetry": true,
"statusCode": 987,
"millisecondsToFinish": 123,
"objectEid": "kQp2qd9FVUWrrE60hMbi",
"rootObjectType": "WeldData",
"rootObjectURL": "https://app.useanvil.com/org/my-org/w/my-workflow/iXLRleX92vhwF8cIhsk2",
"objectMetadata": {},
"organization": Organization,
"originalWebhookLog": WebhookLog,
"createdAt": "2023-05-25T16:55:45.190Z"
}
WebhookLogPage
Field Name | Description |
---|---|
rowCount -
Int
|
Total number of rows found for the query before pagination |
pageCount -
Int
|
Total number of pages of results |
page -
Int
|
The requested page number |
pageSize -
Int
|
The requested number of rows per page |
items -
[WebhookLog]
|
The actual records for the requested page |
Example
{
"rowCount": 20,
"pageCount": 2,
"page": 1,
"pageSize": 10,
"items": [WebhookLog]
}
Weld
A Weld is a Workflow. It holds the configuration that combines one or more Forge
objects with zero or more Cast
objects to create a Workflow.
See our Workflow API guide for more info.
Field Name | Description |
---|---|
versionNumber -
Int
|
Current version number of this Weld |
versionId -
Int
|
|
latestDraftVersionNumber -
Int
|
|
publishedNumber -
Int
|
Current published version number of this Weld |
publishedAt -
Date
|
|
hasUnpublishedChanges -
Boolean
|
|
hasBeenPublished -
Boolean
|
|
id -
Int!
|
|
eid -
String
|
|
slug -
String
|
|
name -
String
|
|
visibility -
String
|
|
config -
JSON
|
Config object specifying files output, signers, etc. |
Arguments
Only root level keys specified here will be returned. When omitted, all keys will be returned. |
|
organization -
Organization
|
|
hasSigners -
Boolean
|
|
forges -
[Forge]
|
|
Arguments
|
|
casts -
[Cast]
|
|
weldGroups -
[WeldGroup]
|
|
weldDatas -
WeldDataPage
|
Fetch all the Weld 's WeldData s (Workflow submissions) |
signatureProviderType -
String
|
|
availableSignatureProviderTypes -
[String]
|
|
remainingSubmissions -
JSON
|
|
createdAt -
Date
|
|
updatedAt -
Date
|
|
archivedAt -
Date
|
|
expiresAt -
Date
|
|
stylesheetURL -
String
|
Example
{
"versionNumber": 987,
"versionId": 987,
"latestDraftVersionNumber": 987,
"publishedNumber": 987,
"publishedAt": "2022-11-25T17:55:44.910Z",
"hasUnpublishedChanges": false,
"hasBeenPublished": false,
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"slug": "weld-name",
"name": "Weld Name",
"visibility": "live",
"config": {},
"organization": Organization,
"hasSigners": false,
"forges": [Forge],
"casts": [Cast],
"weldGroups": [WeldGroup],
"weldDatas": WeldDataPage,
"signatureProviderType": "etch",
"availableSignatureProviderTypes": [
etch,
docusign
],
"remainingSubmissions": {},
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2023-05-25T16:55:44.910Z",
"expiresAt": "2023-05-25T16:55:44.910Z",
"stylesheetURL": "https://domain.com/page.html"
}
WeldData
An instance of a Weld
. You can think of it as a "workflow submission". A WeldData
references Submission
s for all the Forge
s (webforms) in the related Weld
(workflow).
See our workflow API guide for more info.
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
displayTitle -
String
|
The title displayed in the UI. |
status -
String
|
Possible values: created , in-progress , ready-to-sign , awaiting-signatures , declined , completed |
isTest -
Boolean
|
true when it is a test workflow submission. You will not be charged for signatures on test submissions, and they will not count toward your monthly completed workflows. |
isExpired -
Boolean
|
This WeldData has expired, either by passing the expiredAt date, or by being locked. |
isComplete -
Boolean
|
true when all forms in the workflow have been filled. There may be signers who need to sign. |
isCompleteAndSigned -
Boolean
|
true when status is completed : All forms have been filled, all signers have signed. |
continueURL -
String
|
URL to the next form to be filled by the user. Use this after WeldData creation to get the URL to the form that should be filled first. |
webhookURL -
String
|
The specific webhook notification URL for this WeldData . We will POST to this URL when users take various actions. |
completionPercentage -
Float
|
How complete is this workflow submission. Will be a value between 0 and 1. |
numberRemainingSigners -
Int
|
|
payloadCanBeUpdated -
Boolean
|
|
hasSigners -
Boolean
|
|
nextSigner -
Signer
|
|
hasPin -
Boolean
|
|
pin -
String
|
|
agents -
JSON
|
|
files -
[JSON]
|
A file listing of all files available in the WeldData . If there is a DocumentGroup , this will be equal to DocumentGroup.files . |
excludedFiles -
[JSON]
|
A file listing of all files excluded from the signing process. |
weld -
Weld
|
The workflow this WeldData is related to. |
weldVersionId -
Int
|
|
submissions -
[Submission]
|
An array of all the underlying Submission objects holding data from each webform. |
documentGroup -
DocumentGroup
|
A DocumentGroup contains the documents after they have been filled and sent out for signature. The DocumentGroup will only exist here when that documents have been sent out for signature, or in the case of a workflow with no signers, when the workflow is completely finished. See the DocumentGroup 's status for lifecycle information. |
webhookLogs -
[WebhookLog]
|
An array of webhook notification calls to your server related to this WeldData . Get the status codes, response times, and retry information from each WebhookLog . |
etchLogEvents -
[EtchLog]
|
An array of actions during the signing process when using Anvil's Etch as the signature provider. These objects detail actions when files are signed, downloaded, etc. |
weldDataLogEvents -
[WeldDataLog]
|
An array of actions taken during the form filling process. |
userUploads -
[UserUpload]
|
An array of files uploaded by users during the webform filling process. |
forgesRequiringCompletion -
[Forge]
|
|
weldDataGroup -
WeldDataGroup
|
|
createdAt -
Date
|
|
updatedAt -
Date
|
When a column on the WeldData itself was updated. |
dataUpdatedAt -
Date
|
When a the data in any child Submission was last updated. |
expiresAt -
Date
|
|
archivedAt -
Date
|
Example
{
"id": 987,
"eid": "kQp2qd9FVUWrrE60hMbi",
"displayTitle": "Sally's workflow submission",
"status": "in-progress",
"isTest": false,
"isExpired": false,
"isComplete": true,
"isCompleteAndSigned": true,
"continueURL": "https://app.useanvil.com/form/demo/my-form/nA1jH49FVUWrrE60hMbi",
"webhookURL": "https://yoursite.com/webhooks/anvil",
"completionPercentage": 0.2,
"numberRemainingSigners": 987,
"payloadCanBeUpdated": false,
"hasSigners": false,
"nextSigner": Signer,
"hasPin": false,
"pin": "9876",
"agents": {},
"files": [
{
"downloadURL": https://app.useanvil.com/api/document-group/nA1jH49FVUWrrE60hMbi/Hello-World.pdf,
"filename": Hello-World.pdf,
"name": Hello World,
"type": pdf
}
],
"excludedFiles": [
{
"downloadURL": https://app.useanvil.com/api/document-group/nA1jH49FVUWrrE60hMbi/Dont-Sign-Me.pdf,
"filename": Dont-Sign-Me.pdf,
"name": Do not sign this doc,
"type": pdf
}
],
"weld": Weld,
"weldVersionId": 987,
"submissions": [Submission],
"documentGroup": DocumentGroup,
"webhookLogs": [WebhookLog],
"etchLogEvents": [EtchLog],
"weldDataLogEvents": [WeldDataLog],
"userUploads": [UserUpload],
"forgesRequiringCompletion": [Forge],
"weldDataGroup": WeldDataGroup,
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"dataUpdatedAt": "2023-05-25T16:55:44.910Z",
"expiresAt": "2023-05-25T16:55:44.910Z",
"archivedAt": "2022-11-25T17:55:44.910Z"
}
WeldDataGroup
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
title -
String
|
|
isTest -
Boolean
|
|
dataUpdatedAt -
Date
|
|
weldGroup -
WeldGroup
|
|
weldDatas -
[WeldData]
|
|
Arguments
|
|
createdAt -
Date
|
|
updatedAt -
Date
|
|
archivedAt -
Date
|
Example
{
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"title": "WeldDataGroup Title",
"isTest": false,
"dataUpdatedAt": "2023-05-25T16:55:44.910Z",
"weldGroup": WeldGroup,
"weldDatas": [WeldData],
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z",
"archivedAt": "2022-11-25T17:55:44.910Z"
}
WeldDataGroupPage
Field Name | Description |
---|---|
rowCount -
Int
|
Total number of rows found for the query before pagination |
pageCount -
Int
|
Total number of pages of results |
page -
Int
|
The requested page number |
pageSize -
Int
|
The requested number of rows per page |
items -
[WeldDataGroup]
|
The actual records for the requested page |
Example
{
"rowCount": 20,
"pageCount": 2,
"page": 1,
"pageSize": 10,
"items": [WeldDataGroup]
}
WeldDataLog
Represents a single action taken by a user while filling a webform within a Workflow. For example, a WeldDataLog
object will be created when a user completes a webform, downloads a file, voids the packet associated packet, etc.
All actions with a short description:
accessed: Viewed
archived: Archived
completed: Completed Form
created: Created
download-csv-all: Downloaded
download-csv-individual-file: Downloaded
download-file-individual: Downloaded File
download-files-zip: Downloaded Zip
emailed-completed: Emailed
emailed: Emailed
locked: Locked
pin-code-changed: Changed PIN
pin-code-failed: Access Failed
pin-code-set: Set PIN
pin-code-unset: Unset PIN
pin-code-verified: Access Verified
saved-form: Saved form
signed: Signed
unarchived: Unarchived
unlocked: Unlocked
upload-file-accessed: Accessed file
upload-file: Uploaded
voided: Voided
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
action -
String
|
The action taken. |
formattedLocation -
String
|
Location of the user taking the action. |
metadata -
JSON
|
Any action-specific information. |
user -
User
|
The Anvil User who took this action, if applicable. |
weldData -
WeldData
|
|
submission -
Submission
|
|
createdAt -
Date
|
Example
{
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"action": "completed",
"formattedLocation": "San Francisco, CA",
"metadata": {},
"user": User,
"weldData": WeldData,
"submission": Submission,
"createdAt": "2023-05-25T16:55:45.190Z"
}
WeldDataPage
Field Name | Description |
---|---|
rowCount -
Int
|
Total number of rows found for the query before pagination |
pageCount -
Int
|
Total number of pages of results |
page -
Int
|
The requested page number |
pageSize -
Int
|
The requested number of rows per page |
items -
[WeldData]
|
The actual records for the requested page |
Example
{
"rowCount": 20,
"pageCount": 2,
"page": 1,
"pageSize": 10,
"items": [WeldData]
}
WeldFile
An object used by createWeld
to specify a file. See the
GraphQL reference for more info.
Input Field | Description |
---|---|
id -
String!
|
An id string set when creating the |
title -
String
|
|
castEid -
String
|
|
file -
Upload
|
|
mimetype -
String
|
|
name -
String
|
|
src -
String
|
|
stamp -
Float
|
Example
{
"id": "myDocument",
"title": "My Document",
"castEid": "nA1jH49FVUWrrE60hMbi",
"file": Upload,
"mimetype": "abc123",
"name": "xyz789",
"src": "abc123",
"stamp": 123.45
}
WeldGroup
Field Name | Description |
---|---|
id -
Int!
|
|
eid -
String
|
|
name -
String
|
|
slug -
String
|
|
organization -
Organization
|
|
welds -
[Weld]
|
|
Arguments
|
|
weldDataGroups -
WeldDataGroupPage
|
|
createdAt -
Date
|
|
updatedAt -
Date
|
Example
{
"id": 123,
"eid": "kQp2qd9FVUWrrE60hMbi",
"name": "WeldGroup Name",
"slug": "weldgroup-name",
"organization": Organization,
"welds": [Weld],
"weldDataGroups": WeldDataGroupPage,
"createdAt": "2023-05-25T16:55:45.190Z",
"updatedAt": "2023-05-25T16:55:45.190Z"
}
WeldPage
Field Name | Description |
---|---|
rowCount -
Int
|
Total number of rows found for the query before pagination |
pageCount -
Int
|
Total number of pages of results |
page -
Int
|
The requested page number |
pageSize -
Int
|
The requested number of rows per page |
items -
[Weld]
|
The actual records for the requested page |
Example
{
"rowCount": 20,
"pageCount": 2,
"page": 1,
"pageSize": 10,
"items": [Weld]
}
WeldVersion
Field Name | Description |
---|---|
eid -
String!
|
|
publishedNumber -
Int
|
|
publishedTitle -
String
|
|
publishedDescription -
String
|
|
publishedAt -
Date
|
|
publishUpdatedAt -
Date
|
|
publishingUser -
User
|
Example
{
"eid": "kQp2qd9FVUWrrE60hMbi",
"publishedNumber": 987,
"publishedTitle": "xyz789",
"publishedDescription": "xyz789",
"publishedAt": "2023-05-25T16:55:44.910Z",
"publishUpdatedAt": "2023-05-25T16:55:44.910Z",
"publishingUser": User
}