Closed samschlicht closed 8 months ago
Draft plan Will test this in TC Staging-SF Sandbox before making any changes to SF Prod.
Once that's all working:
Once that's all set:
*Irrespective of the nightly batch update, we still need live candidate-creating methods, e.g., when someone hits the 'update/create SF' button on a candidate, or when someone creates a new candidate opportunity.
SF STEPS Time for a bit of SF housekeeping. We are adding even more candidate-specific fields that don't need to be cluttering up other types of contact records.
So let's make a candidate contact page layout and candidate contact record type that uses it. (This replicates the setup we have for different types of opportunities and probably should've been done a while ago.)
SANDBOX
PROD
👇❗️ At time of STAGING MERGE ❗️👇
👇❗️ Immediately after TC release ❗️👇
Here's how a Candidate Contact Record ends up looking to a regular SF user: Private Zenhub Image
John asked for a recap in the last meeting of what the current ways that the TC creates/updates candidates in SF.
There are 2:
candidate profile > additional info > create/update Salesforce button Private Zenhub Image
when a candidate is added to a list for an open job and they're not already on SF, the TC makes a call to create them; if they're already on there, the TC will do an update of any changed fields.
They both use the same create/update method.
After some consternation, just confirming that we have 168,000 API calls per 24-hour period to play with (100k for the org + 1k per licenced user), so no concerns about doing batches of 200 records so that we can use the regular SF REST API (which has a 200-record limit per call.
Private Zenhub Image Private Zenhub Image Private Zenhub Image
Q for the team: should I include 'incomplete' statuses or just 'active' and 'pending'? We seem to include them in total TC candidate count.
NB: because the TC stops syncing a candidate once they're employed, this means that TBB users can start to make lasting changes to the editable fields (name, account name, email, description, contact type) once someone becomes an alum — useful because the person will often become a contact of another sort, and also change contact details, job, etc.
Another useful tidbit: in SF you can make a record type (e.g. 'Candidate', which assigns the Candidate Page Layout) available only to certain users. All users will be able to see the record, but only those users you've selected will be able to create or clone a record of that type.
So, in this case, I've made the Candidate record type available only to system admins — because why should anyone be able to clone or create candidates when the TC is handling that? No biggie, but just another way to add assurance that the candidate data in SF is sound for reporting.
The only remaining thing to do here is to add the environment if variable so the sync only runs on prod - got to wait for my PR on that issue to be approved and merge from the new staging
Since this is still open, I'm working on adding Zeynep's request to include intake date (#481)!
Still to do:
[x] fix candidate search table, which is affected by this change
[x] test on large batch of candidates via SystemAdminApi
[x] add to SF prod if all good
[X] add environment variable for 'if' statement once it's available (as noted, we only want the sync firing from prod)
From Zeynep re 'incomplete' statuses (I suggest we keep them included but in future perhaps merge that status with 'pending': Honestly, I’ve never seen “incomplete” used in our work. On Tettra we have this description “in 2019 we employed an intern to go through the data and mark all candidates whose data was largely incomplete. Currently there are over 4,000 such candidates on the database. We were going to delete this status but that means throwing away some substantial work. We suggested retaining the status - but asked the field not to use it. Candidates with incomplete status are treated like “pending” candidates.” I’m also two minds about it. If the quality is not there why should we include it. At the same time, we have thousands of “pending” profiles that have almost no information that we count in our numbers, so I don’t know if we can really separate them. Bases on the last sentence of the description, shall we include them? I’m also curious to hear your thoughts on whether merging these status’ would be an option?
(moving this one ahead as #498)
As a TBB staff member I would like to be able to access and analyse live-ish candidate data using Salesforce and Sopact reporting tools To better understand and present information regarding our candidates
This was primarily instigated by the Sopact-TBB team's request for access to this data for the impact dashboard. There have also been other requests, such as from the comms team to populate their candidate mailing list and more efficiently produce the Talent Catalog snapshot.
John met with Sopact and tentatively settled on the most efficient and secure way of achieving this being to extend our SF API connection to include all live candidate records.
The Sopact team and other stakeholders will need to decide what data they need to gather on SF and as part of this issue we'll adapt the contact records accordingly. Then we can set up a nightly sync.