US Government Support exceptions

Operations workflow for enabling/disabling US Government Support exceptions

Which organizations sync to the US Government instance by default?

As the exact conditions of this can change at any time, it is best to refer to our documentation page on the ZD-SFDC sync and the SOQL query documented within.

Adding the exception

When a request is made via the Support Super Form, a series of checks are performed:

  • Does the provided requester email correlate to a gitlab.com account?
  • Does the requester have a Zendesk US Government agent account?
  • Does the SFDC account provided correlate to an actual SFDC account?
  • Does the SFDC opportunity provided correlate to an actual SFDC opportunity?
  • Does the SFDC account already have the exception?
  • Does the SFDC Account have the US Government SKU present on it?

If all checks pass, an issue is created. From here, your task is to add the exception onto the Salesforce account.

To do so, you will navigate to the Swap US Gov Support Exception project and do the following:

  1. Navigate to the project’s pipelines page
  2. Click New pipeline at the top-right of the page
  3. Add two variables under the Variables section:
    1. Type: Variable, Input variable key: ACCOUNT_ID, Input variable value: The SFDC Account’s ID
    2. Type: Variable, Input variable key: ISSUE_IID, Input variable value: The ID of the issue you are working
  4. Click New pipeline

From here, a pipeline is created. Monitor the pipeline to ensure it succeeds correctly.

If you encounter any issues, please notify the Fullstack Engineer so it can be looked into and resolved.

Removing the exception

When a request is made via the Support Super Form, a series of checks are performed:

  • Does the provided requester email correlate to a gitlab.com account?
  • Does the requester have a Zendesk US Government agent account?
  • Does the SFDC account provided correlate to an actual SFDC account?
  • Does the SFDC account have the exception?

If all checks pass, an issue is created. From here, your task is to add the exception onto the Salesforce account.

To do so, you will navigate to the Swap US Gov Support Exception project and do the following:

  1. Navigate to the project’s pipelines page
  2. Click New pipeline at the top-right of the page
  3. Add two variables under the Variables section:
    1. Type: Variable, Input variable key: ACCOUNT_ID, Input variable value: The SFDC Account’s ID
    2. Type: Variable, Input variable key: ISSUE_IID, Input variable value: The ID of the issue you are working
  4. Click New pipeline

From here, a pipeline is created. Monitor the pipeline to ensure it succeeds correctly.

If you encounter any issues, please notify the Fullstack Engineer so it can be looked into and resolved.

Doing this manually

  1. Create a file named swap_support_instance_in_sfdc

    touch swap_support_instance_in_sfdc
  2. Make it executable

    chhmod +x swap_support_instance_in_sfdc
  3. Put the following contents into the file:

    #!/usr/bin/env ruby require 'support_readiness' salesforce_config = Readiness::Salesforce::Configuration.new salesforce_config.api_version = '58.0' salesforce_config.client_id = ENV.fetch('SFDC_CLIENTID') salesforce_config.client_secret = ENV.fetch('SFDC_CLIENTSECRET') salesforce_config.password = ENV.fetch('SFDC_PASSWORD') salesforce_config.security_token = ENV.fetch('SFDC_SECURITYTOKEN') salesforce_config.username = ENV.fetch('SFDC_USERNAME') salesforce_client = Readiness::Salesforce::Client.new(salesforce_config) account_id = ARGV.first query_string = "SELECT Name, Support_Instance__c FROM Account WHERE Id = '#{account_id}'" query = Readiness::Salesforce::Queries.new(query_string) results = Readiness::Salesforce::Queries.run!(salesforce_client, query) new_instance = if results.first.Support_Instance__c == 'federal-support' 'gitlab' elsif results.first.Support_Instance__c == 'gitlab' 'federal-support' else raise "ERROR: Unknown current instance of '#{results.first.Support_Instance__c}'" end puts "Run info\n" puts "- Id: #{account_id}" puts "- Name: #{results.first.Name}" puts " - Current value: #{results.first.Support_Instance__c}" puts " - New value: #{new_instance}\n" print "Updating to #{new_instance}..." Readiness::Salesforce::Client.update!( salesforce_client, account_id, Support_Instance__c: new_instance ) puts 'done'
  4. Run the script

    ./swap_support_instance_in_sfdc ABC123DEF456GHI789

Output should look like this:

jason@laptop:~$ ./swap_support_instance_in_sfdc ABC123DEF456GHI789 Run info - Id: ABC123DEF456GHI789 - Name: Test Account - Current value: gitlab - New value: federal-support Updating to federal-support...done

Manually update the issue with the results.