GoDial
BUSINESS · CRM & SUPPORT
Teams, calling lists, contacts, tasks, and call activity in that GoDial company.
Acts as the person, not as itself
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Credentials never touch the agent
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Every call on the record
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
What an agent can do
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
godial_delete_externals_accounts_by_id_removeWRITEDelete a member. DESTRUCTIVE: it removes a person's ability to log in to the dialler, and their id stops resolving anywhere it was referenced.
godial_delete_externals_contact_by_id_removeWRITEDelete a contact by its id. DESTRUCTIVE: the contact and its call history leave the list.
godial_delete_externals_lists_by_id_removeWRITEDelete a calling list. DESTRUCTIVE and the widest blast radius in this integration: a list is the container every contact lives in, so deleting one takes the contacts filed under it with it.
godial_delete_externals_lists_detachWRITERemove a member's access to a calling list. DESTRUCTIVE in the relationship sense -- the list and its contacts survive, the member's access does not. Both ids are required and are sent in the body of a DELETE, which is GoDial's own shape.
godial_delete_externals_tasks_by_id_removeWRITEDelete a task. DESTRUCTIVE: the task and its reminder are removed.
godial_delete_externals_team_by_id_removeWRITEDelete a team. DESTRUCTIVE and not undoable through the API. A team is the parent of its calling lists, so deleting one affects everything filed under it; confirm with the operator before calling this.
godial_get_externals_accounts_by_id_viewWRITERetrieve one member by id, with their permissions and team assignment.
godial_get_externals_accounts_listWRITEList the members (agents, sub-managers and team managers) of this GoDial company. Returns each member's id, name, email, username, permissions block, teamsId and creation time. Member ids are what `accountsId` and `callerId` want elsewhere in this integration, so this is usually the first call when assigning work.
godial_get_externals_contact_by_id_viewWRITERetrieve one contact by id, with its phone numbers, company, notes, custom fields, assigned member and call history summary. A contact that does not exist -- or has been deleted -- is answered 204 with an EMPTY BODY rather than 404 (measured 2026-09-18), which arrives here as an empty object. So an empty result means 'no such contact', not 'a contact with no fields'.
godial_get_externals_contact_list_by_listidWRITEList every contact in one calling list. The list id is the path argument -- there is no all-contacts endpoint in GoDial's external API, so enumerate the lists first and page through them one list at a time. Returns the full contact record including custom fields and the last disposition.
godial_get_externals_lists_by_id_viewWRITERetrieve one calling list by id, with its call script and settings.
godial_get_externals_lists_listWRITEList every calling list in the company, with its id, name, call script, owning team and integration settings. List ids are what the contact operations address, so this is the entry point for anything contact-shaped.
godial_get_externals_tasks_by_id_viewWRITERetrieve one task by id, with its reminder time, owner and completion state.
godial_get_externals_tasks_listWRITEList every task in the company: follow-ups and reminders assigned to members, optionally tied to a contact.
godial_get_externals_team_by_id_viewWRITERetrieve one team by its id. An id that is not a valid GoDial team is answered 500 with the message 'Team is not valid' rather than 404 -- GoDial reports most failures as 500 (measured 2026-09-18), so read the message, not the status.
godial_get_externals_team_listWRITEList every team in the GoDial company this connection is for. A team is the top-level grouping in GoDial: calling lists belong to a team and members are assigned to one. Returns each team's id, name, creation time and companyId. Takes no arguments -- the company is fixed by the access token, which is issued per company. This is also the operation the connect form probes, because it is the only GoDial endpoint measured to refuse an invalid token cleanly rather than crash.
godial_post_externals_accounts_addWRITECreate a member (a GoDial user who can log in to the dialler app). `name`, `username`, `password`, `role` and `teamsId` are all required; GoDial refuses a partial body one field at a time with 400 '<field> is a required argument'. `teamsId` must be a JSON ARRAY of team ids even for a single team -- a bare string is refused with 400 'Value is not an array.' (measured 2026-09-18). The permission flags (crmAccess, skipCallAccess, modifyUserAccess, listAccess) default to the company's own defaults when omitted.
godial_post_externals_contact_addWRITEAdd a contact to a calling list. `phone` and `listId` are both required. `assignmentMode` decides who gets the lead: 'roundrobin' hands it to the next member in rotation, 'default' (the default) is first-come first-serve; pass `accountsId` instead to assign a specific member. `customFields` is an array of {name, value} objects and `source_marketing` is a UTM object -- both are sent as real JSON, not as JSON encoded into a string (measured 2026-09-18: a stringified array is refused with 400 'Value is not an array.').
godial_post_externals_contact_by_id_disposeWRITERecord the outcome of a call, SMS or email against a contact -- GoDial calls this disposing. `dispo` must be one of the UPPERCASE disposition values configured for the company (for example INTERESTED, NOT INTERESTED, CALLBACK, DND, NO ANSWER); an unconfigured value is answered 500. `calledOn` and `callbackOn` are ISO 8601 with a timezone offset (2022-08-31T15:25:22+05:30). `callerId` is the MEMBER id of whoever made the contact, not a phone number -- list the members to find it. This is how an external dialler or CRM writes its activity back into GoDial.
godial_post_externals_contact_delete_by_phoneWRITEDelete a contact by phone number within one list. DESTRUCTIVE -- it is a delete despite being a POST, because GoDial needs two identifying fields and takes them in a body. Both `phone` and `listId` are required; the same number can exist in more than one list and only the named list's copy is removed. Use this when an upstream CRM knows the number but not GoDial's contact id.
godial_post_externals_contact_listchangeWRITEMove a contact from its current calling list to another one. Both the contact id and the destination list id are required. The contact keeps its id and history; only its list changes.
godial_post_externals_lists_addWRITECreate a calling list inside a team. `name` and `teamsId` are both required, and here `teamsId` is a single team id STRING -- not the JSON array the member operations want. That asymmetry is GoDial's, recorded in its own contract, and getting it the wrong way round is refused.
godial_post_externals_lists_assignWRITEGive a member access to a calling list, so its contacts appear in their dialler. Both the member id (`accountsId`) and the list id (`listsId`) are required. THE MEMBER MUST ALREADY BE ON THE LIST'S TEAM -- an undocumented precondition, measured 2026-09-18: assigning a list owned by a team the member is not on answers 500 'Invalid Parameters / Member is Not Assign to List's assign Team'. Add the member to that team first (update the member's teamsId), or the assignment reads as a server error rather than as a rule.
godial_post_externals_log_listWRITERun a call-activity report over a date range: every logged call, SMS and email for the members, lists and dispositions asked for. A READ despite being a POST -- the filters do not fit in a URL, and nothing is created. MEASURED 2026-09-18, and it contradicts GoDial's own contract: the contract marks every field optional, but `range`, `lists`, `users` and `dispos` are all required in practice -- omitting any one crashes the endpoint with 500 'Cannot read properties of undefined'. They are declared required here so an agent is refused by the schema instead of by a 500 that names nothing. Pass ["allLists"] for every list and ["All Dispos"] for every disposition. `range` is exactly two YYYY-MM-DD strings, start then end. `limit` and `skip` really are optional and page the result.
godial_post_externals_tasks_addWRITECreate a task for a member. `name` and `accountsId` (the member it is assigned to) are required. Set `reminder` true with a `remindOn` date to have GoDial remind them, and pass `contactId` to tie the task to a contact.
godial_post_externals_team_addWRITECreate a team. Only `name` is required; a blank or missing name is refused with 422 'The `team` instance is not valid. Details: `name` can't be blank'. Teams are the container calling lists are created in, so a new deployment usually creates a team before a list.
godial_put_externals_accounts_by_id_updateWRITEUpdate a member's profile, role, team assignment or permission flags. NOT a partial update: GoDial requires `name`, `email`, `role` and `teamsId` on every call, refusing each in turn with 400 '<field> is a required argument' -- so read the member back first and resend the current value of anything you are not changing. Two of those are surprises worth stating: the contract marks `name` and `email` optional here, and a member can be CREATED with no email at all but cannot then be UPDATED without one (measured 2026-09-18).
godial_put_externals_contact_by_id_updateWRITEUpdate a contact's details or custom fields. Every field is optional and only what is sent is changed. Note that `phone` is NOT updatable here -- GoDial's update form omits it, unlike the create form.
godial_put_externals_lists_by_id_updateWRITERename a calling list, change its description, or move it to another team. All fields optional; only what is sent changes.
godial_put_externals_tasks_by_id_updateWRITEUpdate a task, or mark it done by sending `done` true. GoDial requires `name` on an update even when only `done` is changing, so read the task back first and resend its current name.
godial_put_externals_team_by_id_updateWRITERename a team or change its description. Both fields are optional, and GoDial replaces only what is sent -- omit a field to leave it unchanged.
Often connected alongside
Put GoDial behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.